【软件构造】 软件构建的过程和工具1

一.软件的生命周期和配置管理

  1. 软件的生命周期

(1)从0至1

·计划:确定领域

·分析:转换用户需求

·设计:架构、语言的使用

·实行:编写软件

·测试:检验功能

·维护:延长至计划寿命

(2)从1至0

·软件的更新与老化

·不同软件之间相互取代演化
在这里插入图片描述

(3)经典软件模型

·两个基础类型:线性、迭代

·瀑布模型:线性类型

  • 按步骤依次实现

  • 需求稳定,修改困难
    在这里插入图片描述

·增量模型:线性类型

  • 分治思想,选择最核心的需求

  • 每个增量各自开发时使用瀑布模型
    在这里插入图片描述

·V模型:线性类型

  • 避免错误

  • 强化测试:对代码、文件等进行分析
    在这里插入图片描述

·原型法:迭代类型

  • 预发布简化版确定用户需求

  • 为新开发的技术做市场实验
    在这里插入图片描述

·螺旋模型:迭代类型

  • 每做完一个层面进行评估
    在这里插入图片描述

(4)敏捷开发

·开发宣言

  • 人以及人的互动胜于过程和工具(实时评审)。

  • 可运行的软件胜于面面俱到的文档。

  • 客户合作胜于合同谈判。

  • 响应变化胜于遵循计划。

·快速迭代:从需求驱动变为成果驱动

  • 用户参与

  • 短期开发

  • 大量测试

·极限编程

  • 情景对话表达需求

  • 原型法设计

  • 结对编程,自动构建

  • 持续集成,持续发布

  • 测试驱动的开发

·任务墙和过程管理:类似流水线

(5)协同软件开发

·开源软件构建模型:没有协同管理控制

·模式细节
在这里插入图片描述

  1. 软件配置管理

(1)基本概念

·版本控制:配置管理的主要工具

·基线:软件配置项各个版本组成的标准线,是版本变化的基础
在这里插入图片描述

·检入、检出:检入解封,检出锁死
在这里插入图片描述

(2)版本控制系统的优点

·个人

- 易获得历史版本

- 可比较不同版本的差异

- 将完整的版本推送到其他位置

- 将历史记录从其他位置找回

- 合并早期版本的衍生版本

·团队

- 便于开发团队沟通交流

- 具有日志功能,记录不同开发人员的作品以便审核

(3)分支和进化图

·部分人员并行开发

·在新功能完成之前不将其加入软件
在这里插入图片描述

(4)三种管理模式

·本地管理
在这里插入图片描述

·集中式管理:客户通过云端交互
在这里插入图片描述

·分布式管理:用户可以直接交互或通过云端交互
在这里插入图片描述

(5)一些术语

·存储库:我们项目中的版本的本地或远程存储

·工作副本:我们可以处理的项目的本地可编辑副本

·版本或修订:记录我们项目在某个时间点的内容

·更改或差异:两个版本之间的差异

(6)特点

·可靠:可以保持版本不变,允许备份

·支持多个文件:跟踪项目的版本,而不是单个文件

·可还原:恢复全部或部分旧版本

·可审查历史:查看整个项目或个别文件

·允许合作:版本合并、并行工作、跟踪责任、作品共享

  1. 实例:Git

(1)Git存储库

·.git目录:存储所有版本控制数据

·缓存区:在内存中

·工作目录:本地文件系统

(2)文件的三种状态

·修改:工作目录中的文件与git存储库中的文件不同,但不在临时区域中

·分阶段:文件已修改并已添加到暂存区

·提交:该文件在工作目录和git目录中保持相同

(3)Git中的对象图:Git所有操作的基础,存储在存储库的.git目录中

·从另一台机器/服务器复制git项目意味着复制整个对象图。

·对象图中的代码

- 不重复保存各版本中没有发生变化的文件

- 每个文件的每个版本只保存一次,多个提交可共享副本

(4)分支:commit -> branch -> merge
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值