1.要构建21世纪挑战的软件产品
需要团队合作,需要设计,需要高质量,需要可维护性
2.定义:
软件工程是:(1)将系统化的、规范的、可量化的方法应用与软件的开发、运行和维护,即将工程化方法应用与软件;(2)对(1)中所述方法的研究。
3.软件工程框架:
有以下5个活动
- 沟通:收集需求来定义软件特性和功能
- 策划:定义和描述软件工程的工作,包括要执行的技术任务、可能的风险、资源需求、工作产品和工作进度计划。
- 建模:通过建立模型来更好的理解软件的需求。
- 构建:对所做的设计进行构建,包括编码和测试。
- 部署:交付给客户,并进行评测
软件进行不断的迭代来逼近所需要的结果,每次的迭代就会产生软件增量,每个增量实现部分软件的特性和功能,软件将逐渐完善。
4.普适性活动
这些普适性活动贯穿项目始终,帮助软件团队管理和控制项目进度、质量、变更和风险。
- 软件项目跟踪和控制:项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行
- 风险管理:对可能影响项目成果或者产品质量的风险进行评估
- 软件质量保证:确定和执行保证软件质量的活动。
- 技术评审:评估软件工程产品,尽量在错误传播到下一个活动之前发现并清除错误。
- 测量:满足利益相关者的要求。
- 软件配置管理:在整个软件过程中管理变更所带来的影响
- 可复用管理:定义工作产品复用的标准,并且机那里构建复用机制。
- 工作产品的准备和生产:必要的文件
5.实践的精髓
- 理解问题(沟通和分析):
提出几个问题:
(1)谁将从问题的解决中收益?谁是利益相关者
(2)有哪些是未知的?哪些数据、功能和特性是解决问题所必须的
(3)问题可以划分吗?是否可以描述为跟小、或更容易理解的问题
(4)问题可以图形化描述吗?可以建立分析模型吗?
6.通用原则
- 存在价值:确认系统是否能够增加价值
- 保持简洁:
- 保持愿景:对软件赋予一种美好的愿望,没有BUG就是,但是不可能没有BUG,但是可以减少BUG。
- 关注使用者
- 面向未来
- 提前计划复用
- 认真思考
7.事实说明:
- 在软件工程中,为赶进度而增加人手只能使进度更加延误。
- 60%-80%的工作耗费在软件首次交付顾客使用之后
- 软件的配置说明文档也是软件的重要组成部分。提供了必要性指导