|
In software engineering, a project lifecycle models how a project is planned, controlled and monitored from its inception to its completion. In the earliest stages, and in the last stages, of the lifecycle, software architecture, requirements, and system definition is an issue: Software engineering is the profession that creates and maintains software applications by applying technologies and practices from computer science, project management, engineering, application domains, and other fields. ...
A model is a substitute for or an abstraction of a specific thing. ...
Software architecture is a coherent set of abstract patterns guiding the design of each aspect of a larger software system. ...
In software engineering, a requirement is a description of what a system should do. ...
- What is the market for the system/software?
- What is the competition?
- What is the platform of the system/software?
- How much time is available to the project?
- How many skill-sets are needed?
Over the years, a number of different models have been developed, beginning with the oldest and simplest being the Waterfall Model. However, as software has become larger and more complex, this method of development has been found to be counter productive, especially when large teams are involved. Models that are iterative have evolved including Prototyping, Evolutionary Prototyping, Incremental Development, spiral model, V model, and Chaos model. The waterfall model is a software development model first proposed in 1970 by W. W. Royce, in which development is seen as flowing steadily through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance. ...
Prototyping is the process of quickly putting together a working model (a prototype) in order to test various aspects of the design, illustrate ideas or features and gather early user feedback. ...
Iterative and Incremental development is a software development process, as opposed to more traditional waterfall model. ...
The spiral model is a development model combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. ...
The V-model was developed to regulate the software development process within the German federal administration. ...
In computing, the Chaos model is a structure of software development that extends the spiral model and waterfall model. ...
The use of these models was for the most part confined to the overall management of the project, however projects are now considered better controlled if the model best suited to them controls the individual aspects of the project. For example, a project may be managed using the Incremental Development model, but during each increment the Documentation is created managed using the Waterfall Model and the Code development managed using the 'V' model. The waterfall model is a software development model first proposed in 1970 by W. W. Royce, in which development is seen as flowing steadily through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance. ...
The level of formality and complexity of the lifecycle for each project is constrained by any number of factors, including budgetary constraints, experience and size and complexity of the project and development team. Some experienced and highly respected project leaders and programmers consider rigid application of lifecycle plans to be a theory that does not work well in practice. Linus Torvalds, the very highly regarded project leader of the Linux kernel, made the following statement on the Linux kernel mailing list: Linus Torvalds Linus Benedict Torvalds (born December 28, 1969) is best known for initiating the development of the Linux Operating System. ...
The Linux mascot Tux created by Larry Ewing Linux kernel is a free unix-like operating system kernel created by Linus Torvalds in 1991 and subsequently improved with the assistance of developers around the world. ...
- No major software project that has been successful in a general marketplace (as opposed to niches) has ever gone through those nice lifecycles they tell you about in CompSci classes.
- Source: Google Groups archive of fa.linux.kernel discussion
ISO 12207 is a standard that was developed to describe the method of selecting, implementing and monitoring a lifecycle for a project.
See also |