概要设计.ppt
《概要设计.ppt》由会员分享,可在线阅读,更多相关《概要设计.ppt(67页珍藏版)》请在三一办公上搜索。
1、第4章 总体(概要)设计,本章重要知识点:软件体系结构概要设计任务与步骤软件设计的基本概念面向数据流的设计方法面向数据结构的分析设计方法概要设计文档评审,对软件需求有了完整、准确、具体的理解之后,就要通过设计来实现该需求。传统的软件工程方法学采用结构化设计技术,完成软件设计工作。结构化设计可分为两个阶段:概要设计和详细设计。,概要设计主要解决的问题:从黑盒级划分出组成系统的物理元素(程序,文件,数据库,文档等);设计出组成软件的主要模块及其之间的关系.详细设计主要解决的问题:设计实现模块的算法和数据结构.,4.1软件体系结构4.1.1概述,软件体系结构(Software Architectur
2、e,SA)定义软件系统实现的蓝图,从一个较高抽象层次考虑组成系统的构件及其之间的交互,以及构件及其交互形成的拓扑结构关系。体系结构的设计过程1)系统结构化:分解成子系统,划分子系统之间的通信.2)控制建模:建立各部分之间的控制关系的一般模型.3)模块分解:子系统进一步分解成模块.,常见软件体系结构风格,以数据为中心的体系结构;数据流体系结构;调用和返回体系结构;面向对象体系结构;层次式体系结构。,数据存储,客户软件,客户软件,客户软件,客户软件,客户软件,客户软件,数据为中心的体系结构,过滤器,过滤器,过滤器,数据流体系结构,过滤器,用户界面层,应用层,实用层,核心层,表示构件,层次式体系结构
3、,体系结构设计的定量分析,目前在体系结构设计质量定量分析方面的研究尚处于起步阶段。Asada提出了伪定量技术的简单模型帮助设计者确定体系结构满足预定义的“好”标准的程度.这些标准称为设计量纲(Design Dimension),包括软件的质量属性:可靠性、安全性、可维护性、可测试性、可移植性、可复用性等。,Asada提出的简单模型可分为:频谱分析(Spectrum analysis)模型设计选择分析(Design selection analysis)模型贡献分析(Contribution analysis)模型,Belady将软件设计分为两个阶段:,多样化(Diversification):
4、获得所有可选事物和未加工的设计材料,如构件、解决方案和知识;收敛(convergence):设计者从设计材料中选择和组合合适元素,以满足设计目标。这是一个不断删除的过程。,数据字典,状态转换图,控制规格说明,数据流图,处理规格说明,实体关系图,数据对象描述,过程设计,接口设计,体系结构设计,数据设计,分析模型转变成软件设计示意图,4.1.2系统构成,体系结构的三个标准模型:1.容器模型:适合于数据是由一个子系统产生而由其他子系统使用的情形。2.客户机/服务器模型:是一个分布式系统模型,数据和处理过程可分配在多个处理器之中。3.抽象机模型:有时叫做分层模型,是用来建立子系统的接口模型。,4.1.
5、2控制模型,1集中式控制:一个子系统被指定为系统控制器来负责管理其他系统的执行。调用返回模型:自上而下的子过程模型,控制始于子程序层次的顶层,在调用过程中,控制逐步传递到更低的层次中。该模型只适用于顺序执行的系统。管理者模型:一个系统组件被指定为系统管理者,它控制其他系统过程的启动、终止和协调。一个过程就是一个能和其他过程并发执行的子系统或模块。,2事件驱动系统:通过外部产生的事件来驱动系统。广播模型:在这些模型中,理论上事件是广播到所有子系统的。任何能处理该事件的子系统都会响应。中断驱动模型:该模型专门用于实时系统中,由中断处理器对来自外部的中断进行检测,然后在其他组件中处理这些中断。,1概
6、要设计的主要任务系统分析员审查软件计划、需求分析,提出最佳推荐方案。确定模块结构,划分功能模块。编写概要设计说明书、用户手册、测试计划,选用相关的软件工具来描述软件结构,选择分解功能与划分模块的设计原则。,4.2概要设计的任务与步骤,概要设计过程分两个主要阶段:系统设计阶段:确定系统的具体实现方案;结构设计阶段:确定软件结构。2.典型的总体设计过程包括9个步骤:1)设想供选择的方案2)选取合理的方案通常至少选取低成本、中等成本和高成本的三种方案。,对每个合理的方案都应该准备下列4份资料:(1)系统流程图;(2)组成系统的物理元素清单;(3)成本/效益分析;(4)实现这个系统的进度计划。3)推荐
7、最佳方案综合分析对比各种合理方案的利弊,推荐一个最佳方案,并制定详细实现计划。用户和有关技术专家应该认真审查分析员所推荐的最佳方案。,4.)功能分解对程序(特别是复杂的大型程序)的设计,通常分为结构设计和过程设计。结构设计确定程序由哪些模块组成,以及这些模块之间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。为确定软件结构需要从实现角度把复杂功能进一步分解为一系列简单功能。,5.)设计软件结构 一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,软件结构(即由模块组成的层次系统)可以用层次图或结构图来描绘,第5.4节将介绍这些图形工
8、具。从数据流图映射出软件结构,这就是第5.5节中将要讲述的面向数据流的设计方法。6)设计数据库与文件结构7)制定测试计划,8)书写文档系统说明:主要包括系统构成方案,物理元素清单,成本/效益分析等。用户手册:根据总体设计阶段产生的初步的用户手册。测试计划包括测试策略,测试方案,预期的测试结果,测试进度计划等。详细实现计划数据库设计结果9)审查和复审进行技术审查和管理复审。,4.3软件设计的概念和原理,模块化抽象逐步求精信息隐藏和局部化模块独立(耦合和类聚),4.3.1.模块化与模块独立,1)模块(Module)是由边界元素限定的相邻的程序元素的序列,且有一个总体标识符来代表它(如过程、函数、子
9、程序名等),是构成程序的基本构件.2)模块化(Modularity)即把程序划分成若干个相对独立的模块,每个模块完成一定功能,集成起来形成一个整体,完成系统的功能。软件体系结构(Software Architecture,SA)体现了模块化。SA包括构件(模块)的层次结构、构件间的交互方式和构件的数据结构等。,模块化的根据:C(P1)C(P2)(问题P1和P2复杂程度)E(P1)E(P2)(工作量(时间)C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)结论:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。,3.模块的划分,模块化与软件成本关系图结论
10、:模块的数量应该适当(最小成本区)。,4.模块化的优点软件结构清晰,容易设计、阅读和理解;开发过程中便于组织管理(“分而治之”的思想).5.Meyer提出评价模块化的5条标准:模块的可分解性、可组装性、可理解性、连续性和保护性。,4.3.2抽象与逐步求精,1.抽象(Abstraction)即忽略事物之间的差异而对其共同本质特征加以集中和概括。软件开发过程是一个逐步求精,由抽象到具体的渐进过程(问题定义需求分析概要设计详细设计编码).2.逐步求精即“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑”,是人类解决复杂问题时采用的基本技术,是许多软件工程技术的基础。,认知过程的Miller(72
11、)法则:一个人在任何时候都只能把注意力集中在72个知识块上。逐步求精最初是由Niklaus Wirth提出的一种自顶向下的设计策略.按照这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的.抽象和求精是互补的概念。抽象使设计者重视过程和数据,忽略底层细节;求精则帮助设计者揭示底层细节。,3.信息隐藏(Information Hiding)原理:软件开发过程中设计和确定模块时,应使模块内所包含的信息(数据和过程)对于不需要这些信息的模块来说,是不能访问的(隐蔽模块的实现细节)。4.局部化原理:把模块内关系密切的软件元素物理地放得彼此靠近些。作用:a.提高系统安全性;b.软件结构更
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 概要 设计
链接地址:https://www.31ppt.com/p-4878684.html