Software Development Life Cycles (SDLC)

68
Software Development Life Cycles (SDLC) BY Touseef Tahir

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 of Software Development Life Cycles (SDLC)

Page 1: Software Development Life Cycles (SDLC)

Software Development Life Cycles (SDLC)

BYTouseef Tahir

Page 2: Software Development Life Cycles (SDLC)

SDLC-Software development life cycle

ProcessProjectSoftware engineeringSystem engineering

Page 3: Software Development Life Cycles (SDLC)
Page 4: Software Development Life Cycles (SDLC)
Page 5: Software Development Life Cycles (SDLC)
Page 6: Software Development Life Cycles (SDLC)
Page 7: Software Development Life Cycles (SDLC)
Page 8: Software Development Life Cycles (SDLC)
Page 9: Software Development Life Cycles (SDLC)
Page 10: Software Development Life Cycles (SDLC)
Page 11: Software Development Life Cycles (SDLC)
Page 12: Software Development Life Cycles (SDLC)
Page 13: Software Development Life Cycles (SDLC)
Page 14: Software Development Life Cycles (SDLC)
Page 15: Software Development Life Cycles (SDLC)
Page 16: Software Development Life Cycles (SDLC)
Page 17: Software Development Life Cycles (SDLC)
Page 18: Software Development Life Cycles (SDLC)
Page 19: Software Development Life Cycles (SDLC)
Page 20: Software Development Life Cycles (SDLC)

Zero Assignment 1

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

Deadline : 12-09-2011Email: [email protected] subject:?

Page 21: Software Development Life Cycles (SDLC)
Page 22: Software Development Life Cycles (SDLC)
Page 23: Software Development Life Cycles (SDLC)
Page 24: Software Development Life Cycles (SDLC)
Page 25: Software Development Life Cycles (SDLC)
Page 26: Software Development Life Cycles (SDLC)
Page 27: Software Development Life Cycles (SDLC)
Page 28: Software Development Life Cycles (SDLC)
Page 29: Software Development Life Cycles (SDLC)
Page 30: Software Development Life Cycles (SDLC)
Page 31: Software Development Life Cycles (SDLC)
Page 32: Software Development Life Cycles (SDLC)
Page 33: Software Development Life Cycles (SDLC)
Page 34: Software Development Life Cycles (SDLC)
Page 35: Software Development Life Cycles (SDLC)

The spiral model

Page 36: Software Development Life Cycles (SDLC)
Page 37: Software Development Life Cycles (SDLC)
Page 38: Software Development Life Cycles (SDLC)

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

Page 39: Software Development Life Cycles (SDLC)
Page 40: Software Development Life Cycles (SDLC)
Page 41: Software Development Life Cycles (SDLC)

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

Page 42: Software Development Life Cycles (SDLC)
Page 43: Software Development Life Cycles (SDLC)
Page 44: Software Development Life Cycles (SDLC)
Page 45: Software Development Life Cycles (SDLC)

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

Page 46: Software Development Life Cycles (SDLC)

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

Page 47: Software Development Life Cycles (SDLC)

The Phases

Page 48: Software Development Life Cycles (SDLC)

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

Page 49: Software Development Life Cycles (SDLC)

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

Page 50: Software Development Life Cycles (SDLC)

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)

Page 51: Software Development Life Cycles (SDLC)

Risk Management

Identification of the risksIterative/Incremental DevelopmentThe prototype or pilot project

Page 52: Software Development Life Cycles (SDLC)

The Development Phases

Inception PhaseElaboration PhaseConstruction PhaseTransition Phase

Page 53: Software Development Life Cycles (SDLC)

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)

Page 54: Software Development Life Cycles (SDLC)

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

Page 55: Software Development Life Cycles (SDLC)

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

Page 56: Software Development Life Cycles (SDLC)

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.)

Page 57: Software Development Life Cycles (SDLC)

CASE-Computer Aided Software Engineering

Page 58: Software Development Life Cycles (SDLC)

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

Page 59: Software Development Life Cycles (SDLC)

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

Page 60: Software Development Life Cycles (SDLC)

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.

Page 61: Software Development Life Cycles (SDLC)

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

Page 62: Software Development Life Cycles (SDLC)

What could be called a CASE tool?

Project management softwaresSystem design toolsCode storageCompilersTranslation toolsTest software

Page 63: Software Development Life Cycles (SDLC)

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.)

Page 64: Software Development Life Cycles (SDLC)

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

Page 65: Software Development Life Cycles (SDLC)

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

Page 66: Software Development Life Cycles (SDLC)
Page 67: Software Development Life Cycles (SDLC)
Page 68: Software Development Life Cycles (SDLC)