当前位置:文档之家› 计算机英语(第三版) 8-8.3作者:刘兆毓、郑家农(普通高等教育“十一五”国家级规划教材)

计算机英语(第三版) 8-8.3作者:刘兆毓、郑家农(普通高等教育“十一五”国家级规划教材)

effective software engineering. A welldesigned software system is straightforward[1] to implement and maintain, easily understood and reliable.
计算机文化基础 3
Badly designed systems, although they may work, are
likely to be expensive to maintain, difficult to test and unreliable. The design stage is therefore the most critical part of the software development process. ?1
design, the software engineer may also be required to
主语补语 design communication mechanisms allowing processes in 状语
the system to communicate[5]. He or she may have to design file structures, and will almost certainly have to
natural language, an informal design was prepared, often in the form of a flowchart[3].
计算机文化基础 4
Coding then commenced and the design was modified as the system was implemented. When the implementation stage was complete, the design had usually changed so
定语从句 并列 主语从句 主语从句
represented in any single notation. Accordingly, a number
of design notations such as data flow diagrams,
计算机文化基础 6
the most maintainable design. This latter criterion is the criterion of “goodness” adopted here.
计算机文化基础 10
* ? 6
A maintainable design implies that the cost of system
design the data structures used in his programs. He or she
will have to design test cases to validate his programs.
计算机文化基础 9
?5 ● What may be designed to the software engineer, besides the above five items ?
There is no definitive way of establishing what is meant by a “good” design. Depending on the application and the particular project requirements, a good design
同位语
HIPO charts[4], structure diagrams and design description languages have been developed, which are
非限定性定语从句
superior to flowcharts for expressing software designs.
preliminary designs. Design cannot be learned from a
book—it must be practiced and learnt by experience and
study of existing systems. Good design is the key to

让步状语从句
What is the difference between a good design and a bad design ?
Until fairly recently, software design was largely an ad
hoc[2]process. Given a set of requirements, usually in
changes is minimized and this means that the design
并列 宾语从句 should be understandable and that changes should be local 宾语从句
宾语从句
in effect. Both of these are achieved if the software design is highly cohesive and loosely coupled[6]. ?6
(3) Each program may then be designed in terms of
interacting subcomponents. (4) Each component must then be refined. This normally entails specifying each component as hierarchy of subcomponents.
(5) At some stage of this refinement process, the algorithms
used in each component must be specified in detail.
计算机文化基础
宾 语 定语从句
PART Ⅲ APPLICATIONS
CHAPTER 8 SOFTWARE ENGINEERING
8.3 SOFTWARE DESIGN
8.3 SOFTWARE DESIGN
Main point:

Concept and process of software design Design of a programming system Design methodology
8
?4 ● Which stages should be used to derive the design of a programming system from a requirements definition ? As well as these various stages of programming system
language, are inadequate vehicles for formulating and
expressing system design. It is recognized that precise (although not necessarily formal) specification is an essential part of the design process and that software design is an iterative, multi-stage activity which cannot be


计算机文化基础

2
Software design is a creative process. It requires a
certain amount of flair on the part of the designer and the final design is normally an iteration from a number of
计算机文化基础 11
Some of these are described by Peters (1980) and by Blank and Krijger (1983). In essence, most of these methodologies can be classified into one of three areas: (1) Top-down functional design. The system is designed from a functional viewpoint, starting with a high-level view and progressively refining this into a more detailed design. This methodology is exemplified by Structured Design and stepwise refinement. (2) Object-oriented design. The system is viewed as a collection of objects rather than as functions with messages passed from object to object.
might be a design which allows very efficient code to be
produced, it might be a minimal design where the
定语从句
定语从句
implementation is as compact as possible, or it might be
相关主题