《软件结构设计》PPT课件.ppt

《软件结构设计》PPT课件.ppt

ID:57997022

大小:273.51 KB

页数:75页

时间:2020-09-04

《软件结构设计》PPT课件.ppt_第1页
《软件结构设计》PPT课件.ppt_第2页
《软件结构设计》PPT课件.ppt_第3页
《软件结构设计》PPT课件.ppt_第4页
《软件结构设计》PPT课件.ppt_第5页
资源描述:

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

1、第4章软件结构设计设计:应用各种技术和原理,对设备、过程或系统作出足够详细的定义,使之能够在物理上得以实现。软件结构设计:是一个把软件需求变换为软件表示的过程,是对软件的整体结构、程序结构、数据结构、文件结构、接口定义等的设计,是宏观上的设计。4.1软件结构设计概述软件设计结构设计(总体设计)任务:制订系统实现方案和设计规范并合理确定系统的整体模块结构及接口关系。详细设计(模块设计)任务:详细规定每个模块功能的实现算法。结构化设计方法;数据结构驱动的设计方法面向对象的设计方法结构设计软件设计与程序设计的区别:程序设计就是编程序,这是大家熟悉的

2、,很多人印象中的“做软件”就是编程序,因此可能有人会把程序设计和软件设计等同起来。这是不对的,软件设计是宏观上的设计。而程序设计仅仅是软件设计的实现,所以做软件决不简单等同与编程序。4.2软件结构设计的目标、任务和过程目标:综合采用各种技术手段,将系统需求转换为数据结构、模块结构(或对象/类结构)的表达形式,并实现系统的性能、安全性、可靠性要求。取得最佳方案。最佳方案的标准:(1)开发费用省;(2)资源消耗低;(3)开发时间短;(4)生产效率高;(5)可靠性较高;(6)可维护性好。结果:用模块结构图表达。任务:结构设计是一个自顶向下,逐步具体

3、的综合性的设计过程。主要内容:(1)综合分析系统的各种实现方案,提出最佳实现方案的建议。(2)制定设计规范、标准及约定原则。(3)软件结构设计:采用某种软件设计方法,按照模块的构造原则,逐步、逐层地设计软件的模块层次结构。(4)数据结构以及接口的设计。(5)系统性能设计。(6)系统安全性能设计:系统的自保护设计;数据一致性设计;容错设计。(7)系统可靠性设计。(8)设计文档的编写:结构设计说明书;用户手册;系统初步的测试计划说明书。(9)设计的审查和复审。软件结构设计过程:1.设想供选择方案;2.选择合理的方案;3.推荐最优方案;4.功能分解

4、;5.设计软件结构;6.设计数据库;7.制订测试计划;8.书写文档;9.审查和复审;4.3软件设计中的基本概念和原理1.模块化所谓模块,是指具有相对独立性的,由数据说明、执行语句等程序对象构成的集合。程序中的每个模块都需要单独命名,通过名字可实现对指定模块的访问。在高级语言中,模块具体表现为函数、子程序、过程等。一个模块具有输入/输出(接口)、功能、内部数据和程序代码四个特征。输入/输出用于实现模块与其他模块间的数据传送,即向模块传入所需的原始数据及从模块传出得到的结果数据。功能指模块所完成的工作。模块的输入/输出和功能构成了模块的外部特征。

5、内部数据是指仅能在模块内部使用的局部量。程序代码用于描述实现模块功能的具体方法和步骤。模块的内部数据和程序代码反映的是模块的内部特征。模块化是指将整个程序划分为若干个模块,每个模块用于实现一个特定的功能。划分模块对于解决大型复杂的问题是非常必要的,可以大大降低解决问题的难度。为了说明这一点,我们可对问题复杂性、开发工作量和模块数之间的关系进行以下推理。首先,我们设C(x)为问题x所对应的复杂度函数,E(x)为解决问题x所需要的工作量函数。对于两个问题P1和P2,如果:C(P1)>C(P2)即问题P1的复杂度比P2高,则显然有:E(P1)>E(

6、P2)即解决问题P1比P2所需的工作量大。在人们解决问题的过程中,发现存在有另一个有趣的规律:C(P1+P2)>C(P1)+C(P2)即解决由多个问题复合而成的大问题的复杂度大于单独解决各个问题的复杂度之和。也就是说,对于一个复杂问题,将其分解成多个小问题分别解决比较容易。由此我们可以推出:E(P1+P2)>E(P1)+E(P2)即将复杂问题分解成若干个小问题,各个击破,所需要的工作量小于直接解决复杂问题所需的工作量。根据上面的推理,我们可以得到这样一个结论,模块化可以降低解决问题的复杂度,从而降低软件开发的工作量。虽然增加程序中的模块数可以

7、降低开发每个模块的工作量,但同时却增加了设计模块接口的工作量。通过图4.1所示的模块数与软件开发成本的关系图中可以看出,当划分的模块数处于最小成本区时,开发软件的总成本最低。模块化不但可以降低软件开发的难度,而且可以使程序结构清晰,增加易读性和易修改性。此外,模块化还有利于提高代码的可重用性及团队合作开发大型软件的可行性。图4.1模块数与软件开发成本2.模块独立性1)耦合性耦合性是对一个软件结构内部不同模块间联系紧密程度的度量指标。模块间的联系越紧密,耦合性就越高,模块的独立性也就越低。由于模块间的联系是通过模块接口实现的,因此,模块耦合性的

8、高低主要取决于模块接口的复杂程度、调用模块的方式以及通过模块接口的数据。模块间的耦合性主要可划分为如下几种类型。(1)数据耦合。若两个模块之间仅通过模块参数交换信息

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

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

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