Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1699735
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类:

2007-03-23 14:10:10

软件开发流程之我见

基本原则:
1. 自顶向下分解
   把任务逐步分拆,使得底层逻辑逐渐清晰;但要适度,如果贯彻得过深,则开发变得难以维护和扩展。
   本质上就是过程式开发的精髓。
   过程 = 事件(状态) + 事件所触发的动作序列.
   过程把事件,状态和动作捆绑在了一起,而且忽略了事件的传递时延。所以过程分析的流程图中,箭头不标示文字, 事件被封装进了过程中.
   过程只适合描述大颗粒度的功能.

2. 状态机(= 对象)
   自顶向下分解到何种地步呢?当颗粒度适当的状态机原型浮现出来即可。
   状态机实际上就是对象。它管理着若干状态,接受外界事件的驱动。


流程图
   对于中高层功能模块,画图是一个描述和理解的好方法。
   对于底层代码,就非必要,至多用流控制流程图。
   传统流程图来源于低级编程方式,比较适合描述控制流,但不适合描述高级复杂模块的设计。

   设计顶层至中层模块,以数据流图为主;
   采用状态机设计层内横向功能时,以对象交互图+对象内部状态图为主;

编写代码要遵循契约原则
    契约检查是对外界输入的容错检查。契约检查在接口函数中进行;在内部方法中不必要再重复(如果内部方法中再出现违反契约的情形,那是该模块编写者的责任,与外界无关)。
    错误诊断,多用assert断言。首先应用于接口函数中;当且仅当排除外界输入错误后再进行内部错误检查。

    类成员的书写顺序遵循:
    1.成员变量(成员变量一般均为private,由于默认为private,所以成员变量前不必要声明private)。
    2.成员方法按级别private, protected, public依次往下延伸。public方法一般为类和外界的接口。

    方法的功能说明放在方法实现的地方,而不要放在方法的声明处。目的是便于和实现比对,容易理解,容易修改。

阅读(900) | 评论(0) | 转发(0) |
0

上一篇:C/C++中的日期和时间

下一篇:hash_map的使用

给主人留下些什么吧!~~