SEII-1
01-软件工程基础
Outline
软件工程基础
- 软件的概念
- 软件工程的概念
- 软件工程知识域
项目管理基础
- 项目和项目管理
- 团队组织与管理
- 软件质量保障
- 软件配置管理
软件的定义
软件独立于硬件
软件是一种工具
软件的核心是程序
软件 = 程序 + 文档 + 数据
软件开发远比编程复杂
应用软件基于现实又高于现实
软件的类型
System software
操作系统、数据库、数据仓库、嵌入式设备、安全
Programming software
IDE、测试、持续集成、建模、度量
Application software
商业、政府、休闲、医疗、教育、国防、个人、专业、科学
软件工程的定义
- 应用 系统的、规范的、可量化 的方法来开发、运行和维护软件,即将工程应用到软件
- 对 1) 中各种方法的研究
理解:
- 软件工程是一种工程活动
- 软件工程的动机是解决实际问题
- 软件工程是科学性、实践性和工艺性并重的
- 软件工程追求足够好,不是最好
- 软件工程真正的产品是基于虚拟计算机的软件方案
- 软件工程的最终目的是要促进整个社会的进步
软件开发活动和产物
阶段 | 核心目标 | 关键问题 | 产出物 |
---|---|---|---|
需求分析(Requirement) | 明确“What”(需求定义) | 用户需要什么? | SRS(需求文档) |
软件设计(Design) | 规划“How”(实现方案) | 如何设计系统? | SDD(设计文档) |
构建(Construction) | 生成可运行产品 | 如何编码实现? | 代码与可执行文件 |
测试(Testing) | 验证正确性与符合性 | 是否满足需求?是否实现正确? | 测试报告 |
交付(Deliver) | 部署与用户支持 | 如何让用户顺利使用? | 用户与系统文档 |
维护(Maintenance) | 持续优化与迭代 | 如何修复和改进? | 新版本软件 |
软件开发的角色分工
- 需求工程师,又被称为需求分析师:承担需求开发任务。软件产品的需求开发工作通常由多个需求工程师来完成,他们共同组成一个需求工程师小组,在首席需求工程师的领导下开展工作。通常一个团队只有一个需求工程师小组。
- 软件体系结构师:承担软件体系结构设计任务。通常也是由多人组成一个小组,并在首席软件体系结构师的领导下开展工作。通常一个团队只有一个软件体系结构师小组。
- 软件设计师:承担详细设计任务。在软件体系结构设计完成之后,可以将其部件分配给不同的开发小组。开发小组中负责所分配部件详细设计工作的人员就是软件设计师。一个团队可能有一个或多个开发小组。一个小组可能有一个或多个软件设计师。
- 程序员:承担软件构造任务。程序员与软件设计师通常是同一批人,也是根据其所分配到的任务开展工作。
- 人机交互设计师:承担人机交互设计任务。人机交互设计师与软件设计师可以是同一批人,也可以是不同人员。在有多个小组的软件工程团队中,可以有一个单独的人机交互设计师小组,也可以将人机交互设计师分配到各个小组。
- **软件测试人员:**承担软件测试任务。软件测试人员通常需要独立于其他的开发人员角色。一个团队可能有一个或多个测试小组。一个小组可能有一个或多个软件测试人员。
- 项目管理人员:负责计划、组织、领导、协调和控制软件开发的各项工作。相比于传统意义上的管理者,他们不完全是监控者和控制者,更多得是协调者。通常一个团队只有一个项目管理人员。
- 软件配置管理人员:管理软件开发中产生的各种制品,具体工作是对重要制品进行标识、变更控制、状态报告等。通常一个团队只有一个软件配置管理人员。
- 质量保障人员:在生产过程中监督和控制软件产品质量的人员。通常一个团队有一个质量保障小组,由一个或多个人员组成。
- 培训和支持人员:负责软件移交与维护任务。他们可以是其他开发人员的一部分,也可以是独立的人员。
- 文档编写人员:专门负责写作软件开发各种文档的人员。他们的存在是为了充分利用部分宝贵的人力资源(例如需求工程师和软件体系结构师),让这些人力资源从繁杂的文档化工作中解放出来。
项目的定义
项目是具有下列特征的一系列活动和任务[Kerzner2009]:
- 具有一个明确的目标;
- 有限定的开始和结束日期;
- 有成本限制;
- 消耗人力和非人力资源;
- 多工种合作。
项目管理的目标:
- 在限定时间内;
- 在一定的成本内;
- 在要求的质量水平上;
- 高效使用资源;
- 获得客户认可。
过程组与活动
过程组:
项目启动、项目计划、项目执行、项目跟踪与控制和项目收尾
活动:
计划制定、团队管理、成本控制、质量保障、度量、过程管理、进度跟踪与控制、风险管理、配置管理
软件配置管理
配置管理:
用技术的和管理的指导和监督方法,来标识和说明配置项的功能和物理特征,控制对这些特征的变更,记录和报告变更处理及其实现状态,并验证与规格需求的一致性
配置项:
置于软件配置管理之下的软件配置的各种有关项目,包括各类管理文档、评审记录与文档、软件文档、源码及其可执行码、运行所需的系统软件和支持软件以及有关数据等
基线:
已经经过正式评审的规格说明或产品,可以作为进一步开发的基础,并且只有通过正式的变更控制过程才能变更。
分支管理
主分支(Master)
开发分支(Develop)
临时性分支
- 功能(Feature)
- 预发布(Release)
- 修补bug(Fixbug)
SEII-1
https://www.jcjovo.top/2025/03/19/SEII-1/