第3章 软件设计ppt课件.ppt

第3章 软件设计ppt课件.ppt

ID:59018362

大小:341.50 KB

页数:97页

时间:2020-09-26

第3章 软件设计ppt课件.ppt_第1页
第3章 软件设计ppt课件.ppt_第2页
第3章 软件设计ppt课件.ppt_第3页
第3章 软件设计ppt课件.ppt_第4页
第3章 软件设计ppt课件.ppt_第5页
资源描述:

《第3章 软件设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章软件设计学习目标:了解软件设计的任务掌握模块划分的评价准则——模块独立性的判别掌握结构化设计方法掌握一些常用的详细设计工具了解界面设计的设计问题、设计过程和设计指南1第3章软件设计教学内容3.1软件设计的任务3.2软件结构设计3.3描绘软件结构的图形工具3.4面向数据流的设计方法3.5详细设计3.6人机界面设计3.7面向数据结构的设计方法本章小结返回总目录2第7讲:软件设计概念、任务及结构设计33.1.1什么是设计通常,我们把问题转化为解决方案的创造性过程就称为设计。43.1.2设计和需求有

2、什么不同?张君和李丽想做一栋新房子三个小孩有玩耍的空间,并独立拥有各自的睡房一间主人卧房一个厨房冬天可取暖,夏天可制冷室内通水通电等等很明显,这是需求!设计将屋子楼上设置四间睡房,楼下设置一间客房、一间厨房、一个玩具房和一个杂物室等等。然而,这便是设计!53.1.3什么是软件设计那么,什么是软件设计呢?通常,我们把软件需求转换成软件表示的过程称之为软件设计;其解决的问题是把软件“做什么”的逻辑模型变换为“怎么做”的物理模型。软件设计分为两个阶段:概要设计详细设计到底,软件设计要做什么事情呢?3.1

3、.4软件设计的任务73.1.4软件设计的任务(续)概要设计又称为初步设计或总体设计,将软件需求转换为软件结构和数据结构,并编写概要设计说明书。基本任务有:制定规范软件系统结构的总体设计(*模块、接口)处理方式设计(*周转时间、响应时间、呑吐量)数据结构设计(*模式、子模式)可靠性设计编写概要设计阶段的文档(*概要设计说明书、数据库设计说明书、用户手册等)概要设计评审详见P558详细设计又称过程设计,是通过对软件结构的细化,得到软件的详细算法和数据结构,产生描述软件的详细设计文档。目标是要开发一个可

4、以直接转换成某种程序语言的软件表示,所以详细设计阶段的根本任务仍不是进行具体的编码。3.1.4软件设计的任务(续)详细设计≠编码9主要任务是编写软件的详细设计说明书为每个模块确定所采用的算法,并选择某种适当的工具表达算法的执行过程,写出模块的详细过程性描述。确定每一模块使用的数据结构。确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口,以及模块的输入数据、输出数据及局部数据的全部细节。为每一个模块设计出一组测试用例,以便在编码阶段对模块代码进行预定的测试。3.1.4软件设

5、计的任务(续)103.2.1软件结构设计-软件设计过程总体设计过程通常包括两个主要阶段:系统设计阶段:确定系统的具体实现方式;结构设计阶段:确定软件结构。设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构设计数据库制定测试计划书写文档审查和复审详见P56-57113.2.2软件结构设计基本原理-抽象抽象(Abstraction)是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态。代码抽

6、象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的声明。123.2.2软件结构设计基本原理-逐步求精逐步求精是把问题的求解过程分成若干步骤和阶段,每个步骤或阶段都比上一个步骤或阶段更精化,更接近问题的解法。133.2.2软件结构设计基本原理-信息隐蔽信息隐蔽是指每个模块的实现细节对于其他模块来说是隐蔽的。也就是说,模块中所包含的信息(数据和过程)不允许其他不需要这些信息的模块使用。这一指导思想的目的是为了提高模块的独立性,当修改或维护模块时减小把一个模块的错误扩散到其他模块中的机会

7、。在这一思想的指导下,在软件开发中先后出现了“数据封装”、“抽象数据类型”、“类”、“对象”等设计方法。143.2.2软件结构设计基本原理-局部化局部化是指把一些关系密切的软件元素物理地放得彼此靠近。局部化有利于实现信息隐蔽。153.2.3模块化模块化是把程序分成若干模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,可以完成指定功能,满足问题的需求。目的是把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块。重要指导思想是:分解独立性163.2.3.1分解(Decom

8、position)模块化是为了使一个复杂的大型程序能被人的智力所管理。设函数C(x)定义问题x的复杂程度,函数E(X)确定解决问题x需要的工作量(时间)。对于两个问题P1和P2,如果显然3.2.3.2模块化的依据人类解决一般问题时一个有趣的规律:C(P1+P2)>C(P1)+C(P2)E(P1+P2)>E(P1)+E(P2)结论:各个击破——把复杂的问题分解成容易解决的小问题,原来的问题也就容易解决了.3.2.3.3问题提出如果无限的分割软件,最后为了开发软件而需要的工作量也就小得

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。