Top Banner
3/1/2005 By Masoud Kalali 1 Software Software Development Development Life cycles Life cycles Overview Overview By Masoud Kalali By Masoud Kalali March/2005 March/2005 http://kalali.me http://kalali.me
34

An overview of software development methodologies.

Oct 20, 2014

Download

Documents

This is a presentation from few years ago. The slides discusses the software development models with emphasis on iterative development.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An overview of software development methodologies.

3/1/2005 By Masoud Kalali 1

Software Software Development Development

Life cycles Life cycles OverviewOverview

By Masoud KalaliBy Masoud Kalali March/2005March/2005

http://kalali.mehttp://kalali.me

Page 2: An overview of software development methodologies.

3/1/2005 2By Masoud Kalali

Presentation GoalPresentation Goal

A brief in common Software A brief in common Software development models development models

and a look at life cycle model in RUP in and a look at life cycle model in RUP in more more

detail.detail.

Have a better understanding of RUP

Page 3: An overview of software development methodologies.

3/1/2005 3By Masoud Kalali

Presentation AgendaPresentation Agenda Part IPart I

Basics and ExplanationsBasics and Explanations Terms and definitionsTerms and definitions Well known Life Cycle modelsWell known Life Cycle models

WaterfallWaterfall SpiralSpiral IterativeIterative XPXP

Part IIPart II RUP as a SDP Life Cycle ModelRUP as a SDP Life Cycle Model

Phases and MilestonesPhases and Milestones RUP and System EvolutionRUP and System Evolution

EUP (Explanation)EUP (Explanation)

Page 4: An overview of software development methodologies.

3/1/2005 4By Masoud Kalali

Part IPart I

Terms and definitionsTerms and definitions Software Development modelsSoftware Development models

Page 5: An overview of software development methodologies.

3/1/2005 5By Masoud Kalali

Terms and ExplanationsTerms and Explanations Life CycleLife Cycle

A complete Pass through the phases.A complete Pass through the phases. Time from beginning the software Time from beginning the software

developing to end of releasing.developing to end of releasing. Whole time which software or related Whole time which software or related

documents in under work in development documents in under work in development OrganizationOrganization

PhasePhase Time between two major project milestone.Time between two major project milestone. Time which you decide to move the project Time which you decide to move the project

to new State in its Life Cycle.to new State in its Life Cycle.

Page 6: An overview of software development methodologies.

3/1/2005 6By Masoud Kalali

Terms and ExplanationsTerms and Explanations IterationIteration

distinct sequence of activities.distinct sequence of activities. Have base-lined plan and valuation criteria.Have base-lined plan and valuation criteria. Resulting in a release.Resulting in a release.

MilestoneMilestone An end point for an iterationAn end point for an iteration Corresponds to release pointCorresponds to release point

Artifacts (Deliverable):Artifacts (Deliverable): Stakeholders use Artifacts to do activitiesStakeholders use Artifacts to do activities Stakeholders do activities to produce Stakeholders do activities to produce

artifactsartifacts Artifacts are responsibility of a role – worker Artifacts are responsibility of a role – worker

(s)(s)

Page 7: An overview of software development methodologies.

3/1/2005 7By Masoud Kalali

Software Development Software Development ModelsModels

Waterfall model *Waterfall model * Spiral model *Spiral model * Iterative model *Iterative model * XP model *XP model * Prototyping modelPrototyping model Component assembly modelComponent assembly model Concurrent development modelConcurrent development model Formal methods modelFormal methods model

* Will be reviewed briefly Today

Page 8: An overview of software development methodologies.

3/1/2005 8By Masoud Kalali

Waterfall Development Characteristics Delays confirmation of

critical risk resolution Measures progress by

assessing work-products that are poor predictors of time-to-completion

Precludes early deployment

Frequently results in major unplanned iterations

Waterfall Process

Code and unit test

Design

Subsystem integration

System test

Requirements analysis

Page 9: An overview of software development methodologies.

3/1/2005 9By Masoud Kalali

Waterfall pros and consWaterfall pros and cons

Pros Results in thoroughly debugged, robust

stable system Cons

Has no guideline for applying changes which occur during software development

The process is very rigid. Late discovery of problems or changes to

requirements leads to a costly roll back through the steps already completed

Produces large amounts of documentation, which should be unnecessary in a lightweight smart space project

Delays and aggregates integration and testing

Page 10: An overview of software development methodologies.

3/1/2005 10By Masoud Kalali

Spiral Development Spiral Development CharacteristicsCharacteristics

CustomerEvaluation

Construction& Release

Engineering

RiskAnalysisPlanning

CustomerCommunication

Customer communication: Establish effective communicationPlanning: Define resources, timelines etc.Risk analysis: Assess technical and management risksConstruction & release: construct, test, install, provide user supportCustomer evaluation: obtain feedbackCouples iterative nature of prototyping with controlled and

systematic aspect of the linear sequential modelEarly iterations may be paper models or prototypesCan be used throughout the life of the productReduces risk if properly applied

Page 11: An overview of software development methodologies.

3/1/2005 11By Masoud Kalali

Spiral Pros and ConsSpiral Pros and Cons Pros

Very thorough Eventually leads to stable code

Cons With every iteration, the cost and time

increase Leads to large volumes of documentation Resulting systems are meant to be

persistent and upgradeable, which is not a key factor in smart spaces

Page 12: An overview of software development methodologies.

3/1/2005 12By Masoud Kalali

Iterative Iterative ((Incremental)Incremental) Development Development CharacteristicsCharacteristics

Resolves major risks before making large Resolves major risks before making large investments investments

Enables early user feedback Enables early user feedback Makes testing and integration continuous Makes testing and integration continuous Focuses project short-term objective milestones Focuses project short-term objective milestones Makes possible deployment of partial Makes possible deployment of partial

implementationsimplementations

T I M E

Iteration 1 Iteration 2 Iteration 3

IC

DR

TI

CD

R

TI

CD

R

T

Page 13: An overview of software development methodologies.

3/1/2005 13By Masoud Kalali

Iterative developmentIterative development ProsPros

Risks are mitigated earlier.Risks are mitigated earlier. Integration risksIntegration risks Architectural risksArchitectural risks

Change is more manageable.Change is more manageable. There is a higher level of reuse.There is a higher level of reuse. The project team can learn along the way.The project team can learn along the way. The product has better overall quality.The product has better overall quality.

ConsCons Existing software management project thinking Existing software management project thinking

and liking is with the waterfall model of and liking is with the waterfall model of development .development .

Continual changes tends to corrupt system Continual changes tends to corrupt system structures, so long term software maintenance is structures, so long term software maintenance is difficult.difficult.

Need tighter managementNeed tighter management

Page 14: An overview of software development methodologies.

3/1/2005 14By Masoud Kalali

XP development modelXP development modelXP PrinciplesXP Principles

Rapid feedbackRapid feedback Assume Assume

simplicitysimplicity Incremental Incremental

changechange Embrace Embrace

ChangeChange Quality WorkQuality Work

Some XP Practices Tests Refactoring Pair programming Small releases Simple design Continuous integration 40-hour weekanalysis

testcode design

The XP Cycle (In brief )

Page 15: An overview of software development methodologies.

3/1/2005 15By Masoud Kalali

XP Development modelXP Development model

Pros Very fast Low cost Results in lightweight, disposable solutions No need for masses of documentation since

the two programmers are in constant verbal communication anyway

Cons Not suitable for developing large Scale

systems. Potential for bugs down the line if the initial

test has not been properly designed

Page 16: An overview of software development methodologies.

3/1/2005 16By Masoud Kalali

RUPRUP The processThe process in one pagein one pageCore Workflows

Supporting Workflows

Project ManagementEnvironment

Business Modeling

ImplementationTest & Assessment

Analysis & Design

Deployment

Configure. & Change Mgmt

Requirements

Preliminary Iteration(s)

Iter.#1

Phases

Iterations

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Elaboration TransitionInception Construction

Time : Dynamic Aspect

Static Aspect

Our Today focus

Page 17: An overview of software development methodologies.

3/1/2005 17By Masoud Kalali

RUP Life Cycle in briefRUP Life Cycle in brief The dynamic structure deals with the Life The dynamic structure deals with the Life

Cycle or time dimension of a project Cycle or time dimension of a project Shows cycles which contains 4 phasesShows cycles which contains 4 phases

InceptionInception closed with Milestone : closed with Milestone : Life Cycle Life Cycle ObjectiveObjective

ElaborationElaboration closed with Milestone: closed with Milestone: Life Cycle Life Cycle ArchitectureArchitecture

ConstructionConstruction closed with Milestone: closed with Milestone: Initial Initial Operational CapabilityOperational Capability

TransitionTransition closed with Milestone : closed with Milestone : Product ReleaseProduct ReleaseTransition

Construction

Elaboration

Inception

10%65%20%5%Effort

10%50%30%10%Time

Below table shows how project time and effort is divided between phases

Page 18: An overview of software development methodologies.

3/1/2005 18By Masoud Kalali

Inception phaseInception phaseObjective: Understand what to build.

A vision document:A vision document: Optional business modelOptional business model An initial project glossaryAn initial project glossary

Identify key system functionality. A initial use-case model (10% -20%) complete.A initial use-case model (10% -20%) complete.

Determine at least one possible solution. One or several prototypes.One or several prototypes.

Understand the costs, schedule, and risks associated with the project.

An initial risk assessment.An initial risk assessment. Business caseBusiness case

Decide what process to follow and what tools to use. A project planA project plan

Inception is the first of four RUP phase its all about getting familiar with Project goal and Scope .this phase help you determine the project feasibility , what customer want and how will you get into more resource consumable phase.

Page 19: An overview of software development methodologies.

3/1/2005 19By Masoud Kalali

Milestone:Milestone: cost/schedule estimates. Requirements understanding. Credibility of the cost/schedule estimates, priorities, risks, and

development process. Depth and breadth of any architectural prototype. Actual expenditures versus planned expenditures.

Life Cycle Objectives Life Cycle Objectives Milestone Milestone

Its first project Milestone which help to abort project or reconsider it early And let us not to focus on a doomed to fail project.

time

Inception Elaboration Construction Transition

First Major First Major MilestoneMilestone

Page 20: An overview of software development methodologies.

3/1/2005 20By Masoud Kalali

Artifacts of Inception phaseArtifacts of Inception phase IIn order of importancen order of importance

Vision documentsVision documents Business CaseBusiness Case Risk ListRisk List Software Development PlanSoftware Development Plan Iteration PlanIteration Plan Development Process Development Process Development Infrastructure Development Infrastructure GlossaryGlossary Use-Case Model (Actors, Use Cases)Use-Case Model (Actors, Use Cases) Prototypes (Prototypes (OptionalOptional))

Page 21: An overview of software development methodologies.

3/1/2005 21By Masoud Kalali

Elaboration phaseElaboration phase Deeper Requirement Deeper Requirement

understanding understanding At least 80% complete use-case

model Supplementary requirements

capturing non functional requirements None Use case requirement

Architect consideration.Architect consideration. A Software Architecture

Description. An executable architectural

prototype.

Risk mitigation and Accurate Risk mitigation and Accurate Cost/ScapulaeCost/Scapulae

A revised risk list and a revised business case.

Development Case refinementDevelopment Case refinement A development plan for the

overall project coarse-grained project plan

showing iterations evaluation criteria for each

iteration.

Objectives:

Elaboration is the second of the four phases in the RUP approach. The goal of the Elaboration phase is to define and baseline the architecture of the system in order to provide a stable basis for the bulk of the design and implementation effort in the Construction phase. The architecture evolves out of a consideration of the most significant requirements (those that have a great impact on the architecture of the system) and an assessment of risks.

Page 22: An overview of software development methodologies.

3/1/2005 22By Masoud Kalali

Milestone : Life Cycle Architecture

Is vision Stable?Is vision Stable? Is architecture stable?Is architecture stable? Does executable show true risk management?Does executable show true risk management? Is next phase (Construction) plane is accurate?Is next phase (Construction) plane is accurate? Does current vision could be achieved?Does current vision could be achieved? Is the actual resource expenditure versus planned

expenditure acceptable?

This milestone tell help to determine if project plane, vision , architectureAre enough good to achieve project goals? If not Abort the project or reconsider it very seriously

time

Inception Elaboration Construction Transition

Major Major MilestonesMilestones

Page 23: An overview of software development methodologies.

3/1/2005 23By Masoud Kalali

Artifact of Elaboration Artifact of Elaboration phasephase

IIn order of importancen order of importance PrototypesPrototypes Risk ListRisk List Development ProcessDevelopment Process Development Development

InfrastructureInfrastructure Software Architecture Software Architecture

DocumentDocument Design Model (and all Design Model (and all

constituent artifacts)constituent artifacts) Data ModelData Model Implementation ModelImplementation Model

Software Development Software Development PlanPlan

Iteration PlanIteration Plan Use-Case Model Use-Case Model

(Actors, Use Cases)(Actors, Use Cases) Supplementary Supplementary

SpecificationsSpecifications Optional ArtifactsOptional Artifacts

Business CaseBusiness Case Analysis ModelAnalysis Model

Page 24: An overview of software development methodologies.

3/1/2005 24By Masoud Kalali

Construction Phase Construction Phase

Minimize development costs and achieve some degree of parallelism

Iteratively develop a complete product that is ready to transition to its user community

The software product integrated on the adequate platforms.

The user manuals. A description of the current release.

Construction is really about cost-efficient development of a complete product—an operational version of your system—that can be deployed in the user community

Objectives:

Page 25: An overview of software development methodologies.

3/1/2005 25By Masoud Kalali

Milestone : Initial Operational Capability

Is this product release stable and mature enough to Is this product release stable and mature enough to be deployed in the user community?be deployed in the user community?

Are all the stakeholders ready for the transition into Are all the stakeholders ready for the transition into the user community?the user community?

Are actual resource expenditures versus planned Are actual resource expenditures versus planned expenditures still acceptable?expenditures still acceptable?

time

Inception Elaboration Construction Transition

Major Major MilestonesMilestones

The Construction phase ends with an important project milestone, the Initial Operational Capability Milestone, which is used to determine whether the product is ready to be deployed into a beta test environment by answering (among others) the following questions

Page 26: An overview of software development methodologies.

3/1/2005 26By Masoud Kalali

Artifacts of Construction Artifacts of Construction phasephase

IIn order of importancen order of importance "The System“"The System“ Implementation ModelImplementation Model Iteration PlanIteration Plan Design Model Design Model Development ProcessDevelopment Process Development Infrastructure Development Infrastructure Data ModelData Model Optional ArtifactsOptional Artifacts

Supplementary SpecificationsSupplementary Specifications Use-Case Model (Actors, Use Cases)Use-Case Model (Actors, Use Cases)

Page 27: An overview of software development methodologies.

3/1/2005 27By Masoud Kalali

Transition Phase

“beta testing” to validate the new system against user expectations

parallel operation with a legacy system that it is replacing

conversion of operational databases training of users and maintainers roll-out the product to the marketing, distribution,

and sales teams Improve future project performance through lessons

learned

The purpose of the transition phase is to transition the software product to the user community. Once the product has been given to the end user, issues usually arise that require you to develop new releases, correct some problems, or finish the features that were postponed.

Objectives:

Page 28: An overview of software development methodologies.

3/1/2005 28By Masoud Kalali

Milestone: Product Release

Is the user satisfied? Are the actual resources expenditures

versus planned expenditures still acceptable?

Transition ends with the fourth major project milestone, the Product Release Milestone, to determine whether the objectives were met and if you should start another development cycle. (Several development cycles may have been already planned during Inception.) In some cases this milestone may coincide with the end of the Inception phase for the next cycle

time

Inception Elaboration Construction Transition

Major Major MilestonesMilestones

Page 29: An overview of software development methodologies.

3/1/2005 29By Masoud Kalali

Artifacts of Transition Artifacts of Transition phasephase

IIn order of importancen order of importance

Implementation ElementsImplementation Elements The implementation is complete and base The implementation is complete and base

lined, and the deployable elements have lined, and the deployable elements have been incorporated in the final productbeen incorporated in the final product

Shrink-wrap Product Packaging Shrink-wrap Product Packaging (Optional(Optional ))

In the case of creating a shrink-wrap In the case of creating a shrink-wrap product, the contractor will need the product, the contractor will need the necessary packaging artifacts to help retail necessary packaging artifacts to help retail the product.the product.

Page 30: An overview of software development methodologies.

3/1/2005 30By Masoud Kalali

Dynamic Elements Phases and Dynamic Elements Phases and Milestones , a ReviewMilestones , a Review

time

Inception

Define scope of project

Life Cycle Objectives

Elaboration

Plan project, specify features, baseline architecture

Life Cycle Architecture

Initial Operational Capability

Construction

Build product

Major Milestone

s

Transition

Transition product to end user community

Product Release

Page 31: An overview of software development methodologies.

3/1/2005 31By Masoud Kalali

System EvolutionSystem Evolution

Four phases form one Four phases form one development cycledevelopment cycle and produce a and produce a generationgeneration of the system of the system

Significant user enhancement, business or mission Significant user enhancement, business or mission changes, or technology changes trigger a new changes, or technology changes trigger a new generationgeneration

the the inceptioninception and and elaborationelaboration phases would be phases would be considerably considerably smallersmaller V1

V3

I E C T

I E C T

I E C T

V2Initial ProjectCycle

Evolution Cycles

RUP is So flexible , you finish the project and deliver it’s final operational version.But after a while you or your customer find some new requirement that will be better to add to project in this condition evolution cycles start .In each evolution you made some new feature or enhance some already available feature and announce a new version. its the evolutionary aspect or software generation

Page 32: An overview of software development methodologies.

3/1/2005 32By Masoud Kalali

EUP (RUP evolution)EUP (RUP evolution)Additional phasesAdditional phases

Production PhaseProduction Phase Ensure that the system is available to end Ensure that the system is available to end

users. users. Modify the system to address minor defects. Modify the system to address minor defects. Support users in using the system. Support users in using the system. Manage defect reports and enhancement Manage defect reports and enhancement

requests. requests.

Retirement PhaseRetirement Phase Complete the removal of the system. Complete the removal of the system. Ensure minimal interruption to users. Ensure minimal interruption to users. Ensure minimal impact to business Ensure minimal impact to business

operations. operations.

Page 33: An overview of software development methodologies.

3/1/2005 33By Masoud Kalali

ReferencesReferences The Rational Unified Process An Introduction, Second Edition Philippe The Rational Unified Process An Introduction, Second Edition Philippe

Kruchten , Publisher: Addison Wesley Kruchten , Publisher: Addison Wesley Rational Unified Process Best Practices for Software Development Rational Unified Process Best Practices for Software Development

Teams Rational Software White Paper TP026B, Rev 11/01Teams Rational Software White Paper TP026B, Rev 11/01 MSF Process Model v. 3.1 , Microsoft June 2002 Software Development for Small Teams: A RUP-Centric Approach By

Gary Pollice, Liz Augustine, Chris Lowe, Jas Madhur .Publisher : Addison Wesley

The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP, By Per Kroll, Philippe Kruchten. Publisher : Addison Wesley

The Rational Unified Process An Introduction, Second Edition Philippe The Rational Unified Process An Introduction, Second Edition Philippe Kruchten. Publisher: Addison Wesley Kruchten. Publisher: Addison Wesley

From Waterfall to Iterative Life Cycle – A tough transition for project From Waterfall to Iterative Life Cycle – A tough transition for project managersmanagers

P. Krutchen, Architectural Blueprints - The "4+1" View Model of P. Krutchen, Architectural Blueprints - The "4+1" View Model of Software Software

Architecture, Architecture, www.rational.comwww.rational.com RUP 2005 product documentation.RUP 2005 product documentation. Extreme methodologyExtreme methodology

Page 34: An overview of software development methodologies.

3/1/2005 34By Masoud Kalali

Thank youThank you

Thank you for your attentions.Thank you for your attentions.

All your suggestion and comment are All your suggestion and comment are welcome.welcome.

You can contact me via :You can contact me via :

[email protected]@gmail.com

Masoud Kalalihttp://weblogs.java.net/blog/kalali/

March 2005