- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件设计 学习目标 : 掌握软件设计的任务 掌握模块划分的评价准则——模块独立性的判别 掌握结构化设计方法 掌握一些常用的详细设计工具 第3章 软件设计 教学内容 3.1 软件设计的任务 3.2 软件设计的基本概念 3.3 结构化设计方法 3.4 设计优化 3.5 详细设计 本章小结 3.1 软件设计的任务 需求分析阶段的结果是需求规格说明书,它明确地描 述了用户对系统的需求,解决了软件“做什么”的问题。在 明确了要做的“问题”之后,现在应该着手寻求问题的“解 答”,即解决软件“怎么做”的问题。 软件设计是一个把软件需求转换成软件表示的过程,软 件设计分为两个阶段: 概要设计,将软件需求转换为软件结构和数据结构,并编写概要设计说明书; 详细设计,通过对软件结构的细化,得到软件的详细的算法和数据结构,产生描述软件的详细设计文档。 3.1 软件设计的任务 概要设计的基本任务有: ①制定规范 ②软件系统结构的总体设计 ③处理方式设计 ④数据结构设计 ⑤可靠性设计 ⑥编写概要设计阶段的文档 ⑦概要设计评审 3.2 软件设计的基本概念 主要教学内容: 3.2.1 软件设计的概念 3.2.2 模块化与模块独立性 3.2.3 抽象与信息隐蔽 3.2.4 软件设计原则 3.2 软件设计的基本概念 3.2.1 软件设计的概念 1.逐步求精 逐步求精是把问题的求解过程分成若干步骤或阶段, 每个步骤或阶段都比上一个步骤更精化,更接近问题的 解法。逐步求精是与抽象化紧密相关的概念,是一个由 抽象到具体的过程。 软件工程的每一个阶段都是对软件解法的一次求精。 可行性研究阶段是对软件设计的最高层次抽象。而在编码 阶段,用源程序写出了问题的解法,这是软件设计的最低 层次抽象。 3.2 软件设计的基本概念 2.程序结构 程序结构最常用的是树状结构,它蕴涵了程序控制上的 层次关系。位于最上层根部的是顶层模块,它是程序的 主模块。与其联系的有若干下属模块,受其控制和调用。 程序结构可以按水平方向或垂直方向进行划分。 水平划分按主要的程序功能来定义模块结构的各个分 支。顶层模块是控制模块,用来协调程序各个功能之间 的通信和运行。其下级模块的最简单的水平划分方法是建 立3个分支:输入、处理(数据变换)和输出。这种划分 的优点是:由于主要的功能相互分离,易于修改、易于 扩充,且没有副作用。缺点是:需要通过模块接口传递 更多的数据,使程序流的整体控制复杂化。 3.2 软件设计的基本概念 垂直划分也叫作因子划分,主要用在程序的体系结构 中,划分时自顶向下逐层分布:顶层模块执行控制功能, 极少涉及实际处理工作;而低层模块是实际输入、计算 和输出的具体执行者。这种划分的优点是:对低层模块 的修改不太可能引起副作用的传播,而恰恰对计算机程 序的修改常常发生在低层的输入、计算或输出模块中。 因此,程序的整体控制结构不太可能被修改,便于将来的 维护。 3.2 软件设计的基本概念 3.数据结构 数据结构是数据的各个元素之间的逻辑关系的一种表 示。数据结构设计应确定数据的组织、存取方式、相关 程度,以及信息的不同处理方法。数据结构的组织方法和 复杂程度可以灵活多样,但典型的数据结构种类是有限的, 它们是构成一些更复杂结构的基本构件块。常用的数据结 构类型有标量、数组、链表、自定义类型等。 4.局部化 局部化是指把一些关系密切的软件元素物理地放得彼 此靠近。在模块中使用局部数据元素就是局部化的一个 例子。显然局部化有利于实现信息隐蔽。 3.2 软件设计的基本概念 3.2.2 模块化与模块独立性 1.模块化 模块是数据说明、语句等程序对象的集合,单独命名 而且可通过名字来访问,如过程、函数、子程序、宏等 都可以作为模块。模块具有3个基本属性: (1)功能:模块实现的功能(含子模块的功能)。 (2)逻辑:描述模块内部怎么做。 (3)状态:模块使用时的环境和条件。 模块具有内部和外部两个特性: (1)外部特性:模块的名字、参数表等。 (2)内部特性:完成模块功能的程序代码和模块内部数据。 3.2 软件设计的基本概念 2.模块的独立性 是指软件系统中每个模块只涉及软件要求的具体的子 功能,而和软件系统中其他的模块的接口是简单的。例如, 若一个模块只具有单一的功能且与其他模块没有太多的 联系,那么,则称此模块具有模块独立性。它的重要性 在于: 模块独立性好的软件比较容易开发,便于多人合作开发同一个软件。 独立的模
您可能关注的文档
最近下载
- 《高等数学(上册)》(阳平华)645-4教案 第六章 第25课 定积分的换元积分法和分部积分法.doc VIP
- 《高等数学(上册)》(阳平华)645-4教案 第六章 第24课 微积分基本公式.doc VIP
- 天津市南仓中学2024-2025学年高二上学期10月月考数学试题(无答案).docx VIP
- 欧洲规范-NF P94-078-中文版.pdf VIP
- 腔隙性脑梗死课件.pptx VIP
- 过顶板破碎段施工安全技术措施.doc VIP
- 2025年湖北省十一校届高三语文联考“世界的馈赠”考场作文评析与升格训练.docx VIP
- 腔隙性脑梗死演示课件.pptx VIP
- 2024第三季度医疗质量与安全管理委员会会议记录[1].docx VIP
- 天津市南仓中学2024-2025学年高二上学期10月月考物理试题(无答案).docx VIP
文档评论(0)