Chapter 7Software Engineering
Introduction to CS
1st Semester, 2015 Sanghyun Park
Outline Software Life Cycle Development Process Development Process Models Modularity Documentation
Software Life Cycle (1/2) Software goes through a cycle of _________ phases
Software is first ___________ by a group of people
It is in ____ for a while
Software is often ________ due to errors found in the software, changes in the rules or laws, or changes in the company itself
These two steps, use and modify, continue until the software becomes ________
Software Life Cycle (2/2)
Development Process The development process in the software life cycle
involves ____ phases
Analysis Phase This phase defines __________ that specify what the
proposed system is to accomplish
The requirements are usually stated in terms that the ____ understands
There are four steps in this phase Define the user (generic user or ______ user) Define the needs Define the requirements Define the methods
Design Phase This phase defines _____ the system will accomplish
what was defined in the analysis phase
The _________ of the software system is established
Today, the design phase uses a very well-established principle called _________ The whole system is ______ into small modules Each module is designed, tested, and then _______ to other
modules through a ______ program
Implementation Phase Implementation involves the actual _______ of programs
This phase uses several tools to show the ______ flowof the programs before the actual writing of code Flowchart Pseudocode
After production of a flowchart or pseudocode,the programmer actually writes the code in a language _______ for the project
Testing Phase Once the programs have been written, they must be
______
Black box testing Tests a program without knowing _____ is ______ it and without
knowing ____ it works Test plans are developed by looking only at the ___________ Performed by the system test engineer and the _____
White box testing Assumes that we know _________ about the program We must make sure that every instruction and every possible
situation have been tested; (not a simple task) Performed by the _________
Development Process Models There are several models for the development process
We discuss the two most common:the ________ model and the __________ model
Waterfall Model (1/2) The development process flows in only ____ direction
A phase cannot be started until the previous phase is _________
This makes it difficult to respond to _________ customer requirements
Therefore, this model is only appropriate when the requirements are _____________
Waterfall Model (2/2)
Incremental Model (1/2) The desired software system is constructed in _________
User requirements are ________ and the highest priority requirements are included in ______ increments
Customers do not have to wait until the entire system is delivered
There is a _____ risk of overall project failure
The most important system services receive the most _______
Incremental Model (2/2)
Modularity Breaking a large project into smaller _____ that can be
understood and handled easily
Dividing a large program into small ________ that can communicate with each other
Two types of tools can be used to achieve modularity Structure chart is used in _____________ programming
to show the relationship between procedures or functions Class diagram is used in _____________ programming
to show the relationships between classes
Structure Chart
Class Diagram
Coupling Coupling is a measure of how ______ two modules are
bound to each other
The more tightly coupled, the less _________ they are
Since the object is to make the modules as independent as possible, we want them to be loosely coupled
We will discuss a few types of coupling
Data Coupling Refers to the sharing of ____ between modules Traditionally represented in a structure chart
with additional arrows
The ____________ of data coupling is one of the main benefits of the object-oriented approach
Control Coupling Occurs when a module passes _______ to another In an OO programming, most intermodule coupling
takes the form of interobject communication,which is usually implemented as control coupling
____________ diagram represents interobject communication in an OO design
Cohesion Refers to the degree of ____________ of a module’s
internal parts
A weak form of cohesion is known as ______ cohesion;the internal elements in a module perform activities logically ______ in nature
A stronger form of cohesion is known as _________ cohesion; all the parts of the module are focused around the performance of a ______ activity
Documentation Documentation is normally produced for two purposes
One is to explain the features of the software and describe how to use them: ____ documentation
The other is to describe the software’s internal composition so that the system can be maintained later in its life cycle: _______ documentation
Note that documentation is an ________ process