Software Development Life Cycles (SDLC)

Post on 23-Feb-2016

85 views 2 download

Tags:

description

Software Development Life Cycles (SDLC). BY Touseef Tahir. Process Project Software engineering System engineering. SDLC-Software development life cycle. Write a report on Extreme programming, formal methods, agile software development life cycles. Deadline : 12-09-2011 - PowerPoint PPT Presentation

transcript

Software Development Life Cycles (SDLC)

BYTouseef Tahir

SDLC-Software development life cycle

ProcessProjectSoftware engineeringSystem engineering

Zero Assignment 1

Write a report on Extreme programming, formal methods, agile software development life cycles.

Deadline : 12-09-2011Email: touseeftahir@ciitlahore.edu.pkEmail subject:?

The spiral model

Risk Management

A process that◦Identifies a risk of business loss◦Assesses the risk’s potential impact◦Determines how to handle the risk

Protects physical assets from damage

Protects nonphysical assets from software, network-related risks

38

Rapid application development

Use Prototypes◦Evolutionary prototypes◦Throw-away prototypes

Phases◦Requirements planning◦RAD design workshop◦Implementation

Why to use RAD◦Quick development of software

The Rational Unified Process

RUP is a method of managing OO Software Development

It can be viewed as a Software Development Framework which is extensible and features:◦Iterative Development◦Requirements Management◦Component-Based Architectural Vision◦Visual Modeling of Systems◦Quality Management◦Change Control Management

RUP Features

Online Repository of Process Information and Description in HTML format

Templates for all major artifacts, including:◦RequisitePro templates (requirements tracking)◦Word Templates for Use Cases◦Project Templates for Project Management

Process Manuals describing key processes

The Phases

An Iterative Development Process...

Recognizes the reality of changing requirements◦ Casper Jones’s research on 8000 projects

40% of final requirements arrived after the analysis phase, after development had already begun

Promotes early risk mitigation, by breaking down the system into mini-projects and focusing on the riskier elements first

Allows you to “plan a little, design a little, and code a little”

Encourages all participants, including testers, integrators, and technical writers to be involved earlier on

An Incremental Development Process...

Allows for software to evolve, not be produced in one huge effort

Allows software to improve, by giving enough time to the evolutionary process itself

Allows interim progress to continue through the stubbing of functionality

Allows for the management of risk, by exposing problems earlier on in the development process

Goals and Features of Each Iteration

Each iteration is risk-drivenThe primary goal of each iteration is to slowly

chip away at the risk facing the project, namely:◦performance risks◦integration risks (different vendors, tools,

etc.)◦conceptual risks (ferret out analysis and

design flaws)

Risk Management

Identification of the risksIterative/Incremental DevelopmentThe prototype or pilot project

The Development Phases

Inception PhaseElaboration PhaseConstruction PhaseTransition Phase

Inception Phase

Initial requirements captureCost Benefit AnalysisInitial Risk AnalysisProject scope definitionDefining a candidate architectureDevelopment of a disposable prototypeInitial Use Case Model (10% - 20% complete)First pass at a Domain Model

◦ Class diagram in UML◦ ModelSemanticscode (Forward Engineering)

Elaboration Phase

Requirements Analysis and Capture◦ Use Case Analysis

Use Case (80% written and reviewed by end of phase) Use Case Model (80% done) Scenarios

◦ Sequence and Collaboration Diagrams◦ Class, Activity, Component, State Diagrams

◦ Glossary (so users and developers can speak common vocabulary)

◦ Domain Model ◦ Risk Assessment Plan revised◦ Architecture Document

Construction Phase

Focus is on implementation of the design:◦cumulative increase in functionality◦greater depth of implementation◦greater stability begins to appear◦analysis continues, but design and coding

predominate

Transition Phase

The transition phase consists of the transfer of the system to the user community

It includes shipping, installation, training, technical support and maintenance

Development team begins to shrinkControl is moved to maintenance teamAlpha, Beta, and final releasesSoftware updatesIntegration with existing systems (legacy,

existing versions, etc.)

CASE-Computer Aided Software Engineering

In the early days…

Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders, etc. –

Computers weren’t powerful enough or advanced yet to support higher-level functioning

But now…

Software engineering often follows specific standardized methods

There are lots of diagrams and documentation involved

So now computers can be used to deal with the higher-level aspects of software engineering

Computer Aided Software Engineering

What is a CASE Environment?◦CASE is the use of computer-based support in

the software development process. What is a CASE Tool?

◦A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.

Goal of using CASE tools

Supply basic functionality, do routine tasks automatically

Enhance productivity◦Generate code pieces automatically

Increase software qualityIntuitive useIntegration with other tools

What could be called a CASE tool?

Project management softwaresSystem design toolsCode storageCompilersTranslation toolsTest software

But generally…

Code generation tools (Visual Studio .NET)Code analysis (Borland Audits)Development of data models (UML

editors)Cleaning up code (refactoring tools)Bug trackerVersion control (CVS, etc.)

They do THAT?

CASE tools do more than just output codeCan be used to generate SE documents

◦Database schema◦Data flow diagrams◦Entity relationship diagrams◦Program specifications◦User documentation

Tool type ExamplesPlanning tools PERT tools, estimation tools, spreadsheetsEditing tools Text editors, diagram editors, word

processorsChange management tools

Requirement Traceability tools, change control systems

Configuration management tools

Version management systems, System building tools

Prototyping tools Very high level language, user interface generator

Language processing tools

Compliers, interpreters

Program analysis tools Cross reference generators, static analyzers, dynamic analyzers

Testing tools Test data generators, file comparatorsDebugging tools Interactive debugging systemsDocumentation tools Pay layout programs, image editorsReengineering tools Cross-reference systems, program

restructuring systems