软件工程流程是软件开发系统中起主导作用的形式化流程,对于将输入转化为输出的彼此相关的资源活动起到指导和规范软件的作用,其中输入为用户要求、输出为软件产品,包括相关资源开发人员、软硬件工具和时间等,图1给出的框图模型描述了软件流程在软件开发、系统研发中所扮演的重要角色。
图1软件开发、系统研发的流程
一般来说,软件工程流程的具体内容包括:
软件工具和软件开发的方法的选用,所选工具和方法的使用顺序和要求交付的文档资料,为了使用变化所需要的管理和质量保证,以及软件开发各个阶段的里程碑。显然,采用什么样的生产流程决定了软件产品具有什么样的流程质量,因为软件工程流程的知识本身及其应用效果都将凝聚在软件产品中,成为其组成要素。锐智互动软件公司也给出了软件工程流程的一个参考模型,该模型关注的是软件工程流程的本质,它包括两方面的内容: -是利用工具,二是固化软件开发的最佳实践。模型 把最佳实践定义为“一组经过组织整理并形成文档的准则、方法和流程,能够提高软件开发的质量和与效率”,并且例举了一些最佳实践具体内容,
其中包括:
1、采用迭代开发(UscIterativeDevelopment) ;
2、管理需求(ManageRequirements) ;
3、使用基于组件的架构(UseComponentArchitectures) ;
4、可视化建模(ModeIVisually) ;
5、持续验证质量(ContinuouslyVerifyQuality) ;
6、控制变更(ControlChange);
软件工程流程模型如图2所示。
图2软件开发、系统研发的流程模型
在以上模型中,最佳实践指导工具的使用,工具用来支持最佳实践,两者之间相辅相成。注意软件工具一般是通用的,而不同的软件开发企业则有不同的最佳实践,后者取决于企业的成长历史及其员工所积累的经验。