Life cycle of software
若干个工作的时间序列
软件构造过程的一些模型
如何选择合适的过程模型?
用户的参与力度
开发效率
软件质量
Linear
线性过程
Iterative
迭代过程
两周基本模型
Waterfall
Requirements->Design->Implementation->Verification->Maintenance
因为不能适应变换,所以只有理论价值
Incremental
按功能进行设计
V-model
加入了测试,代码可靠性更高
正确的做事
为什么老师这么喜欢设问句?
螺旋模型
多轮迭代基本遵循瀑布模型
比较复杂
这是问题,这也是问题????
agile development
站着开会 不加班 开发员是人 朝九晚五 人性 用户要和开发员一起工作
极限编程???
Software Configuration Management (SCM)
软件配置管理: 追踪和控制软件的变化
包括版本控制和基线确定
基本单元SCI
Software Configuration Item
code data documents hardware …
版本控制 Versioning
备份历史版本
比较两个版本的差异
多个开发者共享和协作
记录每个开发者的动作,便于“审计”
Version Control System(VCS)
Local VCS
Centralized VCS
Distributed VCS
Git as an example of SCM tool
学习工具的最好方式是使用
git参考教程
Process, Systems, and Tools of Software Construction
广义上的软件构造过程
1.Programming
1.1编程语言
IDE 集成开发环境
源代码编辑器
智能代码补全
代码重构工具
文件管理
库管理
软件逻辑实体可视化
图形化用户界面构造器
编译器,解释器
自动化Build工具
版本控制系统
第三方工具
1.2建模语言
主流建模语言UML (Unified Modeling Language)
1.3配置语言 Configuration Language
配置文件配置程序的参数和初始设置
2.Review and static code analysis
pair works
利用一些工具进行静态评审
Dynamic code analysis
执行程序观察现象分析不足
代码覆盖度
Debugging and Testing
定位错误,发现错误根源
Refactoring
重构:在不改变功能的前提下优化代码