- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 软件总体设计 6.1 软件设计的重要性 软件设计处于软件工程过程的技术核心地位。软件开发中不管应用什么样的开发模式(development paradigm),都要进行软件设计。当软件需求分析和定义完成后,就进入设计阶段,即在对系统的信息、功能、行为和各种要求理解的基础上构想未来的系统。这种构想需要后面的编码阶段来构造、测试阶段来验证。软件设计、构造与验证这三项活动是必不可少的。每一项都是按一定形式变换信息,最终使之成为被确认的计算机软件。在软件工程过程中的这些技术阶段的信息流如图6.1所示。 图6.1 软件设计与软件工程 由图6.1可以看出,在软件需求提供的信息(information)、功能(functional)和行为(behavioral)模型上,设计阶段可以使用任何一种设计方法。设计阶段包括把分析阶段所建立的信息域模型变换为数据结构,这种数据结构是软件实现所需要的;也包括定义程序结构构件(structural components)之间的相互关系的体系结构(architectural)设计;还包括变换结构构件为软件的过程描述的过程(procedural)设计。源代码生成并通过测试之后,进行软件的组装(integrate)和确认(validate)。 在设计中所作的决策将最终影响软件实现的成功与否,也影响软件维护的难易程度。所以,在软件设计过程中的这些决策是开发阶段非常关键的一步。 软件设计的重要性还反映在质量(quality)上。在开发过程中,设计是对软件最本质的部分进行构造,构造的水平决定软件质量。同时,设计也提供了可以进行质量评价的软件表达式。只有通过设计,才能把用户的需求精确地转换为完美的软件系统。软件设计是软件工程和软件维护的基础,有无软件设计相差很大,如图6.2所示。 图6.2 有无软件设计的对比 6.2 设 计 过 程 软件设计是一个把需求转换为软件表达式的过程。这个转换过程一般情况下分为两步走。首先,用表达式描绘一个软件的概貌,然后将其细化为一个非常接近于源代码的设计表达式。从软件工程的角度讲是分为总体设计和详细设计。总体设计主要是把需求转换为数据结构和软件体系结构,而详细设计主要集中在体系结构表达式的细化上,进而产生详细的数据结构和软件的算法表达式。 在早期的设计工作中,软件设计着重在开发模块化程序模块所需要的准则以及按照自顶向下(top-down)的方式逐步细化软件体系结构上。设计定义的过程方面逐渐发展成为一种叫做结构化编程(structured programming)的原则。之后,提出了把数据流和数据结构翻译成设计定义的方法。近年来,则建议采用OO(Object-Oriented)的设计方法。总结过去软件设计的发展,可以归纳为是一个持续发展的过程。 在比较小的软件设计中,可以把总体设计和详细设计作为一个过程阶段去完成。但是有一定规模的系统中,总体设计和详细设计是两个明确的阶段。所以它们中的许多设计活动是不同的。除了数据、体系结构和过程设计之外,在现代的许多应用中还包括界面设计活动。界面设计主要是建立人—机之间界面的布局和交互的机制。 总体设计和详细设计除了必须有先进的设计技术外,还要有同步的管理技术支持。图6.3所示的形式表明了总体设计和详细设计与管理技术之间的关系。 图6.3 总体设计和详细设计与管理技术之间的关系 从图6.3中可以看出,由技术支持的总体设计和详细设计都伴随着管理技术。 前面已经提到,软件设计的重要性之一就是软件的质量。在整个设计过程中,对设计每一步的质量都要进行正式的技术评审(formal technical reviews)。对于设计表达式的质量的评价要按照设计准则,这里给出下列软件设计准则: (1) 设计应当模块化(modular),也就是说,软件应被逻辑地划分为能完成特定功能和子功能的构件。 (2) 设计应形成具有独立功能特征的模块(如子程序或过程)。 (3) 设计应使模块之间和与外部环境之间接口的复杂度尽量地降低。 (4) 设计应该有一个分层的组织结构,这样人们可对软件的各个构件进行理性的控制。 (5) 设计应有性质不同的可区分的数据和过程表达式。 (6) 设计应利用软件需求分析中得到的信息和可重复的方法。 人们都希望设计一个良好的系统。然而,任何一个良好的系统设计,都不是偶然能轻易得到的,它是需要通过基本设计原理、系统化的方法和评审的各项技术的应用共同促成的。 6.3 软件总体设计 需求分析阶段所形成的数据流图是软件总体设计的基础。要为可供选择的每一个方案准备一份系统流程图,列出系统组成的物理元素,进行效益分析,制
您可能关注的文档
最近下载
- 2021年11月湖北省浠水县教师乡镇选调招聘考试《教育基础知识》真题试卷及标准答案.pdf VIP
- 树师德扬师风师德师风警示教育课件.pptx VIP
- 浙江省温州市“摇篮杯”2022-2023学年高一下学期化学竞赛试卷 含解析.docx VIP
- 徕卡TS30全站仪操作培训.pdf VIP
- 宜居宜业和美乡村建设项目可行性研究报告.docx
- 教育测量与评价第三版全套完整教学课件.pptx VIP
- 牦牛标准化育肥场布局及圈舍建设规范.docx VIP
- 锅炉烟气和空气焓及各成分(自动计算).xlsx VIP
- GB_T 42611-2023 非公路用旅游观光车辆制动性能试验方法.pdf VIP
- 犬伤暴露规范处理.pptx VIP
文档评论(0)