资源描述:
《(软件设计基础)课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章软件设计基础软件设计是软件需求分析的后续工作,是对软件的需求模型的进一步具体化,是软件工程的重要阶段。简单地讲,软件设计把软件的需求模型转化为软件的设计模型,向目标软件更前进一步。本章讨论与软件设计有关的主要概念,介绍几个具体的软件设计方法。2021/8/281安徽工程大学计算机与信息学院8.1软件设计过程软件设计过程是对程序结构、数据结构和过程细节逐步求精、复审并编制文档的过程。软件设计将产生系统的总体结构设计(architecturaldesign)、系统的数据设计(datadesign)和系统的过程设计(proceduraldesig
2、n)(图8.1)。第八章软件设计基础2021/8/282安徽工程大学计算机与信息学院8.1软件设计过程2021/8/283安徽工程大学计算机与信息学院软件设计过程数据设计把信息描述转换为实现软件所要求的数据结构。总体结构设计旨在确定程序各主要部件之间的关系。过程设计要完成每一部件的过程化描述。软件设计结果是编制代码的依据。设计阶段的重要性影响软件质量,没有良好的设计就没有稳定的、具备适应性的系统,也不会有易维护的软件。例如,房子的建筑、设计。统计表明:设计、编码和测试这三个活动一般占用整个软件开发费用(不包括维护阶段)的75%以上。8.1软件设计过
3、程2021/8/284安徽工程大学计算机与信息学院软件设计过程从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架详细设计是将其进一步精化成软件的算法表示和数据结构。概要设计和详细设计由若干活动组成,除总体结构设计、数据结构设计和过程设计外,许多现代应用软件,还包括一个独立的界面设计活动。8.1软件设计过程2021/8/285安徽工程大学计算机与信息学院8.2软件设计基本概念软件设计基本概念是过去三十年里陆续提出的。软件设计者根据这组概念进行设计决策,如:划分子部件的标准;第八章软件设计基础202
4、1/8/286安徽工程大学计算机与信息学院8.2.1抽象与逐步求精抽象是管理、控制复杂性的基本策略。使用抽象技术便于人们用“问题域”的概念和术语描述问题,而无须过早地转换为那些不熟悉的结构。软件设计过程是,在不同抽象级别上考虑、处理问题的过程。(1)在最高抽象级别上,用面向问题域的语言叙述“问题”,概括“问题解”的形式。(2)不断地具体化,不断地用面向过程的语言描述问题。(3)在最低的抽象级别上给出可直接实现的“问题解”,即程序。8.2软件设计基本概念2021/8/287安徽工程大学计算机与信息学院抽象与逐步求精软件工程过程的每一步都是对较高一级抽
5、象的解作一次较具体化的描述。在系统定义阶段,软件系统被描述为基于计算机的大系统的一个组成部分;在软件规划和需求分析阶段,软件用问题域约定的习惯用语表达;从概要设计过渡到详细设计时,抽象级再一次降低;编码完成后,达到了抽象的最低级。8.2软件设计基本概念2021/8/288安徽工程大学计算机与信息学院抽象与逐步求精在由高级抽象到低级抽象的转换过程中,伴随着一连串的过程抽象和数据抽象。过程抽象把完成一个特定功能的动作序列抽象为一个过程名和参数表,通过指定过程名和实际参数调用此过程;数据抽象把一个数据对象的定义(或描述)抽象为一个数据类型名,用此类型名可定
6、义多个具有相同性质的数据对象。8.2软件设计基本概念2021/8/289安徽工程大学计算机与信息学院例8.1不同级别的过程抽象例8.1 考虑适用于低级CAD的图形软件包。抽象1该CAD软件系统配有能与作图员进行可视化通讯的图形界面。能用鼠标替代作图板和直尺画各种直线和曲线。能完成所有几何计算及所有截面视图和辅助视图的设计。图形设计的结果存在图形文件中,图形文件可包含几何的、正文的和其他各种补充设计信息。在这一抽象级别上,问题的解用问题域本身的术语描述。8.2软件设计基本概念2021/8/2810安徽工程大学计算机与信息学院不同级别的过程抽象抽
7、象2CAD软件任务;用户界面任务;创建二维图形任务;显示图形任务;管理图形文件任务;endCAD.在这一抽象级别上,给出了组成CAD软件任务的所有子任务,术语与问题域有所不同,但仍然不是实现用的语言。8.2软件设计基本概念2021/8/2811安徽工程大学计算机与信息学院不同级别的过程抽象抽象3例“创建二维图形任务”PROCEDURE创建二维图形REPEAT UNTIL <创建图形任务终止>DO WHILE <出现与数字仪的交互时>数字仪接口任务;判断作图请求:线:画线任务;圆:画圆任务; …END;8.2软件设
8、计基本概念2021/8/2812安徽工程大学计算机与信息学院不同级别的过程抽象DO WHILE <出现与键盘