You are on page 1of 18

Software lifecycle

Wael AlGhool
29-4-2008
Lifecycle
Methodology
A set of processes, structured to be applied to
develop a software projects, in order to produce a
product or service, which meets customer
expectations and gain customer Satisfaction,
Gladness and Ecstasy.
Lifecycle Principles
1. Software lifecycle • All of them are the same
• The lifecycle composed of a group of processes
2. Software Process • Each Process composed of group of Activities
3. Software Development Process • Each Activity composed of a group of tasks
• Each Activity has a group of deliverables

•The process-model is a description at the level of type


• The process-model is to prescribe how things
Process-models
must/should/could be done
Like a class • The process-model is roughly what the process will look like.
•Descriptive • The process is an instantiation of the process-model
•Perspective • The process is really what happen
•Explanatory

Process is a group of Activities or Tasks Instantiateeach


eachprocess
process
Process is a group of Activities or Tasks Instantiate
Process-modle like a class is a group of Instantiate
and each
execute process
activities
Instantiate each activities
andexecute
execute process
Activities and Tasks and activities
and execute activities

Activity has deliverables


Software

Lifecycle Models vs. Lifecycle Standardization

1. Waterfall (SDLC)
Organization
ISO 9001 QMS
2.
3.
Prototyping
Iterative
(ISO 12207) Quality Management System
+ 4. Spiral
Defined, Understood 5. Chaos
and matured by Org. Level 6. RAD Rapid Application Development

Lifecycle 7. Component Assembly


CMMI 8. RUP
Tailored Lifecycle 9. EUP
for each project 10. XP
11. Scrum
Organization Eagle View of using
Methodologies

CMMI  Is it mature enough?  Does it define Processes well enough to be


understood? Does it reach to the goals of each key process area?

Project Management  Does it have the Knowledge, Techniques, Tools and Skills
to be applied on diverse activities of the project?

Lifecycle model  Does it run the project activities within a certain lifecycle that
results in a Customer Ecstasy, Gladness or Satisfaction?

ISO Is it engaged in a paper based system?  Does it have all the standard processes?
ISO Overview
ISO 9000 does not guarantee the compliance (and therefore the quality) of the final product.
It just certifies that a consistent business processes are being applied.

ISO 9001 is one of the standards in the ISO 9000 family


ISO9001 does not guarantee that the company delivers superior or even decent quality
ISO 9001 certifies that the company engaged internally in a paperwork that was prescribed by the standard

ISO 12207 is the standard of the software lifecycle processes


Compliance with ISO9001 for the software sector and its special problem of defining a lifecycle
There are 23 Processes, 95 Activities, 325 Tasks and 224 Outcomes
3 types of processes (Basic, Support & Organizational)

Primary life cycle processes : Supporting life cycle processes: Organizational processes:
-Acquisition process -Audit process -Management process
-Supply process -Configuration Management -Infrastructure process
-Development process -Joint review process -Improvement process
-Operation process -Documentation process -Training process
-Maintenance process -Quality assurance process
-Problem solving process
-Verification process
-Validation process
ISO 12207
Acquisition process
Activities
Initiation
System, Business and needs

Request for proposal


Contract milestones and
supplier auditing
Prepare contract
Supply or develop.
Negotiate changes
Update contract
Supplier monitoring
Acceptance and completion
Define acceptance criteria
Conduct configuration
management
ISO 12207
Development process
Activities

Define Software requirement

Create High Level Design

Create Module Design

Coding

Execute Module Test

Execute Integration Test

Execute System Test


Lifecycle
Libraries/Frameworks
Microsoft Team System
Today there exist many process libraries for software development. As example, we
have MSF (Microsoft Framework), RUP (Rational Unified Process), and OpenUP (Open
Unified Process). Most of the process libraries are augmented by process editing tools
and process support tools.

Process Editing Tools:


One of the common problems of process definition is inconsistencies and hence
errors. Process editing tools make editing visual, structured and consistent. EPF
(Eclipse Process Framework), Rational Method composer are a famous examples.

Process Support Tools: Open Unified Process


MSF is supported by TFS. A sophisticated and integrated solution for software teams
to collaborate and organize their work. RUP also come with many of Rational
sophisticated tools such as Rational Requisite Pro to manage requirements, Rational
ClearCase for version control. EPF as an open source can be supported by many open
source tools such as OSRT for requirements management and Subversion for
configuration management.

Process support tools manage the work items greatly and can easily provide detailed
reporting and statistics, however it requires a steep learning curve and formal
training.
Rational Unified Process
Reference: +
http://ahm507.blogspot.com/2008/02/openup-and-eclipse-process-framework.html
RUP
Waterfall Model
This is also known as Classic Life Cycle Model (or) Linear Sequential Model (or) Waterfall Method. This
model has the following activities.

Business (user perspective) View

Feasibility (ability to be done) Study

client/server technology, the


number of tiers needed for the
package architecture, the
database design, the data
structure design etc... are all
defined in this phase.

The software should be developed to accommodate changes


that could happen during the post implementation period
Prototyping Model
This is a cyclic version of the linear model. In this model, once the requirement analysis is done and the design
for a prototype is made, the development process gets started. Once the prototype is created, it is given to the
customer for evaluation. The customer tests the package and gives his/her feed back to the developer who
refines the product according to the customer's exact expectation. After a finite number of iterations, the final
software package is given to the customer. In this methodology, the software is evolved as a result of periodic
shuttling of information between the customer and developer. This is the most popular development model in
the contemporary IT industry. Most of the successful software products have been developed using this model -
as it is very difficult (even for a whiz kid!) to comprehend all the requirements of a customer in one shot. There
are many variations of this model skewed with respect to the project management styles of the companies.
New versions of a software product evolve as a result of prototyping.
RAD - Rapid Application Development Model

The RAD model is a linear sequential software development process that emphasizes an extremely short development cycle. The
RAD model is a "high speed" adaptation of the linear sequential model in which rapid development is achieved by using a
component-based construction approach.

1. Business modeling
The information flow among business functions is modeled in a way that answers the following questions:
What information drives the business process?
What information is generated?
Who generates it?
Where does the information go?
Who processes it?

2. Data modeling
The information flow defined as part of the business modeling phase is refined into a set of data objects that are needed to
support the business. The characteristic (called attributes) of each object is identified and the relationships between these objects
are defined.

3. Process modeling
The data objects defined in the data-modeling phase are transformed to achieve the information flow necessary to implement a
business function. Processing the descriptions are created for adding, modifying, deleting, or retrieving a data object.

4. Application generation
The RAD model assumes the use of the RAD tools like VB, VC++, Delphi etc... rather than creating software using conventional
third generation programming languages. The RAD model works to reuse existing program components (when possible) or create
reusable components (when necessary). In all cases, automated tools are used to facilitate construction of the software.

5. Testing and turnover


Since the RAD process emphasizes reuse, many of the program components have already been tested. This minimizes the testing
and development time.
Component Assembly Model

Object technologies provide the technical framework for a component-based


process model for software engineering. The object oriented paradigm
emphasizes the creation of classes that encapsulate both data and the
algorithm that are used to manipulate the data. If properly designed and
implemented, object oriented classes are reusable across different
applications and computer based system architectures. Component
Assembly Model leads to software reusability. The integration/assembly of
the already existing software components accelerate the development
process. Nowadays many component libraries are available on the Internet.
If the right components are chosen, the integration aspect is made much
simpler.
Spiral Model
Spiral Model
• The spiral model, also known as the spiral lifecycle model, is a systems development method (SDM) used in
information technology (IT). This model of development combines the features of the prototyping model and
the waterfall model. The spiral model is intended for large, expensive, and complicated projects.
• The steps in the spiral model can be generalized as follows:
• The new system requirements are defined in as much detail as possible. This usually involves interviewing a
number of users representing all the external or internal users and other aspects of the existing system.
• A preliminary design is created for the new system.
• A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down
system, and represents an approximation of the characteristics of the final product.
• A second prototype is evolved by a fourfold procedure:
– evaluating the first prototype in terms of its strengths, weaknesses, and risks;
– defining the requirements of the second prototype;
– planning and designing the second prototype;
– constructing and testing the second prototype.
• At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might
involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the
customer's judgment, result in a less-than-satisfactory final product.
• The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary,
another prototype is developed from it according to the fourfold procedure outlined above.
• The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final
product desired.
• The final system is constructed, based on the refined prototype.
• The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to
prevent large-scale failures and to minimize downtime.
RUP
RUP
The project is divided in four phases: inception, elaboration, construction and transition. In each phase are used one
or more disciplines. The phase are divided in least one iteration. The number of iterations depends of the
complexity and risk of the project. The major risks are attacked more early possible, in first iterations.

The RUP Phases are:


• Inception phase: are defined the objectives, initial requirements and scope of the project.
• Elaboration phase: the requisites are refined and completed. The architect design software solutions to the
requisites (functional solution)
• Construction phase: software solution is constructed by developers.
• Transition phase: the components are deployed and users are trained

The RUP Disciplines are:


• Business Modeling: maps the company business witch relates to the project. More used in large or complex
projects.
• Requirements: collect requisites of the key users.
• Analysis & Design: design the software requisites in UML models
• Implementation: implements the software solution in software components and database components
• Test: test the constructed components
• Deployment: install components and train users in your use
• Configuration & Change Management: maintain and manage the artifacts produced by the software team
• Project Management: manage, plan and distribute activities of the team, focusing in quality, schedule, budget
and risk attack.
• Environment: maintain tools configuration and environment aspects in order to the development team.
EUP – Enterprise Unified Process

Tailor RUP prior


of tailoring EUP

The EUP is an extension to the RUP. The figure depicts the EUP lifecycle.
People familiar with RUP can see that the extensions include two new
phases, Production and Retirement, and several new disciplines:
Operations and Support and the seven enterprise disciplines (Enterprise
Business Modeling, Portfolio Management, Enterprise Architecture,
Strategic Reuse, People Management, Enterprise Administration, and
Software Process Improvement).