software development cycle what is software? instructions (computer programs) that when executed...
TRANSCRIPT
Software Development Software Development CycleCycle
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
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..
Who’s WhoWho’s Who
CUSTOMER Sponsors systemdevelopment
USER
Usessystem
DEVELOPER
Buildssystem
Contractualobligation
$$$,needs
Software system
Needs
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
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
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.
Waterfall ModelWaterfall Model
REQUIREMENTSANALYSIS
SYSTEMDESIGN
PROGRAMDESIGN
CODING
UNIT & INTE-GRATION TESTING
SYSTEMTESTING
ACCEPTANCETESTING OPERATION
& MAINTENANCE
““Interactive” (Chaotic) ModelInteractive” (Chaotic) ModelREQUIREMENTS
ANALYSIS
SYSTEMDESIGN
PROGRAMDESIGN
PROGRAMIMPLEMENTATION
UNITTESTING
INTEGRATIONTESTING
SYSTEMTESTING
DELIVERY
MAINTENANCE
Waterfall with PrototypingWaterfall with Prototyping
REQUIREMENTSANALYSIS
SYSTEMDESIGN
PROGRAMDESIGN
CODING
UNIT & INTE-GRATION TESTING
SYSTEMTESTING
ACCEPTANCETESTING OPERATION
& MAINTENANCE
PROTOTYPING
Verify
Validate
Prototyping CyclesPrototyping Cycles
LIST OFREVISIONS
LIST OFREVISIONS
LIST OFREVISIONS
PROTOTYPEREQUIREMENTS
PROTOTYPEDESIGN
PROTOTYPESYSTEM
TEST
DELIVEREDSYSTEMSYSTEM
REQUIREMENTS(sometimes informal
or incomplete)
reviseprototype
user/customer
review
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
Spiral ModelSpiral Model
Start Axis
Customer Communication
Planning
Risk Analysis
Development
Integration
Customer Evaluation
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
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
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
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
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:
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
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
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
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?
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.
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.
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
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
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
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.
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?
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?”
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?” .”
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?
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