Software Engineering

offbeatnothingΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 4 μήνες)

64 εμφανίσεις

©
Brooks/Cole, 2003

Chapter 10

Software

Engineering

©
Brooks/Cole, 2003

Understand the software life cycle.

Describe the development process models.

Understand the concept of modularity in software
engineering.

Understand the importance of quality in software
engineering.

After reading this chapter, the reader should

be able to:

O
BJECTIVES

Understand the role of documentation in software
engineering.

©
Brooks/Cole, 2003

SOFTWARE

LIFE

CYCLE

10.1

©
Brooks/Cole, 2003

Figure 10
-
1

System life cycle

©
Brooks/Cole, 2003

Figure 10
-
2

System development phases

©
Brooks/Cole, 2003

Analysis phase


Four steps in the analysis phase:


Define the user


Define the needs


Define the requirement


Define the methods

©
Brooks/Cole, 2003

Design phase


The design phase defines how the system
will accomplish what was defined in the
analysis phase.


Modularity (
模組化
):


Tools : example
--

a structure chart


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


©
Brooks/Cole, 2003

Implementation phase


In the implementation phase, you create
the actual programs.


Tools:


Flowchart


Pseudocode


Coding:


The choice of the language is based on the
efficiency of the language for that particular
application.

©
Brooks/Cole, 2003

Testing phase


The testing phase can be a
time
-
consuming

part of program development.


Black box testing


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


White box testing


White box testing is the responsibility of the
programmer.

©
Brooks/Cole, 2003

DEVELOPMENT

PROCESS

MODELS

10.2

©
Brooks/Cole, 2003

Figure 10
-
3

Waterfall model

©
Brooks/Cole, 2003

Waterfall model


Figure 10.3


The development process flows in only one
direction.


A phase cannot be started until the previous
phase is completed.


Advantage:

each phase is completed before
the next phase starts


Disadvantage:

the difficulty in locating a
problem

©
Brooks/Cole, 2003

Figure 10
-
4

Incremental model


The process is developed in a series of
steps.


©
Brooks/Cole, 2003

MODULARITY

10.3

©
Brooks/Cole, 2003

Modularity


Modularity



To break a large project into smaller parts that can be
understood and handled easily


To divide a large program into small programs that can
communicate with each other


Tools :

a structure chart and a class diagram


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


A class diagram is used in object
-
oriented programming
to show the relationships between classes.


©
Brooks/Cole, 2003

Modularity


Modularity


Coupling

(
結合
) :


Coupling is a measure of how tightly two
modules

are bound to each other.


Cohesion

(
結合力
) :


Cohesion is a measure of how closely the
processes

in a program are related.

©
Brooks/Cole, 2003

QUALITY

10.4

©
Brooks/Cole, 2003

Quality


Definition:
Quality software


Software that satisfies the user

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

©
Brooks/Cole, 2003

Figure 10
-
5

Quality factors

©
Brooks/Cole, 2003

Figure 10
-
6

Quality circle

©
Brooks/Cole, 2003

DOCUMENTATION

10.5

©
Brooks/Cole, 2003

Documentation


User

documentation


System

documentation


Documentation in the analysis phase


Documentation in the design phase


Documentation in the implementation phase


Documentation in the testing phase


Documentation as an
ongoing process


If the package is modified, all modifications and
their relationships with the original package
must also be documented.

©
Brooks/Cole, 2003

Key terms


Analysis phase


Black box testing


Design phase


Efficiency


Flexibility


Flowchart


Implementation phase


Incremental model


Modularity


Modules


Pseudocode


Quality circle


Quality software


Reliability


Reusability


Security


Software engineering


Software life cycle


Structure chart


System documentation


Testing phase


Waterfall model


White box testing