software development l. grewe a definition of the software development: the application of a...

52
Software Software Development Development L. Grewe L. Grewe

Upload: melissa-parrott

Post on 19-Jan-2016

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Software DevelopmentSoftware Development

L. GreweL. Grewe

Page 2: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 disciplined, quantifiable approach to development, operation, and to development, operation, and maintenance of softwaremaintenance of software..

IEEE Standard Computer Dictionary, 610, IEEE Standard Computer Dictionary, 610,

ISBN 1-55937-079-3ISBN 1-55937-079-3 Software Engineering: A Software Engineering: A Practitioner's Approach Practitioner's Approach

Page 3: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Why study Software Development?Why study Software Development?

UnderstandUnderstand• Development problemsDevelopment problems• Software FailuresSoftware Failures• Failure ImpactFailure Impact• Develop better softwareDevelop better software

Page 4: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Software EngineeringSoftware Engineering

is the application of a systematic, is the application of a systematic, disciplined, quantifiable approach to the disciplined, quantifiable approach to the development, operation, and maintenance development, operation, and maintenance of software of software

WikipediaWikipedia

The discipline of software engineering encompasses The discipline of software engineering encompasses knowledge, tools, and methods for defining software knowledge, tools, and methods for defining software requirements, and performing software design, requirements, and performing software design, computer programming, user interface design, computer programming, user interface design, software testing, and software maintenance tasks. software testing, and software maintenance tasks.

Page 5: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Who’s InvolvedWho’s Involved

CUSTOMER Sponsors systemdevelopment

USER

Usessystem

DEVELOPER

Buildssystem

Contractualobligation

$$$,needs

Software system

Needs

Page 6: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Software Development Lifecycle Software Development Lifecycle StepsSteps

PlanningPlanning AnalysisAnalysis DesignDesign DevelopmentDevelopment TestingTesting DeploymentDeployment MaintenanceMaintenance

Page 7: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Planning - Lifecycle StepPlanning - Lifecycle Step

establishing the plans for creating an information establishing the plans for creating an information system bysystem by

• Defining the system to be developed – based on Defining the system to be developed – based on the systems prioritized according to the the systems prioritized according to the organization’s critical success factor (CSF), a organization’s critical success factor (CSF), a system must be identified and chosen system must be identified and chosen

• the project scope – a high level of system the project scope – a high level of system requirements must be defined and put into a requirements must be defined and put into a project scope document project scope document

• Developing the project plan - – all details from Developing the project plan - – all details from tasks to be completed, who completed them and tasks to be completed, who completed them and when they were completed must be formalized when they were completed must be formalized

• Managing and monitoring the project plan – this Managing and monitoring the project plan – this allows the organization to stay on track, creating allows the organization to stay on track, creating project milestones and feature creeps which allow project milestones and feature creeps which allow you to add to the initial plan you to add to the initial plan

Page 8: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Analysis - Lifecycle StepAnalysis - Lifecycle Step

Developers with users collaborate to collect, Developers with users collaborate to collect, comprehend, and logistically formalize requirements comprehend, and logistically formalize requirements by by • Collaboratively discuss which tasks to Collaboratively discuss which tasks to

undertake to make the system most undertake to make the system most successfulsuccessful

• Define RequirementsDefine Requirements• Prioritize requirements Prioritize requirements

Page 9: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Design - Lifecycle StepDesign - Lifecycle Step

this is where the technical blueprint of the this is where the technical blueprint of the system is created by system is created by • Architecture: choosing design of Architecture: choosing design of

networking, hardware and other software networking, hardware and other software • Presentation Layer: GUI screen design,Presentation Layer: GUI screen design,• Data Layer: databases / data needs.Data Layer: databases / data needs.• Business Layer: Process design.Business Layer: Process design.• Test: possibly write test conditions (work Test: possibly write test conditions (work

with the end users to develop the test with the end users to develop the test scripts according to the system scripts according to the system requirements)requirements)

Page 10: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Development - Lifecycle StepDevelopment - Lifecycle Step

executing the design into a physical executing the design into a physical system by system by • Actual implementationActual implementation• Use good tools for layer/ component Use good tools for layer/ component

of system implmenting.of system implmenting.

Page 11: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Testing - Lifecycle StepTesting - Lifecycle Step

testing the developed system testing the developed system • (Q&A- quality and assurance) Test (Q&A- quality and assurance) Test

the system using the established test the system using the established test scripts – test conditions are scripts – test conditions are conducted by comparing expected conducted by comparing expected outcomes to actual outcomes. If outcomes to actual outcomes. If these differ, a bug is generated and a these differ, a bug is generated and a backtrack to the development stage backtrack to the development stage must occur. must occur.

Page 12: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Deployment - Lifecycle StepDeployment - Lifecycle Step the systems are placed and used in the the systems are placed and used in the

actual workforce and actual workforce and • The user manual is created The user manual is created • Training providedTraining provided

Page 13: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Maintenance - Lifecycle StepMaintenance - Lifecycle Step keeping the system up to date keeping the system up to date

• Help Help • RevisionsRevisions

Page 14: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Classic Life Cycle ModelsClassic Life Cycle Models Linear 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 15: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

SO……TECHNIQUES?SO……TECHNIQUES?

A number of Lifecycle Models exist.A number of Lifecycle Models exist.

Page 16: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Waterfall ModelWaterfall Model

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING OPERATION

& MAINTENANCE

Page 17: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Waterfall Model DescribedWaterfall Model Described

ANALOGY: Imagine a waterfall on the cliff of a steep mountain. Once ANALOGY: Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. journey down the side of the mountain, it cannot turn back.

• Once a phase of development is completed, the development proceeds to Once a phase of development is completed, the development proceeds to the next phase and there is no turning back. the next phase and there is no turning back.

ADVANTAGE:ADVANTAGE:• departmentalization and managerial control.departmentalization and managerial control.• schedule can be set with deadlines for each stage of development and a schedule can be set with deadlines for each stage of development and a

product can proceed step –by- step.product can proceed step –by- step.• Each phase of development proceeds in strict order, without any Each phase of development proceeds in strict order, without any

overlapping or iterative steps. overlapping or iterative steps. DISADVANTAGE:DISADVANTAGE:

• Does not allow for much reflection or revision.Does not allow for much reflection or revision.

Page 18: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

PrototypingPrototyping quickly put together a working model quickly put together a working model

illustrate ideas or features and gather early user feedback. illustrate ideas or features and gather early user feedback.

More prototypes are made iteratively and incrementallyMore prototypes are made iteratively and incrementally

When the prototype is sufficiently refined and meets the When the prototype is sufficiently refined and meets the functionality, robustness, manufacturability and other functionality, robustness, manufacturability and other design goals, the product is ready for production. design goals, the product is ready for production.

ADVANTAGES:ADVANTAGES:it is believed to reduce project risk and cost.it is believed to reduce project risk and cost.

Page 19: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Prototyping CyclesPrototyping Cycles

LIST OFREVISIONS

LIST OFREVISIONS

LIST OFREVISIONS

PROTOTYPEREQUIREMENTS

PROTOTYPEDESIGN

PROTOTYPESYSTEM

TEST

DELIVEREDSYSTEMSYSTEM

REQUIREMENTS(sometimes informal

or incomplete)

reviseprototype

user/customer

review

Page 20: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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

Response to fact that non-agile Response to fact that non-agile processes like waterfall TAKE LONG processes like waterfall TAKE LONG TIME.TIME.

involves iterative development, and involves iterative development, and the construction of prototypes. the construction of prototypes.

involves compromises in usability, involves compromises in usability, features, and/or execution speed. features, and/or execution speed.

development cycle expedited development cycle expedited ….thus, products developed faster.….thus, products developed faster.

Page 21: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

RAD….how is the rapid done?RAD….how is the rapid done?

CASE Tools:CASE Tools: • use of Computer Aided Software use of Computer Aided Software

Engineering or CASE tools, which focus Engineering or CASE tools, which focus on converting requirements to code as on converting requirements to code as quickly as possiblequickly as possible

Time Boxing:Time Boxing:• features are pushed out to future features are pushed out to future

releases in order to complete a feature releases in order to complete a feature light version quickly. light version quickly.

Page 22: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

RADRAD ADVANTAGES:ADVANTAGES:

• Increased speed of development through methods Increased speed of development through methods including rapid prototyping, virtualization of system including rapid prototyping, virtualization of system related routines, and other techniques. related routines, and other techniques.

• DecreasedDecreased end-user functionality (arising from end-user functionality (arising from narrower design focus), hence reduced complexity narrower design focus), hence reduced complexity

• Larger emphasis on simplicity and usability of GUI Larger emphasis on simplicity and usability of GUI design design

DISADVANTAGESDISADVANTAGES• Reduced Scalability, and reduced features when a RAD Reduced Scalability, and reduced features when a RAD

developed application starts as a prototype and developed application starts as a prototype and evolves into a finished application evolves into a finished application

• Reduced features occur when features are pushed to Reduced features occur when features are pushed to later versions in order to finish a release in a short later versions in order to finish a release in a short amount of timeamount of time

• The data needed should already be existing The data needed should already be existing

Page 23: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Spiral Model DescribedSpiral Model Described

combining elements of both design and combining elements of both design and prototyping-in-stages, in an effort to prototyping-in-stages, in an effort to combine advantages of top-down and combine advantages of top-down and bottom-up concepts. bottom-up concepts.

combines the features of the prototyping combines the features of the prototyping model and the waterfall model. model and the waterfall model.

intended for large, expensive and intended for large, expensive and complicated projects.complicated projects.

Page 24: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Spiral ModelSpiral Model

1.1. System RequirementsSystem Requirements2.2. Preliminary DesignPreliminary Design3.3. First Prototype doneFirst Prototype done4.4. Evaluations, redefining of requirements and Evaluations, redefining of requirements and

redesignredesign5.5. 22ndnd Prototype Prototype6.6. THE SPIRAL…..2THE SPIRAL…..2ndnd evaluation, redesign and so evaluation, redesign and so

on until customer satisfied.on until customer satisfied.7.7. The final system is thoroughly evaluated and The final system is thoroughly evaluated and

tested. Routine maintenance is carried out on a tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures continuing basis to prevent large-scale failures and to minimize downtime. and to minimize downtime.

Page 25: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Spiral ModelSpiral Model

Start Axis

Customer Communication

Planning

Risk Analysis

Development

Integration

Customer Evaluation

Page 26: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

……..now some more models..now some more models

Page 27: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Extreme Programming (XP)Extreme Programming (XP) Agile methodAgile method early 2000's, the most popular of which is early 2000's, the most popular of which is

Extreme Programming. Extreme Programming. Kent Beck wrote the first book on the Kent Beck wrote the first book on the

topic in 1999 and expanded it with a topic in 1999 and expanded it with a second edition in 2005. second edition in 2005.

Extreme programming is a somewhat Extreme programming is a somewhat controversial methodology:controversial methodology:1.1. Deemphasizes formalized requirements Deemphasizes formalized requirements

gatheringgathering2.2. Short development cycles Short development cycles 3.3. Constant User feedbackConstant User feedback

Page 28: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Extreme Programming – The Core Extreme Programming – The Core IdeaIdea

prescribing a set of daily stakeholder prescribing a set of daily stakeholder practices that embody and encourage practices that embody and encourage particular XP values. particular XP values.

traditional software engineering practices traditional software engineering practices taken to so-called "extreme" levelstaken to so-called "extreme" levels

Hopes to be more responsive to customer Hopes to be more responsive to customer needs ("agile") needs ("agile")

WikipediaWikipedia

Page 29: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Extreme Programming ValuesExtreme Programming Values

Communication Communication Simplicity Simplicity Feedback Feedback Courage Courage Respect Respect

Page 30: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Extreme Programming – a Extreme Programming – a techniques (e.g. of controversy)techniques (e.g. of controversy)

Pair programmingPair programming • 2 programmers work together at one keyboard.2 programmers work together at one keyboard.• 1 types in code the 2nd reviews each line of code.1 types in code the 2nd reviews each line of code.

Reviewer also considers the strategic direction of Reviewer also considers the strategic direction of the work, coming up with ideas for improvements the work, coming up with ideas for improvements and likely future problems to address. and likely future problems to address.

This frees the coder to focus all of his or her This frees the coder to focus all of his or her attention on the "tactical" aspects of completing attention on the "tactical" aspects of completing the current task, using the observer as a safety the current task, using the observer as a safety net and guide.net and guide.

Page 31: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

……..now some more models..now some more models

Page 32: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 33: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Waterfall with PrototypingWaterfall with Prototyping

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING OPERATION

& MAINTENANCE

PROTOTYPING

Verify

Validate

Page 34: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

……..some things to consider about ..some things to consider about stagesstages

Page 35: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 36: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

The The design specificationdesign specification helps you form the helps you form the basis for the basis for the planningplanning and and designingdesigning the the final solution. final 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 framework to aid development of the system (and further understanding of the system (and further understanding of the system). system).

Stage 1:Stage 1: Design specification Design specification

Page 37: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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

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

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

Stage 1:Stage 1:

Page 38: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Stage 1:Stage 1: Design specifications Design specifications

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

Developer:Developer: Overall design specifications Overall design specifications User:User: Interface design specifications Interface design specifications

Page 39: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 40: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 Modelling tools are part of the documentation to be interpreted by developers, maintainers and be interpreted by developers, maintainers and users, and are used to represent a system. users, and 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 41: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

    Stage 1:Stage 1: Questions: Questions:

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

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

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

Page 42: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 overall view of system designview of system design and help in the and help in the development of data structures and logicdevelopment of data structures and logic necessary to fully develop each module.necessary to fully develop each module.

Page 43: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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. The Planning stage consists of designing a solution. So in this stage you need to:So in 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 44: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Stage 2 :Stage 2 :

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

You need to define your system's Data You need to define your system's Data Structures and files Structures 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 Documentation tools used to represent the

overall software solution in diagrammatic form overall software solution in diagrammatic form Chose your programming language wisely Chose your programming language wisely

Page 45: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Stage 2 Stage 2 : Questions:: Questions: Q 1:Q 1: Which Documentation tools in the above table are used Which Documentation tools in the above table are used

in "stage one" of the SDC to help you in "stage one" of the SDC to help you understand and understand and "model" the new system"model" the new system. .

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

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 What is the term used for the ‘computer software’ that

the development team uses to help with analysis the development team uses to help with analysis documentation and development? documentation and development?

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

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

Page 46: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 Source code written and tested., Ensure effective

user interface user interface

Page 47: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Stage 3Stage 3::

Use Use toolstools and and techniquestechniques that will help correct that will help correct and detect errors. and 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 Consider the Hardware and software requirement

of new software. of new software.

Page 48: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Stage 3:Stage 3: QuestionsQuestions

Q 1: State one documentation prepared in this Q 1: State one documentation prepared in this stage and describe why it is important AND who stage and describe why it is important AND who

is it important for?is it important for?

Page 49: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 Test that the Systems original “System

Requirements and Objectives” are being met.Requirements 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 50: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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

Software Solution Software Solution To ensure a quality product testing and To ensure a quality product testing and

evaluation is done.evaluation is done.

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

Page 51: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

Stage 4:Stage 4: Questions Questions

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

Page 52: Software Development L. Grewe A definition of the software development: The application of a systemic, disciplined, quantifiable approach to development,

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 Modifications to code, macro, and scripts are often

required. These modifications do not need to be made by required. These modifications do not need to be made by original developers.original developers.

In these situations, the original documentation is very In these situations, the original documentation is very important.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 changes Modify present documentationModify present documentation