软件质量与管理概述
软件质量与管理是核心课中唯一一门系统性地讲解软件开发管理的课程。主要梳理了软件开发中的项目管理、生命周期、软件过程及管理、敏捷开发、
本课程目标主要包括:理解项目管理的基本概念、掌握产品质量和过程质量的基本概念、掌握软件过程的基本概念;面对复杂项目时,能够选择适用的软件过程,并对其进行合理地组合和剪裁。
软件过程管理和软件项目管理
软件过程管理关注的是组织级或团队级的标准化流程和方法的定义、改进与优化,目的是提升软件开发过程的效率、质量和一致性。软件项目管理关注的是单个项目的规划、执行和交付,确保在特定时间、预算和资源约束下完成目标。
维度 | 软件过程管理 | 软件项目管理 |
---|---|---|
范围 | 组织级或长期性的流程改进 | 单个项目的生命周期(临时性) |
时间视角 | 长期、持续优化 | 短期、围绕具体项目周期 |
核心目标 | 提高过程成熟度、质量和可预测性 | 按时交付符合需求的产品 |
典型活动 | 定义流程、培训、过程评估、持续改进 | 需求分析、计划制定、风险管理、团队协调 |
工具/模型 | CMMI、ISO 9001、敏捷框架、DevOps流水线 | 甘特图、JIRA、MS Project、Scrum板 |
当下,软件已经进入了生活的方方面面。软件系统的规模和复杂度在不断增加,其在整个系统中的占比也在不断提高。然而,软件开发的本质难题(复杂性、不可见性、可变性和一致性)仍然未被解决。在这一背景下,软件质量和管理的重要性也日益凸显。
软件工程是一门研究用工程化方法构建和维护有效的、实用的、高质量的软件的学科。一般来说,软件工程分为管理视角和技术视角。管理视角关注的是软件项目的规划、组织、协调和控制中成功的经验和方法,技术视角关注的是软件开发过程中的技术问题。技术问题一般都是可复制的,但管理问题往往是非常复杂的,需要结合实际情况综合考虑,即回答:哪些成功经验是可“复制”的?这里就要介绍软件项目管理以及软件过程相关的知识。
软件项目管理是应用方法、工具、技术以及人员能力来完成软件项目,实现项目目标的过程。管理的三大关键要素为:目标、状态和纠偏。对应的软件项目管理典型的三大目标是:成本、质量和工期。经典的软件项目管理方法包括
广义软件过程
软件产品和服务的质量,很大程度上取决于生产和维护该软件或服务的过程的质量。因此,软件过程至关重要。广义的软件过程包括技术、人员和狭义过程。在广义软件过程,软件开发方法和软件开发过程可以看作同义词,因为实际开发中,方法和过程是相互依存的。典型的方法/过程包括:敏捷、轻量型、
与软件项目管理不同,软件过程管理则主要是对流水线进行设计、建设、维护、优化以及升级改善。软件过程管理的经典方法包括