Software Development Lifecycle
In software development there are a models used to represent the processes involved in the design and implementation of new software. These give an overview of the cycle of events performed when developing new software. The Software Development Lifecycle is the term we use to describe the series of events that occur during the full life of any project. There are many different methodologies for organizing the development of a project;
This is a brief overview of the key processes..
Some of these processes are:
- Waterfall/Cascade method.
- Unified Process Model.
- Agile Process - which consists of:
- XP (Extreme Programming)
- SCRUM
- Feature-Driven Development (FDD)
In general developement in any of these types of methodology can be used. Each have their benifits and shortfalls depending on the type of developement being under taken. EA supports all of these methodologies.
Some of the steps used in the common developement processes using UML:
The Software Development Lifecycle is the series of events that occur during the complete life of any project. It aims to describe a process which encompasses everything from the initial concept to the deployment and maintenance of the final product. Being process oriented, it may also be referred to as the Software Development Methodology.
There are many different methodologies for organizing the development of a project. Some are suited to large-scale enterprises, while others may be more useful for small developers. Using Enterprise Architect and the UML does not lock you into observing a particular process, so you can decide which process, be it Unified, Agile, etc. is the best for your development needs.
Several methods have become standardized within the industry as best-practice approaches to software development. While all make claims to improve efficiency and reduce risks, each method has its own particular strengths and weaknesses that govern the utility of its application.
The traditional though informal method of development that arose in the early years of computing is known as the “Waterfall” method. This method is accepted as comprising of the following stages: Analysis, Design, Coding, Testing and Implementation. These stages feature predominantly in most methodologies, though their ordering and frequency will vary greatly. The Waterfall method is still in use today, and may be suitable for small systems where the requirements are well understood and known to be fixed. With other systems though, requirements will often change during the development of the system.
Agile programming is an effort to develop a process structure that is lightweight, adaptable and takes a ‘people first’ approach. It contrasts greatly with the waterfall method when it comes to several basic principles. The Agile method assumes that requirements are going to change during the course of development, and thus implements an iterative structure that refines requirements through the course of development. Note that Agile itself is a broad term, and itself contains a number of methods of differing composition - for instance XP (Extreme Programming), SCRUM and Feature-Driven Development (FDD) are all Agile methodologies.
The Unified Process is a method developed by the Three Amigos as a pairing with the UML, although it is not the only method to explicitly use the UML. The Unified Process is an iterative, incremental use-case model driven method. The development lifecycle consists of Inception, Elaboration, Construction and Transition phase, each of which undergoes several iterations, with each iteration (from elaboration onwards) expected to produce an executable build of the system, though not necessarily fully functional. Like the Agile method, there are many variations on the Unified Process – from the Rational Unified Process available from Rational Systems, to the Enterprise Unified Process, an extension that adds several phases to account for a broader range of business activities within the lifecycle.



