Sunday, 26 May 2013

Software Development Life Cycle



The UML is largely process-independent, means that it is not tied to any particular software development life cycle. However, to get the most benefit from UML, we should consider a process that is:


  •  Use case driven
  •  Architecture centric
  • Iterative and Incremental


Use case driven means that use cases are used as a primary artifact for establishing the desired behavior of the system, for verifying and validating system’s architecture, for testing, and for communicating among the stakeholders of the project.

Architecture centric means that a system’s architecture is used as a primary artifact for conceptualizing, constructing, managing and evolving the system under development.

An iterative process is one that involves managing a stream of executable releases. An  iteration is one that involves the continuous integration of the system’s architecture to produce these releases, with each new release embodying incremental improvements over the other.

This use case driven, architecture centric and iterative/incremental process can be broken down into phases. A phase is the span of time between two major milestones of the process. As the below figure shows, there are four phases in the software development life cycle: inception, elaboration, construction and transition. In the figure below, workflows are plotted against these phases, showing their varying degrees of focus over time.



Inception is the first phase of the process, when the seed idea for the development is brought up to the point of being at least internally sufficiently well-founded to warrant entering into the elaboration phase.

Elaboration is the second phase of the process, when the product vision and its architecture are defined. In this phase, the system’s requirements are prioritized and baselined.

Construction is the third phase of the process, when the software is brought from an executable architectural baseline to being ready to be transitioned to the user community.

Transition is the fourth phase of the process, when the software is turned into the hands of the user community. Rarely does the software development process end here, for even during this phase, the system is continuously improved, bugs are eradicated and features that didn’t make an earlier release are added.

An iteration is a distinct set of activities, with a baselined plan and evaluation criteria that result in a release, either internal or external. This means that the software development life cycle can be characterized as involving a continuous stream of executable releases of the system’s architecture. It is this emphasis on architecture as an important artifact that drives the UML to focus on modeling the different views of a system’s architecture.

No comments:

Post a Comment

Thank you for your message. We I get back to you soon...