- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程; 4.1 总体设计的过程
4.2 表示软件结构的图形工具
4.3 软件设计的概念和原理
4.4 软件结构设计优化准则
4.5 面向数据流的设计方法 ;4.1 总体设计的过程; 为了实现目标系统, 最终必须设计出组成这个系统的所
有程序和数据库(文件),对于程序,则首先进行结构设计,具
体方法如下:; 从以上内容看,软件结构的设计是以模块为基础的,在需求分析阶段,通过某种分析方法把系统分解成层次结构。在设计阶段,以需求分析的结果为依据,从实现的角度划分模块, 并组成模块的层次结构。;2. 数据结构及数据库设计;2) 数据库的设计; (2) 逻辑设计。; (3) 物理设计。;3. 编写概要设计文档;4. 评审;4.2 表示软件结构的图形工具;HIPO图;现以某企业的销售系统为例,说明HIPO图的H图。;图 4.1 销售管理系统的H图;2. IPO图;4.2 “确定能否供货系统”的IPO图;4.2.2 结构图; (1) 模块:用方框表示,并用名字标识该模块,名字应体现该模块的功能。;图 4.3 模块间的控制关系及信息传递; (4) 两个附加符号: 表示模块有选择调用或循环调用, 如图 4.4 所示。; 4.4 选择调用和循环调用的表示
(a) 选择调用; (b) 循环调用 ;图 4.5 结构图示例 ; (6) 画结构图应注意的事项如下:;4.3 软件设计的概念和原理; 功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能, 所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。在面向对象设计中,模块和模块化的概念将进一步扩充。模块化是软件解决复杂问题所具备的手段, 为了说明这一点,可将问题的复杂性和工作量的关系进行推理。; 设问题x, 表示它的复杂性函数为C(x), 解决它所需的工作量函数为E(x)。对于问题P1和P2;如果
C(P1)>C(P2)
即P1比P2复杂, 那么
E(P1)>E(P2)
即问题越复杂, 所需要的工作量越大。
根据解决一般问题的经验, 规律为:
C(P1+P2)>C(P1)+C(P2)
即一个问题由两个问题组合而成的复杂度大于分别考虑每个问题的复杂度之和。这样,可以推出:
E(P1+P2)>E(P1)+E(P2); 由此可知,开发一个大而复杂的软件系统,将它进行适当的分解,不但可降低其复杂性,还可减少开发工作量,从而降低开发成本, 提高软件生产率,这就是模块化的依据。 但是否将系统无限制分割,最后开发软件的工作量就会趋于零? 事实上模块划分越多,块内的工作量减少, 但模块之间接口的工作量增加了,如图 4.6 所示。从图看出,存在着一个使软件开发成本最小区域的模块数M,虽然目前还不能确定M的准确数值,但在划分模块时,避免数目过多或过少,一个模块的规模应当取决于它的功能和用途。同时,应减少接口的代价,提高模块的独立性。;图 4.6 模块与开发软件成本;4.3.2 抽象;4.3.3 信息隐蔽;4.3.4 模块独立性; 如何衡量软件的独立性呢? 根据模块的外部特征和内部特征,提出了两个定性的度量标准——耦合性和内聚性。; (1) 无直接耦合:指两个模块之间没有直接的关系, 它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。 因此, 模块间的这种耦合性最弱,模块独立性最高。; (4) 控制耦合:指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能。 因此被调模块内应具有多个功能, 哪个功能起作用受其调用模块的控制。;; 如果在模块之间共享的数据很多,且通过参数的传递很不方便时,才使用公共耦合,因为公共耦合会引起以下问题:; (6) 内容耦合:是最高程度的耦合,也是最差的耦合。 当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部时,这种模块之间的耦合便为内容耦合。 这种情况往往出现在汇编程序设计中。;
文档评论(0)