查看匯總:2015年軟考《軟件設(shè)計師》模擬練習題及答案匯總
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 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 effective software engineering.A well-designed software system is straightforward [1] to implement and maintain,easily understood and reliable.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.
Until fairly recently,software design was largely an ad hoc[2] process.Given a set of requirements,usually in natural language,an informal design was prepared,often in the form of a flowchart[3].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 much from its initial specification that the original design document was a totally inadequate description of the system.
This approach to software design was responsible for many dramatic and very expensive project failures.Now it is realized that completely informal notations such as flowcharts,which are close to the programming 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 represented in any single notation.Accordingly,a number of design notations such as data flow diagrams.HIPO charts[4],structure diagrams and design description languages have been developed which are superior to flowcharts for expressing software designs.
Given a requirements definition,the software engineer must use this to derive the design of a programming system which satisfies these requirements.This derivation is accomplished in a number of stages:
(1)The subsystems making up the programming system must be established.
(2)Each subsystem must be decomposed into separate components and the subsystem specification established by defining the operation of these components.
(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.
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |