You are on page 1of 2

Software development process A software development process, also known as a software development life-cycle (SDLC), is a structure imposed

on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle. There are several models for such pr ocesses, each describing approaches to a variety of tasks or activities that tak e place during the process. Some people consider a life-cycle model a more gener al term and a software development process a more specific term. For example, th ere are many specific software development processes that 'fit' the spiral lifecycle model. ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for de veloping and maintaining software. The large and growing body of software development organizations implement proce ss methodologies. Many of them are in the defense industry, which in the U.S. re quires a rating based on 'process models' to obtain contracts. The international standard for describing the method of selecting, implementing and monitoring the life cycle for software is ISO/IEC 12207. A decades-long goal has been to find repeatable, predictable processes that impr ove productivity and quality. Some try to systematize or formalize the seemingly unruly task of writing software. Others apply project management techniques to writing software. Without effective project management, software projects can ea sily be delivered late or over budget. With large numbers of software projects n ot meeting their expectations in terms of functionality, cost, or delivery sched ule, it is effective project management that appears to be lacking. Organizations may create a Software Engineering Process Group (SEPG), which is t he focal point for process improvement. Composed of line practitioners who have varied skills, the group is at the center of the collaborative effort of everyon e in the organization who is involved with software engineering process improvem ent. Software development activities[edit source | editbeta] Planning[edit source | editbeta] Planning is an objective of each and every activity, where we want to discover t hings that belong to the project. An important task in creating a software progr am is extracting the requirements or requirements analysis.[1] Customers typical ly have an abstract idea of what they want as an end result, but do not know wha t software should do. Skilled and experienced software engineers recognize incom plete, ambiguous, or even contradictory requirements at this point. Frequently d emonstrating live code may help reduce the risk that the requirements are incorr ect. Once the general requirements are gathered from the client, an analysis of the s cope of the development should be determined and clearly stated. This is often c alled a scope document. Certain functionality may be out of scope of the project as a function of cost o r as a result of unclear requirements at the start of development. If the develo pment is done externally, this document can be considered a legal document so th at if there are ever disputes, any ambiguity of what was promised to the client can be clarified. Implementation, testing and documenting[edit source | editbeta] Implementation is the part of the process where software engineers actually prog ram the code for the project. Software testing is an integral and important phase of the software development process. This part of the process ensures that defects are recognized as soon as possible. Documenting the internal design of software for the purpose of future maintenanc e and enhancement is done throughout development. This may also include the writ ing of an API, be it external or internal. The software engineering process chos en by the developing team will determine how much internal documentation (if any

as missed requirements may force r edesign of the software.[citatio n needed] Software training and support is important. Deployment and maintenance[edit source | editbeta] Deployment starts directly after the code is appropriately tested. Plan-driven models (e. and sold or otherwise distributed into a production environment.) is necessary.[citation needed] . This m ay involve installation.[citation needed] Maintaining and enhancing software to cope with newly discovered faults or requi rements can take substantial time and effort. testing. customization (such as by setting parameters to the cus tomer's values). and possibly an extended period of evaluation.. as software is only effective if it is used correctly. approved for release.g. Waterfall) generally produce more docu mentation than Agile models.