软件工程软件设计.pptxVIP

  • 1
  • 0
  • 约1.24万字
  • 约 120页
  • 2021-09-27 发布于河北
  • 举报
4第四章软件设计4.1 软件设计阶段的任务与目标4.1 软件设计阶段的任务与目标 软件设计是对实现软件的结构、系统的数据、系统组件之间的接口以及所用算法的描述。 软件设计是软件开发的关键步骤,直接影响软件的质量。 在软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了所开发的软件“做什么”的问题,并已在软件需求说明书中详尽和充分地阐明了这些需求以后,下一步就要着手实现软件的需求,即软件设计阶段要解决“怎么做”的问题。 设计过程的一般模型需求描述设计活动数据结构设计体系结构设计抽象描述接口设计组件设计算法设计系统体系结构软件描述接口描述组件描述数据结构描述算法描述设计产品4.1.1 软件设计在开发阶段中的重要性 4.1.1 软件设计在开发阶段中的重要性  软件设计阶段要解决“如何做”的问题。 系统结构设计确定程序有哪些模块组成,以及这些模块之间的关系。数据结构设计主要是进行数据结构的定义。 数据库设计要进行数据库的概念设计、逻辑设计和物理设计。 过程设计确定每个模块的处理过程。系统结构设计信息域需求程序模块已测试软件编码软件设计软件测试过程设计功能与性能需求数据结构设计数据库设计开发阶段信息流4.1.2 软件设计阶段的任务 4.1.2 软件设计阶段的任务一、软件设计的任务总体设计(概要设计)和详细设计。概要设计的主要任务:1.设计软件结构(1)采用某种设计方法,将一个复杂的系统按功能划分成模块(2)确定每个模块的功能(3)确定模块之间的调用关系(4)确定模块之间的接口,即模块之间传递的信息(5)评价模块结构的质量?2. 数据结构及数据库设计(1)数据结构的设计:设计抽象的数据结构(2)数据库的概念设计、逻辑设计和物理设计3.编写概要设计文档?文档主要有:?(1)概要设计说明书。?(2)数据库设计说明书,主要给出所使用的DBMS简介、数据库的概念模型、逻辑设计结果。?(3)用户手册,对需求分析阶段编写的用户手册进行补充。?(4)修订测试计划,对测试策略、方法、步骤提出明确要求。详细设计:确定模块内算法;数据结构详细设计(JACKSON方法);接口内部的细节。高可靠性高可维护性高效率软件设计高可理解性 软件设计的目标4.1.2 软件设计阶段的任务二、软件设计的目标在设计阶段应达到的目标是:提高可靠性;提高可维护性;提高可理解性;提高效率。衡量该目标的准则:1、软件实体有明显的层次结构,利于软件元素间控制。2、软件实体应该是模块化的,模块具有独立功能。3、软件实体与环境的界面清晰。4、设计规格说明清晰、简洁、完整和无二义性。 常用的设计方法有:SD法、Jackson法、HIPO法、Parnas法、Warnier法等。4.2 软件结构与软件结构图4.2 软件结构与软件结构图软件结构是软件模块之间关系的表示,它决定了整个系统的结构,也确定了系统的质量。模块之间的关系可有多种,但都可以归结为一种层次关系。软件结构图是总体设计阶段的主要描述工具,它描述了构成系统的基本元素——模块及模块之间的调用关系,模块之间的数据传递关系。本节讨论如何进行软件结构的设计,设计的准则以及为了提高软件系统的质量,如何对软件结构进行改进的技术。4.2.1软件结构的基本概念ABCDHEFGIJKLM4.2.1 软件结构的基本概念 软件结构表示软件系统的构成,是软件模块间关系的表示,下图则为软件结构示意图。下面先介绍几个相关的的概念。一、模块(Module) 模块是程序对象有名字的集合。例如,过程、函数、子程序、宏等,是构成软件系统结构的基本元素。 软件结构图二、模块化 模块化就是将系统划分为若干个模块,每个模块完成一个子功能。模块化的目的是将系统“分而治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。模块化降低软件复杂度的简单证明4.2.1软件结构的基本概念成本最小成本区}软件总成本M接口成本模块成本模块数目 模块化与软件成本的关系模块化降低软件复杂度的简单证明令:C(X)表示问题 X 的复杂度函数; E(X)解决问题 X 所需工作量的复杂度函数;若:有问题 P1,P2 ; C(P1) C(P2); 显然:E(P1) E(P2)由经验:C(P1+P2) C(P1)+ C(P2)于是:E(P1+P2) E(P1)+ E(P2)将问题(P1+P2)划分为两个问题P1和P2后,其工作量和复杂度都降低。 并非模块分得越小越好,因为模块之间接口的复杂度和工作量增加。显然,每个软件系统都有一个最佳模块数M。注意选择分解的最佳模块数。右上图描述了模块化与软件成本的关系。4.2.1软件结构的基本概念A深度BCDEFGHIJKLMN宽度宽度宽度软件的层次结构 软件结构图表示软件的系统结构,它是软件模块间关系

文档评论(0)

1亿VIP精品文档

相关文档