©brooks/cole, 2003 chapter 10 software engineering

23
©Brooks/Cole, 2003 Chapter 10 Software Engineering

Upload: abigail-kennicott

Post on 15-Dec-2015

219 views

Category:

Documents


4 download

TRANSCRIPT

©Brooks/Cole, 2003

Chapter 10

SoftwareEngineering

©Brooks/Cole, 2003

Understand the software life cycle.Understand the software life cycle.

Describe the development process models.Describe the development process models.

Understand the concept of modularity in software Understand the concept of modularity in software engineering.engineering.

Understand the importance of quality in software Understand the importance of quality in software engineering.engineering.

After reading this chapter, the reader should After reading this chapter, the reader should be able to:be able to:

OOBJECTIVESBJECTIVES

Understand the role of documentation in software Understand the role of documentation in software engineering.engineering.

©Brooks/Cole, 2003

SOFTWARESOFTWARELIFELIFE

CYCLECYCLE

SOFTWARESOFTWARELIFELIFE

CYCLECYCLE

10.110.1

©Brooks/Cole, 2003

Figure 10-1

System life cycle

©Brooks/Cole, 2003

Figure 10-2

System development phases

©Brooks/Cole, 2003

Analysis phaseAnalysis phase

►Four steps in the analysis phase:Four steps in the analysis phase: Define the userDefine the user Define the needsDefine the needs Define the requirementDefine the requirement Define the methodsDefine the methods

©Brooks/Cole, 2003

Design phaseDesign phase

►The design phase defines how the The design phase defines how the system will accomplish what was system will accomplish what was defined in the analysis phase.defined in the analysis phase. Modularity (Modularity (模組化模組化 ):): Tools : example -- a structure chartTools : example -- a structure chart

►A structure chart shows how to break your A structure chart shows how to break your package into logical steps; each step is a package into logical steps; each step is a separate module.separate module.

©Brooks/Cole, 2003

Implementation phaseImplementation phase

► In the implementation phase, you In the implementation phase, you create the actual programs.create the actual programs.

►Tools:Tools: FlowchartFlowchart PseudocodePseudocode

►Coding:Coding: The choice of the language is based on The choice of the language is based on

the efficiency of the language for that the efficiency of the language for that particular application.particular application.

©Brooks/Cole, 2003

Testing phaseTesting phase

►The testing phase can be a The testing phase can be a time-time-consumingconsuming part of program part of program development.development. Black box testingBlack box testing

►Black box testing is done by the system Black box testing is done by the system test engineer and the user.test engineer and the user.

White box testingWhite box testing►White box testing is the responsibility White box testing is the responsibility

of the programmer.of the programmer.

©Brooks/Cole, 2003

DEVELOPMENTDEVELOPMENTPROCESSPROCESSMODELSMODELS

DEVELOPMENTDEVELOPMENTPROCESSPROCESSMODELSMODELS

10.210.2

©Brooks/Cole, 2003

Figure 10-3

Waterfall model

©Brooks/Cole, 2003

Waterfall modelWaterfall model

►Figure 10.3Figure 10.3►The development process flows in only one The development process flows in only one

direction.direction.►A phase cannot be started until the A phase cannot be started until the

previous phase is completed.previous phase is completed.►Advantage:Advantage: each phase is completed each phase is completed

before the next phase startsbefore the next phase starts►Disadvantage:Disadvantage: the difficulty in locating a the difficulty in locating a

problemproblem

©Brooks/Cole, 2003

Figure 10-4

Incremental modelIncremental model

►The process is developed in a series of The process is developed in a series of steps.steps.

©Brooks/Cole, 2003

MODULARITYMODULARITYMODULARITYMODULARITY

10.310.3

©Brooks/Cole, 2003

ModularityModularity

► ModularityModularity To break a large project into smaller parts that can To break a large project into smaller parts that can

be understood and handled easilybe understood and handled easily To divide a large program into small programs that To divide a large program into small programs that

can communicate with each othercan communicate with each other

► Tools :Tools : a structure chart and a class diagram a structure chart and a class diagram A structure chart shows how to break your package A structure chart shows how to break your package

into logical steps; each step is a separate module.into logical steps; each step is a separate module. A class diagram is used in object-oriented A class diagram is used in object-oriented

programming to show the relationships between programming to show the relationships between classes.classes.

©Brooks/Cole, 2003

Modularity Modularity

►ModularityModularity CouplingCoupling ( (結合結合 ) : ) :

►Coupling is a measure of how tightly two Coupling is a measure of how tightly two modulesmodules are bound to each other. are bound to each other.

CohesionCohesion ( (結合力結合力 ) :) :►Cohesion is a measure of how closely the Cohesion is a measure of how closely the

processesprocesses in a program are related. in a program are related.

©Brooks/Cole, 2003

QUALITYQUALITYQUALITYQUALITY

10.410.4

©Brooks/Cole, 2003

QualityQuality

►Definition: Definition: Quality softwareQuality software Software that satisfies the user’s Software that satisfies the user’s

explicit (explicit ( 明示的明示的 ) and implicit () and implicit ( 暗示暗示的的 ) requirements, is well ) requirements, is well documented, meets the operating documented, meets the operating standards of the organization, and standards of the organization, and runs efficiently on the hardware for runs efficiently on the hardware for which it was developed.which it was developed.

©Brooks/Cole, 2003

Figure 10-5

Quality factors

©Brooks/Cole, 2003

Figure 10-6

Quality circle

©Brooks/Cole, 2003

DOCUMENTATIONDOCUMENTATIONDOCUMENTATIONDOCUMENTATION

10.510.5

©Brooks/Cole, 2003

DocumentationDocumentation

►UserUser documentation documentation►SystemSystem documentation documentation

Documentation in the analysis phaseDocumentation in the analysis phase Documentation in the design phaseDocumentation in the design phase Documentation in the implementation phaseDocumentation in the implementation phase Documentation in the testing phaseDocumentation in the testing phase

►Documentation as an Documentation as an ongoing processongoing process If the package is modified, all modifications If the package is modified, all modifications

and their relationships with the original and their relationships with the original package must also be documented.package must also be documented.

©Brooks/Cole, 2003

Key termsKey terms► Analysis phaseAnalysis phase► Black box testingBlack box testing► Design phaseDesign phase► EfficiencyEfficiency► FlexibilityFlexibility► FlowchartFlowchart► Implementation phaseImplementation phase► Incremental modelIncremental model► ModularityModularity► ModulesModules► Pseudocode Pseudocode

► Quality circleQuality circle► Quality softwareQuality software► ReliabilityReliability► ReusabilityReusability► SecuritySecurity► Software engineeringSoftware engineering► Software life cycleSoftware life cycle► Structure chartStructure chart► System documentationSystem documentation► Testing phaseTesting phase► Waterfall modelWaterfall model► White box testingWhite box testing