摘自http://www.itisedu.com/phrase/200602281725525.html
软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为
系统分析员,软件设计师,系统架构师,程序员,测试员等等。
人们也常常用程序员来泛指各种软件工程师。
软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。
框架:四项基本原则是基石
第一,选取适宜开发范型
第二,采用合适的设计方法
第三,提供高质量的工程支持
第四,重视开发过程的管理
Boehm提出的软件工程的七条原理:
1 用分阶段的生命周期计划严格管理
在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。
2 坚持进行阶段评审
3 实行严格的产品控制
开发人员最痛恨的事情之一就是改动需求。(good)
需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。
4 采纳现代程序设计技术
5 结果应能清楚地审查
6 开发小组的人员应少而精
这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多; 当开发小组为N人时,可能的通讯信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大。
7 承认不断改进软件工程实践的必要性
面向方面的编程(Aspect Oriented Programming,简称AOP)被认为是近年来软件工程的另外一个重要发展。这里的方面指的是完成一个功能的对象和函数的集合。在这一方面相关的内容有泛型编程(Generic Programming)和模板。
软件体系结构和工具的选择
当然最好是基于UML的CASE工具。当前比较流行的就是Rose,它是一个很好的分析和建立对象和对象关系的工具。在具体编码的时候,我们需要版本控制工具,MS的SourceSafe就是一个很好的版本管理工具和项目管理工具。具体的开发工具当然很多,但是如果你是一个对VC侵淫了多年的程序员,你一定会选择它,因为它会让你感到什么是真正的面向对象的编程,而你在用VB,PowerBuilder,Delphi时很少会有同样的感受。至于数据库模式构建,我一向是采用Sybase的S-Design,更好的工具就不知道了。
另外需要注意的是,我们需要建立文档编写的若干模板,以便开发人员按照这个模板编写规范的技术和说明文档。帮助文档可以用微软的HTML Help Workshop(hhw.exe)制作,你也可以编译成.chm格式,它打包了文本和图形,只有一个文件,使用和分发比较方便。最后,如果开发人员不是集中在一个地方的话,最好建立一个邮件列表,开发人员可以通过邮件系统讨论开发中的各项事宜
五、软件开发方法综述
---