- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程——8.软件设计基础.ppt
Software Engineering (An Introduction) Foundation of Software Design 与SRA基础一章类似,在讲述具体的软件设计方法之前,本章先讨论一些与软件设计有关的基本问题和基本概念。这些问题和概念贯穿于软件的整个阶段。无论采用哪一种具体的软件设计方法,都无法回避这些问题,都将用到这些基本概念。因此,它们是每个软件设计人员必须理解和掌握的。软件设计的基本概念是从20世纪60年代陆续提出的。虽然经历了不同程度的发展和改变。但大都经受住了实践和时间的考验,成为软件设计人员应用软件方法进行软件设计的基础。 教学目标 掌握软件设计过程四个方面:总体结构设计、数据设计、过程设计和界面设计;可分为概要设计和详细设计两个阶段。 掌握软件设计中用到基本概念包括:抽象与逐步求精;模块化与信息隐藏;软件总体结构、数据结构与软件过程。 掌握流程图、盒图、判定表和了解PDL语言。 第8章 Foundation of Software Design 8.1 软件设计基本概念 8.1.1 软件设计过程 8.1.2 软件设计的基本问题 8.1.3 抽象与逐步求精 8.1.4 模块化与信息隐藏 8.1.5 软件总体结构设计 8.1.6 数据结构设计 8.1.7 软件设计的启发规则 8.1.8 软件过程设计 8.1.9 常用的设计方法 8.2 过程设计技术和工具 8.3 设计规格说明与评审 8.4 软件设计CASE工具 第8章 软件设计基础 软件设计阶段的工作是以需求分析阶段的成果为前提和基础的,即经过系统分析小组签字认可的需求规格说明书及有关技术文档。经过软件工程师们多年的努力,一些软件设计技术、质量评估标准和设计表示法逐步形成并用于软件工程实践。 软件设计是软件工程的重要阶段。软件设计过程是对程序结构、数据结构和过程细节逐步求精、复审并编制文档的过程,本章讨论与软件设计有关的主要概念。 8.1 软件设计基本概念 8.1.1 软件设计过程 软件开发阶段由设计、编码和测试三个基本活动组成,其中“设计”活动是获取高质量、低耗费、易维护软件的一个最重要环节。 需求分析阶段获得的需求规格说明书包括对将要实现的系统在信息、功能和行为等各个方面的描述,这是软件设计的基础。对此不论采用何种软件设计方法都将产生: 系统的总体结构设计(architectural design); 系统的数据设计(data design); 系统的过程设计(procedural design)。 8.1.1 软件设计过程 图8-1-1 开发阶段的信息流 8.1.1 软件设计过程 软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。 从工程管理的角度软件设计可分为概要(preliminary)设计和详细(detail)设计两大步骤。 概要设计是根据需求确定软件和数据的总体框架 详细设计是将其进一步精化成软件的算法表示和数据结构。 在技术上,概要设计和详细设计又由若干活动组成,除总体结构设计、数据结构设计和过程设计外,许多现代应用软件,还包括一个独立的界面设计活动。 8.1.2 软件设计的基本问题 软件设计的目标和任务 以SRS为依据,设计出能满足SRS中定下的各项需求的软件实现方案,并力求使方案达到最佳。该设计方案是后继阶段(编码实现)的依据。 (设计方案也将为问题的软件解solution或软件表示representation) 8.1.2 软件设计的基本问题 具体工作 1.概要设计:(1)data design; (2)architectural design; (3)HCI design;(4)修订用户手册;(5)制定初步的测试计划;(6)概要设计评审;(7)编写初步的操作手册。 2、详细设计:(1)确定程序结构中每个模块内部的详细数据结构和具体的算法;(2)把算法用某种表达工具描述出来;(3)详细设计评审。 8.1.2 软件设计的基本问题 工作结果 8.1.2 软件设计的基本问题 软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构。 8.1.2 软件设计的基本问题 软件设计的基本原则 抽象与逐步求精 问题分解与模块化 信息隐藏 模块独立性 高内聚低耦合原则 软件设计的启发规则 8.1.3 抽象与逐步求精 抽象是控制复杂性的基本策略。“抽象” 要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。 软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。 最初,应在最高抽象级别上,用面向问题域的语言叙述“问题”,概括“问题解”的形式; 而后不断地具体化,不断地用面向过程的语言描述问题; 最后,在最低的抽象
文档评论(0)