码迷,mamicode.com
首页 > 其他好文 > 详细

软件设计

时间:2016-04-20 23:41:11      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

1.软件设计

好的软件设计就是把一个问题清楚地分解为模块,然后再整体地排列这些模块

高内聚:是一个模块功能强度的度量;

低耦合:涉及两个模块,是它们之间相互依靠或相互作用的程度的度量。

#功能独立性

定义:指的是一个内聚的模块执行单个任务或函数,若模块满足该特性,那它跟其他模块的互动是最小的。

用途:错误隔离;能增加被重用的次数;增加可理解性。

#扇入:直接调用一个给定模块的模块数量。高扇入表示代码的重用率高。

扇出:一个给定模块直接控制的模块数量。高扇出表示该模块缺乏内聚。

 

2.UML建模语言

   5类图(用例图,静态图,行为图,交互图,实现图),9种图。(可见:http://m.blog.csdn.net/article/details?id=8552956)

(1)用例图:站在用户的角度,而不是开发者角度。

    用例图中存在的关系 (可见:http://m.blog.csdn.net/article/details?id=8567448)

  • 1 角色与用例:关联关系(实直线或者带箭头的实线)
  • 2 用例之间:包含(《include》,带箭头的虚线),扩展(《extend》)[关于箭头的指向存在疑惑]。有包含用例才是完整的用例。
  • 3 角色之间:泛化(实线空三角箭头,指向父类,这点与c++中的理解有点不一样)

(2)类之间存在的4种关系(可见:http://m.blog.csdn.net/article/details?id=8568303)

#BD-基本设计 ,DD-详细设计,FD-结构设计

 

3.面向功能的软件设计与面向对象的软件设计

#面向功能的软件设计

结构化分析(SA):将问题描述中的那套高级功能自上而下地分解,并吧它们图形化地表示出来。

结构化设计(SD):在SA中识别出来的所有功能都会被映射到一个模块结构上。和面向对象。

基于上述特性可认为这种设计是面向功能的软件设计。其特点为:一个系统被认为能执行一系列函数;系统状态是集中的,数据可在不同的函数之间共享。

#面向对象的软件设计

特点:系统被认为是一个对象的集合,对象间通过传播信息来交流;系统状态在对象中是分散的,每个对象可以控制自己的状态。

 

回顾一些类的知识

#函数的重载

定义:在声明对象是,编译器会根据调用者传递的参数自动匹配函数。

条件:函数的参数类型不同,参数个数不同(只有返回值不同的两个函数不算)。

#函数的覆盖

条件:发生在基类和子类之间;基类必须为虚函数(用virtual进行声明);函数名称与参数列表完全相同。

#函数的多态性

1)静态绑定:同样的消息被不同的对象获取就会产生不同的行动。当一个操作拥有多个方法是就会发送静态绑定,即涉及函数重载。

2)动态绑定:涉及函数的覆盖,把处理消息确切的方式留给接收消息的对象。

软件设计

标签:

原文地址:http://www.cnblogs.com/QFighting/p/5410648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!