2.1 software lifecycle and configuration management
1. know the basic process of software development (Software Development Lifecycle: SDLC)
2. Traditional software development process model
3. The introduction of agile development
4. * collaborative software development (Collaborative software development)
5. Software Configuration Tool (Software Configuration Management: SCM)
6.git as configuration management tools
1.Software Development Lifecycle(SDLC)
1) scratch (from 0 to 1):
2) from there to good (from 1 to n)
Constantly updated from the original version, abandonment, software quality is getting better
3) Software has a life
Age: survival cycle of the software Vitality: the popularity of the software market
2. Traditional software process model
1) Classification
It is divided into two basic types: Linear linear process; the Iterative iterative process
Existing models are:
-Waterfall (linear, non-iterative) process Falls
-Incremental (non-iterative) incremental process
-V-Model(for verification and validation)V字模型
-Prototyping (iterative) process prototype
-Spiral (iterative process) Spiral Model
Select the appropriate process model based on:
1. how much the degree of user involvement - to adapt to change
2. The development efficiency / management complexity
3. The quality of the developed software
2)
A) process Falls Waterfall
B) during the incremental Incremental
Each design -> realization -> test, all carried out a little bit
C) V word model (V-Model)
- nonlinear
- interpretation of the relationship between the parts
- the horizontal and vertical directions, respectively, represent different levels of abstraction and completion
D) Prototyping prototyping process
E) Process Spiral Spiral
3. Agile Development
Agile development: continuous improvement through rapid iteration and small to quickly adapt to change. (+ Incremental iteration)
eXtreme Programming (XP, Extreme Programming)
Pair Programming Pair programming (a compile, a look)
1. slightly
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:版本关系演化图