- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件设计的目标就是要回答“怎么做”才能实现软件系统的问题,而总体设计是要概要地说明软件系统的实践方案,即给出目标系统的框架。
与项目前期的粗略设计不同,总体设计阶段得到的系统框架必须以需求分析的结果为基础,因此必须是精确的。
项目前期粗略设计的某些系统框架,如系统体系结构、网络硬件结构、安全设计、配套设计往往在项目进入需求分析阶段前,就会明确并保持稳定,因此在进入总体设计阶段后,无须再进行设计。而应用系统框架,如功能结构、系统构成、软件构成、系统部署需要重新设计,软件构成需要从头设计;此外,项目前期未涉及的数据设计问题、应用级安全设计、总体界面设计,在总体设计阶段,也要加以解决。
;5.1 设计思想
5.2 结构化总体设计
5.3面向对象的总体设计
5.4 总体设计文档规范
5.5 本章小结
; 在结构化设计方法下,系统被认为由大小不等的模块(或称函数、过程)构成。
在面向对象方法下,系统由复杂程度不同的类对象构成。由于两者看待目标系统的思维方式完全不同,下面分别介绍两种不同方法下的总体设计。
;5.1.1 结构化总体设计概述
5.1.2 面向对象总体设计概述
5.1.3 数据库设计
5.1.4 应用系统的安全设计
5.1.5 总体界面布局
; 结构化方法下,总体设计阶段必须以需求分析的结果(数据流图+数据字典)为基础进行设计,以得到系统的框架。
根据层次化的数据流图,映射出系统的物理构成;
根据层次化的数据流图,将其中的加工映射出层次的功能结构;
将系统的物理构成分布在网络上,得到系统部署结果;
将数据字典转化为数据库设计的概念模型(ER模型),并进一步进行数据库的逻辑设计和物理设计。
; 1.设计原则
(1)模块化
结构化方法下,模块被认为是构成软件系统的基本组件,模块内部包括数据说明、可执行语句,每个模块都可以单独命名并通过名字来访问。过程、函数、子程序、宏都是模块。模块集成起来构成一个整体,完成特定功能,进而满足用户需求。
模块的公共属性如下:
每个模块都有输入输出;
每个模块都有特定的逻辑功能,完成一定的任务;
模块内部有属于自己的内部数据,其逻辑功能由一段可执行的代码实现。
(2)抽象
抽象是人们认识世界时使用了一种思维工具。用内涵更小、外延更大的概念来表达更具体的多个概念或现象。在结构化设计中,抽象起着非常重要的作用,可以先用一些宏观的概念构造和理解一个庞大、复杂的系统,然后再逐层用一些较为直观的概念去解释宏观概念,直到最底层的元素。;(3)逐步求精
在面对一个新问题时,开发人员先关注于与本质的宏观概念,集中精力解决主要问题,再逐步关注问题的非本质细节。逐步求精是抽象的逆过程,世界上软件生命周期各阶段活动,就是解决方案抽象层次的逐步细化。抽象和逐步求精有利于人们控制风险,集中精力解决问题。
(4)信息隐藏
在结构化方法下,程序由大小不一的模块构成,每个模块有自己的逻辑功能和数据结构。其他模块调用该模块时,无需知道其内部细节,模块只公布必须让外界知道的信息,如模块名、输入参数个数和类型、输出参数个数和类型。模块的具体实现细节对其他的模块不可见,这种机制就叫信息隐藏。
信息隐藏能够避免使局部错误扩大化,避免外部对模块内部进行访问和控制,有利于软件的测试、升级和维护。
(5)一致性
整个软件系统(包括文档和程序)的各个模块均应使用一致的概念、符号和术语;程序内部接口应保持一致;软件与硬件接口应保持一致;系统规格说明与系统行为应保持一致;实现一致性需要良好的软件设计工具、设计方法和编码风格的支持。
;2.结构化总体设计的启发式规则
(1)模块的规模要适中。
结构化程序设计要在模块数量与模块的大小之间取得平衡,如果模块规模大,则模块数量少;不过模块规模过小,则整个系统的模块数量多。模块规模大,模块复杂,难以实现、测试和维护;模块规模小,则大量的模块之间关系复杂,控制困难,调用开销大。一般模块的程序行数在50-100为宜。;(2)提高模块的独立性,降低模块之间的耦合。即每个模块完善相对独立的功能,模块之间的关联尽可能少。
模块的独立性与模块之间的耦合性密切相关,模块间的耦合强弱取决于接口的复杂性,如信息传递的方式(传值还是传地址)、输入输出的参数个数和类型。按照模块之间关系,可以把耦合分为七级,从低到高分别是无直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。
无直接耦合是指调用模块和被调用模块间没有直接的数据联系;数据耦合是指调用模块和被调用模块间存在简单变量之类的数据联系,标记耦合是指调用模块和被调用模块间存在复杂结构变量(数组、结构、对象)之类的数据联系;控制耦合是指调用模块和被调用模块间存在控制信息关联;外部耦合是指多个模块访问全
原创力文档


文档评论(0)