software development cycle what is software? instructions (computer programs) that when executed...

33
Software Software Development Cycle Development Cycle

Upload: rodney-eustace-green

Post on 02-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Software Development Software Development CycleCycle

Page 2: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

What is Software?What is Software?

Instructions (computer programs) that when executed Instructions (computer programs) that when executed provide provide desired functiondesired function and and performanceperformance

Data structuresData structures enable the programs to adequately enable the programs to adequately manipulate informationmanipulate information

Documents Documents that describe the operation and use of the that describe the operation and use of the programprogram

Software engineering Software engineering : A Practitioner's Approach: A Practitioner's Approach

Page 3: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

A definition of the software A definition of the software development:development:

The application of a systemic, The application of a systemic, disciplined, quantifiable approach to disciplined, quantifiable approach to development, operation, and development, operation, and

maintenance of softwaremaintenance of software..

Page 4: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Who’s WhoWho’s Who

CUSTOMER Sponsors systemdevelopment

USER

Usessystem

DEVELOPER

Buildssystem

Contractualobligation

$$$,needs

Software system

Needs

Page 5: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

What is the Software Life CycleWhat is the Software Life CycleSoftware Engineering is a series Software Engineering is a series of steps for producing software.of steps for producing software.

Methods, procedures, and tools Methods, procedures, and tools are defined.are defined.

Engineering disciplineEngineering discipline

Metrics and measures - predictionMetrics and measures - prediction

Page 6: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Classic Life Cycle ModelsClassic Life Cycle ModelsLinear sequential (Waterfall)Linear sequential (Waterfall)

PrototypingPrototyping

Rapid Application Development (RAD) Rapid Application Development (RAD)

Incremental (Block Release)Incremental (Block Release)

SpiralSpiral

Component AssemblyComponent Assembly

Concurrent DevelopmentConcurrent Development

Fourth Generation techniquesFourth Generation techniques

Page 7: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Rapid Application Development Rapid Application Development (RAD) (RAD)

A good model for small VB systemsA good model for small VB systems

The IDE is designed to allow us to develop The IDE is designed to allow us to develop the small system.the small system.

Page 8: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Waterfall ModelWaterfall Model

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING OPERATION

& MAINTENANCE

Page 9: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

““Interactive” (Chaotic) ModelInteractive” (Chaotic) ModelREQUIREMENTS

ANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

PROGRAMIMPLEMENTATION

UNITTESTING

INTEGRATIONTESTING

SYSTEMTESTING

DELIVERY

MAINTENANCE

Page 10: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Waterfall with PrototypingWaterfall with Prototyping

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING OPERATION

& MAINTENANCE

PROTOTYPING

Verify

Validate

Page 11: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Prototyping CyclesPrototyping Cycles

LIST OFREVISIONS

LIST OFREVISIONS

LIST OFREVISIONS

PROTOTYPEREQUIREMENTS

PROTOTYPEDESIGN

PROTOTYPESYSTEM

TEST

DELIVEREDSYSTEMSYSTEM

REQUIREMENTS(sometimes informal

or incomplete)

reviseprototype

user/customer

review

Page 12: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Multiple BuildsMultiple Builds

Development systems

Production systems

DEV

ELO

PER

SU

SER

S

Build Release 1

Use Release 1

Build Release 2

Use Release 2

Build Release 3

Use Release 3

Time

Page 13: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Spiral ModelSpiral Model

Start Axis

Customer Communication

Planning

Risk Analysis

Development

Integration

Customer Evaluation

Page 14: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Process MetricsProcess MetricsProcess AssessmentProcess Assessment

Document reviewDocument review

Peer reviews:Peer reviews:

completed vs scheduledcompleted vs scheduled

results reportedresults reported

Problem report statusProblem report status

Product QualityProduct Quality

Defect characteristicsDefect characteristics

Difficulty of accurate measurementDifficulty of accurate measurement

Page 15: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Let us Examine the Classic Let us Examine the Classic Waterfall ModelWaterfall Model

Linear sequential modelLinear sequential model

Tries to define each part of the cycle Tries to define each part of the cycle

Very good method for developing large Very good method for developing large systemssystems

Page 16: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 1: Stage 1: Defining the problemDefining the problem

What Happens in this Stage:What Happens in this Stage:To Identify and understand the problem you To Identify and understand the problem you

must look at the:must look at the:

Needs of Needs of UsersUsers and and SystemSystem

Objectives that the solution is to meet Objectives that the solution is to meet

Boundaries of solution Boundaries of solution

Feasibility Study

Design Specifications

User Requirements System Requirements

Modelling System

Page 17: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

The The design specificationdesign specification helps you form the helps you form the basis for the basis for the planningplanning and and designingdesigning the final the final solution. solution.

You will use this specification You will use this specification throughout the throughout the system developmentsystem development to help plan, build and to help plan, build and test the final solution.test the final solution.

The Design specifications give a workable The Design specifications give a workable framework to aid development of the system framework to aid development of the system (and further understanding of the system). (and further understanding of the system).

Stage 1:Stage 1: Design specification Design specification

Page 18: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

A quote on the problem of ill-defined system A quote on the problem of ill-defined system requirements:requirements:

"the creation of software requirements is "the creation of software requirements is reminiscent of hiking in a fog that is gradually reminiscent of hiking in a fog that is gradually lifting” lifting”

Software Productivity Research Inc (1996)Software Productivity Research Inc (1996)

Stage 1:Stage 1:

Page 19: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 1:Stage 1: Design specifications Design specifications

You need to consider the specification for the You need to consider the specification for the USER and the System (Developer's) point of USER and the System (Developer's) point of view.view.

Developer:Developer: Overall design specifications Overall design specifications

User:User: Interface design specifications Interface design specifications

Page 20: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 1:Stage 1: Activity:Activity:

Developer's perspectiveDeveloper's perspective Algorithms,Algorithms, VariablesVariables Software design approachSoftware design approach Modelling the systemModelling the system DocumentationDocumentation

User's perspectiveUser's perspective Screen designScreen design Ergonomic issuesErgonomic issues Appropriate iconsAppropriate icons Appropriate screen messagesAppropriate screen messages Social and ethical issuesSocial and ethical issues Relevant data formats for displayRelevant data formats for display

Page 21: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 1:Stage 1: System Documentation: System Documentation: Modelling different aspects of the SystemModelling different aspects of the System

Modelling tools are part of the documentation to be Modelling tools are part of the documentation to be interpreted by developers, maintainers and users, and interpreted by developers, maintainers and users, and are used to represent a system. are used to represent a system. They use diagrammatic methods and include:They use diagrammatic methods and include:      Input Process Output (IPO) diagramsInput Process Output (IPO) diagrams      System FlowchartsSystem Flowcharts      StoryboardsStoryboards      Screen designsScreen designs      Dataflow diagramsDataflow diagrams      PrototypePrototype

Page 22: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

    Stage 1:Stage 1: Questions: Questions:

Q 1: What are the aims of the first stage of the Q 1: What are the aims of the first stage of the development cycle?development cycle?

Q 2: Why is the problem specification so important Q 2: Why is the problem specification so important in this stage?in this stage?

Q 3: Why are modelling tools used in this stage?Q 3: Why are modelling tools used in this stage?

Page 23: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 2:Stage 2: Planning and Design of Planning and Design of Software Solution Software Solution

Documentation and Models developed in Documentation and Models developed in previous stage are used to give an previous stage are used to give an overall view overall view of system designof system design and help in the and help in the development of development of data structures and logicdata structures and logic necessary to fully necessary to fully develop each module.develop each module.

Page 24: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 2:Stage 2: Planning and Design of Planning and Design of Software Solution Software Solution

What Happens in this Stage: What Happens in this Stage:

The Planning stage consists of designing a solution. So in The Planning stage consists of designing a solution. So in this stage you need to:this stage you need to:

1: Identify all inputs, outputs and processes1: Identify all inputs, outputs and processes

2: Select and describe relevant Data Structures 2: Select and describe relevant Data Structures

3: Create the Algorithm for final solution. 3: Create the Algorithm for final solution.

Page 25: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 2 :Stage 2 :

Use structured programming techniques of writing Use structured programming techniques of writing programs. programs.

You need to define your system's Data Structures You need to define your system's Data Structures and files and files

You need to be able to recognize the logic in You need to be able to recognize the logic in Standard AlgorithmsStandard Algorithms

You need to test your algorithm You need to test your algorithm

Documentation tools used to represent the overall Documentation tools used to represent the overall software solution in diagrammatic form software solution in diagrammatic form

Chose your programming language wisely Chose your programming language wisely

Page 26: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 2 Stage 2 : Questions:: Questions:Q 1:Q 1: Which Documentation tools in the above table are used in Which Documentation tools in the above table are used in "stage one" of the SDC to help you "stage one" of the SDC to help you understand and "model" the understand and "model" the new systemnew system. .

Q 2:Q 2: Which Documentation tools in the above table are used in Which Documentation tools in the above table are used in "stage two" of the SDC to help you "stage two" of the SDC to help you Represent a Solution to the Represent a Solution to the problemproblem..

Q 3:Q 3: What is the different between customised and standard What is the different between customised and standard algorithms?algorithms?

Q 4:Q 4: What information does a data dictionary hold? What information does a data dictionary hold?

Q 5: Q 5: What is the term used for the ‘computer software’ that the What is the term used for the ‘computer software’ that the development team uses to help with analysis documentation and development team uses to help with analysis documentation and development? development?

Q 6: Q 6: Say the Planning stage is complete and the Programmer is Say the Planning stage is complete and the Programmer is about to start to code. Select any two of the Representation Tools about to start to code. Select any two of the Representation Tools below and describe how they both can complement each other to below and describe how they both can complement each other to give the programmer a better description of the systemgive the programmer a better description of the system

Data dictionary, structure diagram, algorithm, IPO chartData dictionary, structure diagram, algorithm, IPO chart

Page 27: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 3Stage 3:: Implementation of Software Implementation of Software

SolutionSolution What happens in this stage:What happens in this stage:

Source code written and tested., Ensure effective user Source code written and tested., Ensure effective user interface interface

Page 28: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 3Stage 3::

Use Use toolstools and and techniquestechniques that will help correct and that will help correct and detect errors. detect errors.

Understand the Type of errors :Understand the Type of errors :

Syntax, Logic, Run-time Syntax, Logic, Run-time

Consider the Hardware and software requirement of new Consider the Hardware and software requirement of new software. software.

Page 29: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 3:Stage 3: QuestionsQuestions

Q 1: State one documentation prepared in this stage and Q 1: State one documentation prepared in this stage and

describe why it is important AND who is it important for?describe why it is important AND who is it important for?

Page 30: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 4:Stage 4: Testing and Evaluation of Testing and Evaluation of Software Solution Software Solution

What happens in this stage:What happens in this stage:

Verify program solution using test data both at Verify program solution using test data both at program and system level. program and system level.

Testing and Evaluation is integral to all stages.Testing and Evaluation is integral to all stages.

Test that the Systems original “System Requirements Test that the Systems original “System Requirements and Objectives” are being met.and Objectives” are being met.

Are we doing the “RIGHT JOB?”Are we doing the “RIGHT JOB?”

Are we doing the “JOB RIGHT?”Are we doing the “JOB RIGHT?”

Page 31: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 4:Stage 4: Testing and Evaluation of Testing and Evaluation of

Software Solution Software Solution To ensure a quality product testing and evaluation is To ensure a quality product testing and evaluation is done.done.

Quote: Quote: “definitions of software testing, however, boil “definitions of software testing, however, boil down to essentially the same thing: software testing is down to essentially the same thing: software testing is the process of executing software in a controlled the process of executing software in a controlled manner, in order to answer the question ”Does the manner, in order to answer the question ”Does the software behave as specified?” .” software behave as specified?” .”

Page 32: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 4:Stage 4: Questions Questions

Q 1: What is the result from stage one of the SDC that is Q 1: What is the result from stage one of the SDC that is used in this stage to help rest the solution? used in this stage to help rest the solution?

Page 33: Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures

Stage 5:Stage 5: Maintenance of Software SolutionMaintenance of Software Solution

What happens in this stage:What happens in this stage:On-going process of corrections and refinement.On-going process of corrections and refinement.Modifications to code, macro, and scripts are often required. These Modifications to code, macro, and scripts are often required. These modifications do not need to be made by original developers.modifications do not need to be made by original developers.In these situations, the original documentation is very important.In these situations, the original documentation is very important.You need to keep in mind the ethical issues associated with You need to keep in mind the ethical issues associated with assessing and modifying the code of others.assessing and modifying the code of others.For all Changes:For all Changes:                  Test changesTest changes                  Document changesDocument changesModify present documentationModify present documentation