1、IEEE Std 12207-2008(第二版)冯海鹏 整理尽管从 ISO/IEC 12207:1995 年版本,ISO 组织即强调软件开发者首先要具备系统性整体思想,但是对于软件开发者而言,始终难以把握个中真味。ISO/IEC 15288 于 2002 年问世之后,产品开发从企业层级开始的系统思考要求更为殷切。日本、加拿大等各国家的标准机构,亦向 ISO 提出,要将两份文件给予有效的调和与统一,以谋求两项标准的运用,更为有效。国际标准组织于 2008 年 2 月 1 日发行 ISO/IEC 12207:2008(Second edition)。英文全称为:System and Softwar
2、e engineering - Software life cycle processes。作为 ISO/IEC 12207 的第二版本,ISO/IEC 12207:2008(Second edition)与先前版本的主要差异在于文件架构的改变。为了与 ISO/IEC 15288:2002 版本保持一致,促进在软件开发过程中,导入系统思维与系统工程操作,改版中沿用了 ISO/IEC 15288 系统工程-系统生命周期过程(System engineering - System Life Cycle Process)标准之文件的架构。 本次改版,亦将 2002 年与 2004 年的修正案(亦即所
3、谓 Amd.1 及 Amd.2)纳入新版的内容。为实现对 ISO/IEC 15504 软件过程评估的支持,成为评估时的过程参考模型 (PRM),还增加了过程的目的(purpose)及过程成果 (outcomes)(在 12207 之 2002 年第一修正案中,即已提供) ,也是ISO/IEC 15288 的过程与文件结构的组件。尽管完成形式上的重新安排,内容仍然以过程为主。在新版的 12207 中,将软件的生命周期过程分为系统全景过程群组与软件特定过程两大类、共七个群组,43 项过程( 备注:在 1995 年的版本中共有 3 个过程群组:主要、支持、组织, 17 项生命周期过程;2002 年的
4、修正案中增加至 22 个生命周期过程 ),看起多了将近一半的过程。具体如下:一、系统全景过程类 (6. System-Context Processes)(一) 协议过程群 (6.1 Agreement Processes):1. 获取过程 (6.1.1 Acquisition Process) 源于 12207:1995 之 5.1 Acquisition;2. 供应过程 (6.1.2 Supply Process)源于 12207:1995 之 5.2 Supply;(二)组织性项目致能过程群(6.2 Organizational Project-enabling Processes)1.
5、 生命周期模型管理过程 (6.2.1 Life cycle model management Process) 源于12207:1995 之 7.3 Improvement;2. 基础建设管理过程 (6.2.2 Infrastructure management process) 源于 12207:1995 之 7.2 Infrastructure;3. 项目组合管理过程 (6.2.3 Project Profolio Management process) 源于 15288 之5.3.3;4. 人力资源管理过程 (6.2.4 human resource management process
6、) 源于 12207 之 2002年第一修正案 7.4 Human Resource management;5. 质量管理过程 (6.2.5 Quality Management process) 源于 15288 之 5.3.6 ;(三) 项目过程群(6.3 Project Processes)1. 项目规划过程 (6.3.1 Project Planning Process) 源于 12207:1995 之 7.1 Management;2. 项目评估与控制过程 (6.3.2 Project assessment and control process) 源于 12207:1995之 7.
7、1 Management;3. 决策管理过程 (6.3.3 Decision Management process) 源于 15288 之 5.4.5;4. 风险管理过程 (6.3.4 Risk Management process) 源于 16085;5. 组态管理过程 (6.3.5 Configuration Management Process) 源于 15288 之 5.4.7;6. 信息管理过程 (6.3.6 Information Management Process) 源于 15288 之 5.4.8;7. 测量过程 (6.3.7 Measurement Process) 源于
8、15939;(四) 技术过程群 (6.4 Technical Processes);1. 利害关系者需求定义过程 (6.4.1 Stakeholder Requirement definition process) 源于 15288 之 5.5.2;2. 系统需求分析过程 (6.4.2 system requirement analysis process)源于 12207:1995 之 5.3 Development;3. 系统架构设计过程 (6.4.3 System Architectural Design Process)源于 12207:1995 之 5.3 Development;4
9、. 实施过程 (6.4.4 Implementation Process);5. 系统整合过程 (6.4.5 System Integration Process) 源于 12207:1995 之 5.3 Development;6. 系统资格测试过程 (6.4.6 System Qualification Testing Process) 源于 12207:1995 之5.3 Development;7. 软件安装过程 (6.4.7 Software Installation Process) 源于 12207:1995 之 5.3 Development;8. 软件验收支持过程 (6.4.
10、8 Software Acceptance Support process) 源于 12207:1995 之5.3 Development;9. 软件运作过程 (6.4.9 Software Operation process) 源于 12207:1995 之 5.4 Operation;10. 软件维护过程 (6.4.10 Software Maintenance Process) 源于 12207:1995 之 5.5 Maintenance;11. 软件废弃过程 (6.4.11 Software Disposal Process) 源于 12207:1995 之 5.5 Maintena
11、nce;二、软件特定过程类 (7. Software Specific Processes)(一)软件实施过程群 (7.1 Software Implementation Processes)1. 软件实施过程 (7.1.1 Software Implementation Process) 源于 12207:1995 之 5.3 Development;2. 软件需求分析过程 (7.1.2 Software Requirement Analysis Process) 源于 12207:1995 之 5.3 Development;3. 软件架构设计过程 (7.1.3 Software Arch
12、itectural Design Process) 源于 12207:1995 之5.3 Development;4. 软件细部设计过程 (7.1.4 Software Detail Design Process) 源于 12207:1995 之 5.3 Development;5. 软件建构过程 (7.1.5 Software Construction Process) 源于 12207:1995 之 5.3 Development;6. 软件整合过程 (7.1.6 Software Integration Process) 源于 12207:1995 之 5.3 Development;7
13、. 软件资格测试过程 (7.1.7 Software Qualification Testing Process) 源于 12207:1995 之5.3 Development;(二) 软件支持过程群 (7.2 Software Support Processes)1. 软件文件管理过程 (7.2.1 Software Documentation Management Process) 源于12207:1995 之 6.1 Documentation;2. 软件组态管理过程 (7.2.2 Software Configuration Management Process) 源于12207:19
14、95 之 6.2 Configuration Management;3. 软件质量保证过程 (7.2.3 Software Quality Assurance Process) 源于 12207:1995 之6.3 Quality Assurance;4. 软件查证过程 (7.2.4 Software Verification Process) 源于 12207:1995 之 6.4 Verification;5. 软件确认过程 (7.2.5 Software Validation Process) 源于 12207:1995 之 6.5 Validation;6. 软件审查过程 (7.2.6
15、 Software Review Process) 源于 12207:1995 之 6.6 Joint Review;7. 软件稽核过程 (7.2.7 Software Audit Process) 源于 12207:1995 之 6.7 Audit;8. 软件问题解决过程 (7.2.8 Software Problem Resolution Process) 源于 12207:1995 之6.8 Problem Resolution;(三) 软件再用过程群 (7.3 Software Reuse Processes)1. 领域工程过程 (7.3.1 Domain Engineering Pr
16、ocess) 源于 12207 之 2002 年第一修正案,G6 Domain Engineering;2. 再用资产管理过程 (7.3.2 Reused Asset Management Process) 源于 12207 之 2002 年第一修正案,G4 Asset Management;3. 再用计划管理过程 (7.3.3 Reuse Program Management Process) 源于 12207 之 2002年第一修正案,G5 euse Program Management。第二版的 12207 把先前的两个修正案的内容整合起来并,实现了与 ISO/IEC 15288 的对准
17、(alignment)。所以,12207 的过程大体上是这些修正案及 15288 过程的重新划分、组合、更名,并将一些原来在 ISO/IEC 12207:1995 版本中的 activity 层级 practice,被提升为 lower-level process。这是基于 15504 的评估需要,必须为这一类的活动亦界定 purpose 及 outcomes 而作。这种情况尤其在于软件实施(前版中为 5.3 Development process)部分情况最多。另外,在这个新的版本当中,也为 12207 的生命周期过程带入新的视角。一个过程一定要有目的与成果,及达成这些目的与成果的活动与工作
18、。但基本上,过程所提供的信息仍然为“What to do“(要做的事为何) 。因此,我们可以将过程与程序做更为明确的区分,要做的事情要如何做(How to do)。至于程序(procedure)应有的结构与内容,可在 ISO/IEC 15289 中找到。要将过程(process)与程序(procedure)区分清楚的主要原因在于,本标准中各个描述活动的section 都列出了一句话: 应依照可应用、关于 XXXX 过程的组织政策(policies) 与程序(procedure)实施下列活动与工作。 其中 可以是项目或组织 ,而 XXXX 则是过程的名称。因为在整个架构中,为了能够使组织内的软件生命周期过程有效运作,对于相关的过程,都应该要建立如何实施该过程的程序。在第二版的 12207 当中,尽管只是既有模块和内容的解构和重组,没有产生新的软件生命周期的组件。但是,它能促进软件业,重新检视现行的软件过程与程序。例如,该标准的附录中亦提供了可用以实施 12207 软件生命周期过程的 IEEE 标准,为软件业的过程改善提供一个明确的方向。