Chapter 1 软件工程基本概念
软件设计流程
瀑布式
原型法
迭代
增量式
开发策略
复用
分而治之
优化-折中
错误观念
争议
Chapter 2 程序员与项目经理
项目失败
项目经理不懂技术
技术负责人不愿编码
程序员临时雇用
程序员
诚实
简单实用
爱憎分明
工作乏味不单调
程序经理
分类
开发组长
项目经理
部门经理
……
特征
最牛技术
最多最难的工作
人格魅力
级别
技术
1级:编程基本功,质量合格
2级:N个项目,几年经验,指导新人工作
3级:系统分析与设计,技术广度与深度
4级:软件产品设计者,超牛的技术,将技术转化为商品
管理
1级技术做员工
2级技术做组长
3级技术做项目经理
4级技术做产品决策者
从错误反省,提高综合素质
Chapter 3 项目计划与质量管理
可行性分析
需求分析
系统设计
程序设计
测试
维护
提高软件质量
项目计划
知己知彼
进度安排
项目负责人制定
先难后易
里程碑
缓冲时间
合理交付期限
0缺陷质量管理
高目标
可执行规范
质量检查
要点列表
只评审工作,找出问题
培训检查人员
Chapter 4
可行性分析
经济
成本-收益分析
短期-长远利益分析
技术
社会环境
市场
政策
人
需求分析
特点
客户需求不明确
需求经常变更:确定稳定、易变
与客户谈
找咨询公司
分析已有项目
Chapter 5 系统设计
体系结构设计
层次结构
C/S结构
模块设计
信息隐藏
内聚与耦合
开闭原则
算法与数据结构设计
UI设计
Chapter 6 面向对象设计
继承与组合
多态
Chapter 7 测试与改错
测试的目的:发现尽可能多的缺陷-功能、性能、易用性、文档、容错性
测试只能证明缺陷存在,不能证明缺陷不存在
α测试
白盒测试:软件开发人员
黑盒测试:软件测试人员
β测试
产品测试:外部使用人员
Chapter 8 维护与再生
维护
种类
完善性 perfactive maintenance
纠错性 corrective maintenance
适应性 adoptive maintenance
因素
地域性适应
开发人员的稳定性
软件的生命周期
商业操作模式变化
再生工程
分类
重构 Restructue
逆向工程 Reverse Enginnering
前向工程 Forward Engineering
附录
林锐=大才