- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程(张海藩)课件 第4章
第4章 结构化设计 传统的软件工程方法学采用结构化设计(Structured Design,SD)技术,完成软件设计工作,通常把软件设计工作划分为概要设计和详细设计这样两个阶段。 概要设计的主要任务是,通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。 详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。 4.1 结构化设计与结构化分析的关系 软件设计必须依据对软件的需求来进行,结构化分析的结果为结构化设计提供了最基本的输入信息。 由数据模型、功能模型和行为模型清楚地表示的软件需求被传送给软件设计者,他们使用适当的设计方法完成数据设计、体系结构设计、接口设计和过程设计。 数据设计把分析阶段创建的信息域模型转变成实现软件所需要的数据结构。 体系结构设计确定了程序的主要结构元素(即程序构件)之间的关系(计算机程序的模块框架)。 接口设计的结果描述了软件内部、软件与协作系统之间以及软件与使用它的人之间的通信方式。 过程设计把程序体系结构中的结构元素,变换成对软件构件的过程性描述。 软件设计的重要性: 1 是把用户需求转变为最终软件产品的唯一方法 2 是决定软件产品质量的关键阶段(能否开发成功、开发出系统的稳定性、测试的难易程度、维护的难易程度) 3 提供了可以进行质量评估的软件表示 4.2 软件设计的概念和原理 4.2.1 模块化 模块是由边界元素限定的相邻的程序元素的序列,而且有一个总体标识符来代表它。 模块是构成程序的基本构件。 模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 模块化的根据: E(P1+P2) E(P1)+ E(P2) 由上可见,把复杂的问题分解成许多容易解决的小问题时,原来的问题就容易解决了。 当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本确实减少了。 当模块数目增加时设计模块间接口所需要的工作量也将增加。 因此,每个程序都相应地有一个最适当的模块数目m,使系统的开发成本最小。 Meyer提出了五条标准,我们可以用这五条标准来评价一种设计方法定义有效的模块系统的能力。下面列出这五条标准。 (1) 模块可分解性 如果一种设计方法提供了把问题分解为子问题的系统化机制,它就能降低整个问题的复杂性,从而可以实现一种有效的模块化解决方案。 (2) 模块可组装性 如果一种设计方法能把现有的(可重用的)设计构件组装成新系统,它就能提供一种并非一切都从头开始做的模块化解决方案。 (3) 模块可理解性 如果可以把一个模块作为一种独立单元(无需参考其他模块)来理解,那么,这样的模块是易于构造和易于修改的。 (4) 模块连续性 如果对系统需求的微小修改只导致对个别模块,而不是对整个系统的修改,则修改所引起的副作用将最小。 (5) 模块保护性 如果在一个模块内出现异常情况时,它的影响局限在该模块内部,则由错误引起的副作用将最小。 采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。 因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。 4.2.2 抽象 人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。 抽象就是抽出事物的本质特性而暂时不考虑它们的细节。 处理复杂系统的唯一有效的方法是用层次的方式构造和分析它。 软件工程过程的每一步都是对软件解法的抽象层次的一次精化。 4.2.3 逐步求精 逐步求精是人类解决复杂问题时采用的基本技术,也是许多软件工程技术(例如,规格说明技术,设计和实现技术、测试和集成技术)的基础。 可以把逐步求精定义为:“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。” 求精实际上是细化过程。我们从在高抽象级别定
您可能关注的文档
最近下载
- UL 1998-2018 UL可编程器件安全软件标准.pdf VIP
- 2024届广东省广州市省实教育集团九年级数学第一学期期末学业水平测试试题含解析.doc VIP
- 传感器原理及应用复习题 .pdf VIP
- 风力发电工程技术专业2021级人才培养方案(高职).pdf VIP
- 2021年10月青岛市建设工程材料价格及造价指数(可搜索)(1).pdf VIP
- 变形监测技术试题及答案.docx VIP
- DB62T 2528.5-2021 动物疫病监测规范 第5部分:免疫抗体监测.pdf VIP
- 2024年秋季新人教版七年级上册英语全册教案.docx
- 《杂草学》教学大纲.doc VIP
- 脑部抗衰护理方案.pptx VIP
文档评论(0)