1. 软件工程
软件危机的表现:
- 软件开发的进度难以控制
- 软件需求在开发初期不明确
- 软件文档资料不完整、不合格
- 软件的可维护性差
- 软件价格昂贵
软件生存周期的各个阶段主要任务
- 计划阶段:确定总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算
- 分析阶段:分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。
- 设计阶段:设计阶段的目标是决定软件怎么做。软件设计主要集中于软件体系结构、数据结构、用户界面和算法等方面。
- 实现阶段:编码
- 测试阶段
- 运行和维护阶段:设计和实现阶段要充分考虑软件的可维护性
软件工程三要素:工具(系统),方法(技能),开发过程(框架)
瀑布模型:自上而下,相互衔接的固定次序。上下两个阶段有因果关系。
RUP统一软件过程:用例驱动,架构为中心,迭代和增量(逐块建造,反复求精)
扩张ICONIX过程
Scrum敏捷过程
统一建模语言(UML)
2. ICONIX软件过程
1. 需求工程
需求工程要做什么:诊断(准确定位痛点),开方(提出合理解决方案)
需求工程:通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。
需求工程解决需求噩梦的手段:
- 需求开发(Requirement Development, RD):目的是通过调查与分析,获取用户需求并定义产品需求。
- 需求管理(Requirement Management, RM):目的是在客户与开发方之间建立对需求的共同理解,维护需求与其他工作成果的一致性,并控制需求的变更。
需求开发的工作:需求调查,需求分析,需求定义
需求分析:定义愿景,业务建模,用例分析
2. ICONIX 软件过程的需求阶段
ICONIX过程特点:
- 尽早进入编码阶段
- 合理的简化RUP,基于敏捷软件开发的思想
- 与RUP相比,是轻量级的过程。与敏捷相比,ICONIX提供充足的需求和设计文档,但不过度分析设计。
- ICONIX过程从把需求文档变成可运作的代码过程只需四步:用例图,序列图,类图,健壮性图
3. 愿景是核心和起点
获取愿景
- 找到软件项目的老大(让它掏钱)
- 得到老大对项目的期望
- 描述愿景的度量指标
3. 业务建模
业务建模要求我们把视角从软件系统转向客户组织ÿ