- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章
结构化设计
湘 潭 大 学
传统的软件工程方法学采用结构化设计(Struc tured Design,SD)技术,完成软件设
计工作, 通常把软件设计工作划分为概要设计和详细设 计这样两个阶段。 ? 概要设计
的主要任务是,通过仔细分析软件规 格说明,适当地对软件进行功能分解,从而把 软
件划分为模块,并且设计出完成预定功能的 模块结构。 ? 详细设计阶段详细地设计每
个模块,确定完成 每个模块功能所需要的算法和数据结构。
4.1
结构化设计与结构化分析的关系
软件设计必须依据对软件的需求来进行, 结构化分析的结果为结构化设计提供了
最基本的输入信息。 ? 分析模型的每个元素都提供了创建设计 模型时所需要的信息。
图4.1描绘了软件 设计过程中的信息流。 ? 由数据模型、功能模型和行为模型清楚 地
表示的软件需求被传送给软件设计者, 他们使用适当的设计方法完成数据设计、 体系
结构设计、接口设计和过程设计。
图4.1 把分析模型转变成软件
在软件设计期间我们所做出的决策,将 最终决定软件开发能否成功,更重要的 是
,这些设计决策将决定软件维护的难易程度。
4.2
软件设计的概念和原理
模块化
模块是由边界元素限定的相邻的程序元素 (例如,数据说明,可执行的语句)的序列
,而且有一个总体标识符来代表它。像Pascal 或Ada这样的块结构语言中的Begin…en
d对, 或者C ,C++和Java语言中的{… }对,都是边界元素的例子。因此,过程、函数
、子程 序和宏等,都可作为模块。面向对象范型中 的对象是模块,对象内的方法也是
模块。模 块是构成程序的基本构件。
模块化
模块化就是把程序划分成独立命名且可独立访 问的模块,每个模块完成一个子功能
,把这些模块集成起来构成一个整体,可以完成指定的 功能满足用户的需求。
模块化是为了使一个复杂的大型程序能被人的 智力所管理,软件应该具备的惟一属
性。是人 类解决问题一般规律在软件设计中的具体应用。 (分解问题,各个击破)
模块化
图4.2 模块化和软件成本
模块化
Meyer提出了五条标准,可以用这五条标 准来评价一种设计方法定义有效的模块系
统的能力。这五条标准是:
(1)模块可分解性; (2)模块可组装性; (3)模块可理解性; (4)模块连续性; (5
)模块保护性。
模块化
(1) 模块可分解性 ? 如果一种设计方法提供了把问题分解为子问题 的系统化机制
,它就能降低整个问题的复杂性,从而可以实现一种有效的模块化解决方案。 (2) 模
块可组装性 ? 如果一种设计方法能把现有的(可重用的)设计 构件组装成新系统,它就
能提供一种并非一切 都从头开始做的模块化解决方案。
模块化
(3) 模块可理解性 ? 如果可以把一个模块作为一种独立单元(无需 参考其他模块)
来理解,那么,这样的模块是 易于构造和易于修改的。 (4) 模块连续性 ? 如果对系统
需求的微小修改只导致对个别模块, 而不是对整个系统的修改,则修改所引起的副 作
用将最小。 (5) 模块保护性 ? 如果在一个模块内出现异常情况时,它的影响 局限在该
模块内部,则由错误引起的副作用将 最小。
模块化的优点
采用模块化原理可以使软件结构清晰,不仅容 易设计也容易阅读和理解。 ? 因为
程序错误通常局限在有关的模块及它们之 间的接口中,所以模块化使软件容易测试和调
试,因而有助于提高软件的可靠性。 ? 因为变动往往只涉及少数几个模块,所以模块
化能够提高软件的可修改性。 ? 模块化也有助于软件开发工程的组织管理,一 个复杂
的大型程序可以由许多程序员分工编写 不同的模块,并且可以进一步分配技术熟练的
程序员编写困难的模块。
抽象
人类在认识复杂现象的过程中使用的最 强有力的思维工具是抽象。人们在实践 中
认识到,在现实世界中一定事物、状 态或过程之间总存在着某些相似的方面 (共性)。
把这些相似的方面集中和概括 起来,暂时忽略它们之间的差异,这就 是抽象。或者说
抽象就是抽出事物的本 质特性而暂时不考虑它们的细节。 ? 软件工程过程的每一步都
是对软件解法 的抽象层次的一次精化。
逐步求精
逐步求精是人类解决复杂问题时采用的基本技术, 也是许多软件工程技术(例如,
规格说明技术,设 计和实现技术、测试和集成技术)的基础。可以把 逐步求精定义为:
为了能集中精力解决主要问题“
您可能关注的文档
最近下载
- 人教版数学五年级上册教学计划及进度表.doc VIP
- 昆山通海中学小升初考试试卷.docx VIP
- 交警基本法律知识.pptx VIP
- 2025下半年湖南省国际工程咨询集团有限公司社会招聘34人笔试模拟试题及答案解析.docx VIP
- 2025年海南三亚市天涯区教育系统招聘幼儿园编制教师16人(第1号)笔试历年典型考题(历年真题考点)解题思路附带答案详解(5套).docx
- 旅游美学——第三章-审美心理.pptx VIP
- 《永冻土地区场道工程技术》课程教学大纲模板课程教学大纲.doc VIP
- 考研英语单词表汇总(5500).doc VIP
- 2025下半年湖南省国际工程咨询集团有限公司社会招聘34人笔试备考题库及答案解析.docx VIP
- 人教版(2024)七年级美术上册第二单元第2课《科技之光》精品课件.pptx VIP
文档评论(0)