©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
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
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
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
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
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