软件工程的精髓

1. 理解问题(沟通和分析)。
回答几个简单问题:
谁将从问题的解决中获益?也就是说,谁是利益相关者?
有哪些是未知的?哪些数据、功能、特征和行为是解决问题必需的?
问题可以划分吗?是否可以描述为更小、更容易理解的问题?
问题可以图形化描述吗?可以建立分析模型吗?
2. 计划解决方案(建模和软件设计)。
在编码之前,稍稍慢下来做一点点设计:
以前曾经见过类似问题吗?在潜在的解决方案中,是否可以识别一些模式?是否已经有软件实现了所需要的数据、功能、特征和行为?
类似问题是否解决过?如果是,解决方案所包含元素是否可以复用?
可以定义子问题吗?如果可以,子问题是否已有解决方案?
能用一种可以很快实现的方式来描述解决方案吗?能构建出设计模型吗?
3. 实施计划(代码生成)。
前面所创建的设计勾画了所要构建的系统的路线图。也许存在没有想到的路径,也可能在实施过程中会发现更好的解决路径,但是这个计划可以保证在实施过程中不至于迷失方向。需要考虑的问题是:
解决方案和计划一致吗?源码是否可追溯到设计模型?
解决方案的每个组成部分是否可以证明正确?设计和代码是否经过评审?或者更好的算法是否经过正确性证明?
4. 检查结果的正确性(测试和质量保证)。
你不能保证你的解决方案是最完美的,但是你可以保证设计足够的测试来发现尽可能多的错误。为此,需回答:
能否测试解决方案的每个部分?是否实现了合理的测试策略?
解决方案是否产生了与所要求的数据、功能、特征和行为一致的结果?是否按照项目共同利益者的需求进行了确认?


知识共享许可协议
《软件工程的精髓》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
相邻依据:发表时间
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     169.81ms