1.知道软件开发的基本过程(Software Development Lifecycle:SDLC)
2.传统的软件开发过程模型
3.敏捷开发的介绍
4.*合作式的软件发展(Collaborative software development)
5.软件配置工具(Software Configuration Management:SCM)
6.git作为配置管理工具
1.Software Development Lifecycle(SDLC)
1)从无到有( from 0 to 1):
2)从有到好(from 1 to n)
从初始版本不断更新,遗弃,软件质量越来越好
3)软件拥有生命
Age:软件的存活周期 Vitality:软件市场受欢迎度
2.传统的软件加工模型
1)分类
分为两个基本类型:Linear线性过程;Iterative 迭代过程
现有的模型有:
-Waterfall(线性,非迭代)瀑布过程
-Incremental(非迭代)增量过程
-V-Model(for verification and validation)V字模型
-Prototyping(迭代) 原型过程
-Spiral(迭代过程)螺旋模型
选择合适的过程模型的依据:
1.用户参与程度有多大--适应变化
2.开发效率/管理复杂度
3.开发出的软件的质量
2)
A)瀑布过程Waterfall
B)增量过程Incremental
每次 设计->实现->测试,都一点点进行
C)V字模型(V-Model)
-非线性
-诠释了各部分间的关系
-水平和竖直方向分别代表着不同的完成度和抽象程度
D)Prototyping原型过程
E)螺旋过程Spiral
3.敏捷开发
敏捷开发:通过快速迭代和小规模的持续改进,以快速适应变化。(增量+迭代)
eXtreme Programming (XP ,极限编程)
Pair Programming成对编程(一个编,一个看)
1. 略
5.Software Configuration Mgmt. (SCM)
-软件配置管理:追踪和控制软件的变化(包含版本控制和基线的建立 )
-软件配置项(Configuration Item:CI/SCI):软件中发生变化的基本单元(例如:文件)
-基线(BaseLines):软件持续变化过程中的“稳定时刻”(例如:对外发布的版本)
-CMDB:配置管理数据库--存储软件的各配置项随时间发生变化的信息+基线
CMDB实际上就是仓库Repository
Working copy-工作拷贝,开发者在本地机器上的一份项目拷贝
-Version版本控制:为某一时刻的软件作身份标识
1)本地版本控制系统(Local VCS):
仓库存储于开发者本地机器,无法共享和协作
2)集中式版本控制系统(Centralized VCS)
仓库存储于独立的服务器,支持多开发者之间的协作
3)分布式版本控制系统(Distributed VCS)
仓库存储于独立的服务器 + 每个开发者的本地机器
Git:
.git :本地的CMDB
工作目录:本地文件系统
暂存区:隔离工作目录和Git仓库
每个git中的文件都有三种状态:
--已修改---在本地修改好文件但是还没上传到 staging area
--已暂存--Staged--文件修改后上传到staging area
--已提交 staging area中的文件传到git repository了
Object Graph:版本关系演化图