Presentation Transcript
Software Development Life Cycle :Software Development Life Cycle
What is Software? :What is Software? Instructions (computer programs) that when executed provide desired function and performance
Data structures enable the programs to adequately manipulate information
Documents that describe the operation and use of the program
Software engineering : A Practitioner's Approach
A definition of the software development: :A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development, operation, and maintenance of software.
Who’s Who :Who’s Who
What is the Software Life Cycle :What is the Software Life Cycle Software Engineering is a series of steps for producing software.
Methods, procedures, and tools are defined.
Engineering discipline
Metrics and measures - prediction
Classic Life Cycle Models :Classic Life Cycle Models Linear sequential (Waterfall)
Prototyping
Rapid Application Development (RAD)
Incremental (Block Release)
Spiral
Component Assembly
Concurrent Development
Fourth Generation techniques
Rapid Application Development (RAD) :Rapid Application Development (RAD) A good model for small VB systems
The IDE is designed to allow us to develop the small system.
Waterfall Model :Waterfall Model
“Interactive” (Chaotic) Model :“Interactive” (Chaotic) Model
Waterfall with Prototyping :Waterfall with Prototyping
Prototyping Cycles :Prototyping Cycles
Multiple Builds :Multiple Builds Development systems Production systems DEVELOPERS USERS Build Release 1 Build Release 2 Build Release 3 Time
Spiral Model :Spiral Model Start Axis Customer Communication Planning Risk Analysis Development Integration Customer Evaluation
Process Metrics :Process Metrics Process Assessment
Document review
Peer reviews:
completed vs scheduled
results reported
Problem report status
Product Quality
Defect characteristics
Difficulty of accurate measurement
Let us Examine the Classic Waterfall Model :Let us Examine the Classic Waterfall Model Linear sequential model
Tries to define each part of the cycle
Very good method for developing large systems
Stage 1: Defining the problem :Stage 1: Defining the problem What Happens in this Stage:
To Identify and understand the problem you
must look at the:
Needs of Users and System
Objectives that the solution is to meet
Boundaries of solution Feasibility Study Design Specifications User Requirements System Requirements Modelling System
Stage 1: Design specification :The design specification helps you form the basis for the planning and designing the final solution.
You will use this specification throughout the system development to help plan, build and test the final solution.
The Design specifications give a workable framework to aid development of the system (and further understanding of the system). Stage 1: Design specification
Stage 1: :A quote on the problem of ill-defined system requirements:
"the creation of software requirements is reminiscent of hiking in a fog that is gradually lifting”
Software Productivity Research Inc (1996) Stage 1:
Stage 1: Design specifications :Stage 1: Design specifications You need to consider the specification for the USER and the System (Developer's) point of view.
Developer: Overall design specifications
User: Interface design specifications
Stage 1: Activity: :Stage 1: Activity: Developer's perspective
Algorithms,
Variables
Software design approach
Modelling the system
Documentation
User's perspective
Screen design
Ergonomic issues
Appropriate icons
Appropriate screen messages
Social and ethical issues
Relevant data formats for display
Stage 1: System Documentation: Modelling different aspects of the System :Stage 1: System Documentation: Modelling different aspects of the System Modelling tools are part of the documentation to be interpreted by developers, maintainers and users, and are used to represent a system.
They use diagrammatic methods and include:
· Input Process Output (IPO) diagrams
· System Flowcharts
· Storyboards
· Screen designs
· Dataflow diagrams
· Prototype
Stage 1: Questions: :Stage 1: Questions: Q 1: What are the aims of the first stage of the development cycle?
Q 2: Why is the problem specification so important in this stage?
Q 3: Why are modelling tools used in this stage?
Stage 2: Planning and Design of Software Solution :Stage 2: Planning and Design of Software Solution Documentation and Models developed in previous stage are used to give an overall view of system design and help in the development of data structures and logic necessary to fully develop each module.
Stage 2: Planning and Design of Software Solution :Stage 2: Planning and Design of Software Solution What Happens in this Stage:
The Planning stage consists of designing a solution. So in this stage you need to:
1: Identify all inputs, outputs and processes
2: Select and describe relevant Data Structures
3: Create the Algorithm for final solution.
Stage 2 : :Stage 2 : Use structured programming techniques of writing programs.
You need to define your system's Data Structures and files
You need to be able to recognize the logic in Standard Algorithms
You need to test your algorithm
Documentation tools used to represent the overall software solution in diagrammatic form
Chose your programming language wisely
Stage 2 : Questions: :Stage 2 : Questions: Q 1: Which Documentation tools in the above table are used in "stage one" of the SDC to help you understand and "model" the new system.
Q 2: Which Documentation tools in the above table are used in "stage two" of the SDC to help you Represent a Solution to the problem.
Q 3: What is the different between customised and standard algorithms?
Q 4: What information does a data dictionary hold?
Q 5: What is the term used for the ‘computer software’ that the development team uses to help with analysis documentation and development?
Q 6: Say the Planning stage is complete and the Programmer is about to start to code. Select any two of the Representation Tools below and describe how they both can complement each other to give the programmer a better description of the system
Data dictionary, structure diagram, algorithm, IPO chart
Stage 3: Implementation of Software Solution :Stage 3: Implementation of Software Solution What happens in this stage:
Source code written and tested., Ensure effective user interface
Stage 3: :Stage 3: Use tools and techniques that will help correct and detect errors.
Understand the Type of errors :
Syntax, Logic, Run-time
Consider the Hardware and software requirement of new software.
Stage 3: Questions :Stage 3: Questions Q 1: State one documentation prepared in this stage and describe why it is important AND who is it important for?
Stage 4: Testing and Evaluation of Software Solution :Stage 4: Testing and Evaluation of Software Solution What happens in this stage:
Verify program solution using test data both at program and system level.
Testing and Evaluation is integral to all stages.
Test that the Systems original “System Requirements and Objectives” are being met.
Are we doing the “RIGHT JOB?”
Are we doing the “JOB RIGHT?”
Stage 4: Testing and Evaluation of Software Solution :Stage 4: Testing and Evaluation of Software Solution To ensure a quality product testing and evaluation is done.
Quote: “definitions of software testing, however, boil down to essentially the same thing: software testing is the process of executing software in a controlled manner, in order to answer the question ”Does the software behave as specified?” .”
Stage 4: Questions :Stage 4: Questions Q 1: What is the result from stage one of the SDC that is used in this stage to help rest the solution?
Stage 5: Maintenance of Software Solution :Stage 5: Maintenance of Software Solution What happens in this stage:
On-going process of corrections and refinement.
Modifications to code, macro, and scripts are often required. These modifications do not need to be made by original developers.
In these situations, the original documentation is very important.
You need to keep in mind the ethical issues associated with assessing and modifying the code of others.
For all Changes:
· Test changes
· Document changes
Modify present documentation