1 软件过程的概念
将输入转化为输出的一组彼此相关的资源和活动
软件工程三要素
过程: 将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的
方法: 为软件开发提供“如何做”的技术
工具: 为软件工程方法提供自动的或半自动的软件支撑环境
软件过程的特点
-易理解性
-可见性
-可支持性
-可接受性
-可靠性
-健壮性
-可维护性
-高效率性
2 问题定义活动
定义要解决的问题并确定系统范围
3 可行性研究活动
以相对短的时间和相对低的成本来确定给定的问题在其约束条件内是否有解,有几种解以及哪个是最优解
4 需求分析活动
SRS: 软件规格说明书
需求文档(用户需求文档,系统需求文档,软件规约文档)
-业务流程图
-数据流程图
-用例图
功能性需求: 系统应具备的功能或服务(输入、输出和计算等)
非功能性需求:
描述系统必须遵守的约束条件
性能需求:系统做的怎么样
(响应时间、吞吐率、容量、可靠性、易用性、安全性、可移植性、可扩展性、可复用性、可扩充性)
设计约束:影响系统怎样被构建,包含资源需求、技术要求等
商业约束:时间和费用
其他需求:文化和政策需求、法律需求、道德要求、隐私要求
软件生命周期中,一个错误发现的越晚,其修复费用越高
在需求阶段,代表性的错误为疏忽,不一致和二义性
5 设计活动
总体设计(粒度较大)(概要设计、构架设计)
详细设计(进一步确定如何实现目标系统)
把需求转化为软件系统的重要环节
软件架构是软件系统的核心
应对复杂多变的情况,同时保持完整性
应对系统在扩展功能当中出现的问题
大规模复用的有效基础
项目管理的基础
6 实施活动
编码,单元测试,集成
7 测试活动
选择适当的测试用例执行被测程序的过程(缺陷、错误、失败)
单元测试、集成测试、系统测试、alpha测试、beta测试、验收测试
8 部署活动
确保最终用户可以正常使用软件产品而进行的活动
分类:(产品类型)自定义安装模式、现场支持模式、Internet模式
部署单元: 一个工作版本、文档和安装工件组成
部署计划: 说明如何将产品从开发商转移到用户群(兼容、转换和迁移策略,部署时间表,部署顺序,用户培训)
软件开发各阶段成本比例