software construction复习知识点随笔(1)

开发模型:

软件开发生命循环:1.计划 2.分析 3.设计 4.实现 5.测试和集成 6.维护

瀑布模型:原始模型,整体开发流程如同瀑布,从上到下分为几个阶段:概念(conception), 初始化(initiation), 分析(analysis), 设计(design), 构造(construction),测试 (testing), 实现(implementation) 维护(maintenance),利于使用,但若需求有变化,应对变化的代价高,可能要重来好几遍。

原型模型:先制造一个满足基本需求的工程原型,通常可忽略细节。从顾客处获得使用的反馈,在对原型进行修改。在项目早期可以获得用户的反馈。用户判断软件是否符合规格说明。对软件进行估算。

增量模型:将整个产品分成不同的增量,逐一完成。等同以增量的方式实施瀑布模型。将整个软件工程划分为很多小的开发项目。每部分综合起来是完整的系统。通常首先实现优先级最高的需求,一旦开始开发某增量,则该增量的对应需求被冻结。

螺旋模型:一种风险驱动的过程模型。在每个阶段增加风险分析模型,利用原型开发等方法降低风险。

V模型:是瀑布模型的扩展,强化测试阶段。使用V型开发阶段代替瀑布模式的线性开发。包含了单元测试和整体系统测试;清楚的标识了开发和测试的各个阶段;自上而下逐步求精,每个阶段分工明确,便于整体的把控。但是和瀑布模型一样,测试工作在编码之后,就导致错误不能及时的进行修改。

迅捷开发: 提倡适应性规划、演化开发、 尽早交付和持续改进,并鼓励对变化作出快速和灵活的响应。强调以用户为中心进行软件开发,需要持续集成,持续交付。

软件管理:

软件配置管理(Software Configuration Management):追踪和控制软件的变化
包括:

  1. revision(修改)control
  2. establishment of baseline(软件持续变化过程中的稳定时刻,对外发布的版本)
  3. CMBD:配置管理数据库,储存软件各配置项随时间发生变化的信息+基线。

版本控制系统(VCS):版本(version)指软件的任一特定时刻的形态指派一个唯一的编号,作为”身份标识“。

为什么需要版本控制?

对于个人开发者:

  1. 为了可能的版本回滚
  2. 比较两个版本的差异
  3. 备份软件版本历史
  4. 获取备份
  5. 合并软件版本(beta合并为standard)

对于研发团队:

  1. 在多个开发者间共享和协作
  2. 记录每个开发者的动作。便于“审计”
VCS的演化:
  • 复制文件修改文件名
  • 本地VCS:仓库存于本地,不共享
  • centralized VCS:仓库存储与服务器,支持多开发者协作。
  • Distributed VCS:仓库存储于独立的服务器+每个开发者的本地机器,如github。

Git 结构:workspace, staging, local repository, remote repository.

Git repository的三部分:

  1. .git文件夹——>本地CMDB
  2. 工作目录:本地文件系统
  3. 暂存区

每个文件处于三种状态之一:①已修改;②已暂存;③已提交

Git object graph:对git的所有操作都是对一个包含该版本所有文件的图结构的操作

Git命令对文件的影响:

  1. git commit: 文件从staging area(内存中)->object graph
  2. git branch/merge: 分支指在版本控制下,一个项目在多个平行分支中同时进行测试开发。merge是合并两个分支,但不会覆盖掉(cover)原来的分支。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值