软件构造之软件的生命周期

软件开发的基本过程

 计划 --- 分析 --- 设计 --- 实现 --- 测试和部署 --- 运维 (循环往复)


传统软件开发过程模型

两个主要的类型:

线性过程和迭代过程

已有模型:

瀑布过程:

线性非迭代过程。该过程是软件开发的基本过程的线性推进,各阶段划分清楚,整体推进,管理简单但无法适应需求的变化。

增量过程:
非迭代过程。产品的设计、实现和测试都是渐进的(每次增加一点),直到产品完成为止。
该模型逐步利用瀑布模型
系统被分解成许多小型开发项目
部分系统是为了生成最终系统而构建的
首先解决优先级别最高的要求
一旦增量部分被开发,部分的需求就被冻结了
V字模型:

V模型代表了一个发展的过程,可以看成是瀑布模型的一个扩展。在编码阶段之后,工艺步骤向上弯曲,形成典型的V而不是以直线方式向下移动。

 

原型过程:
软件原型过程是软件原型创建活动,即开发软件程序的完整版本。原型通常模拟几个方面,并且可能与最终产品完全不同。
程:
确定基本需求:包括所需的输入和输出信息,通常可以忽略细节
开发初始原型:最初开发的原型只包含用户界面
审查:客户,包括最终用户检查原型,并提供补充或更改的反馈
修订和加强原型:使用反馈改进规格和原型
如果发生了改变了,重复步骤3和步骤4
好处:
软件设计者和实施者在项目早期可以从用户那得到有价值的反馈。
客户端可以比较软件是否与软件规范相匹配,并根据软件规范构建软件程序。
它还允许软件工程师对初始项目估计的准确性有深入的了解,以及是否能够成功地在项目的最后期限之前完成。

 

螺旋模型:
螺旋模型是风险驱动的软件工程过程模型生成器。 它是基于特定项目的独特风险模式,指导团队采用一个或多个过程模型的元素,如增量、瀑布或演化原型。多轮迭代基本遵循瀑布模式,每轮迭代有明确的目标,并且遵循原型过程,进行严格的风险分析,方可进入下一轮迭代。
 

敏捷开发
它提倡适应性规划、进化发展、提前交付和持续改进,并鼓励快速灵活地应对变化。

软件配置管理(SCM

跟踪和控制软件中的变化

软件的任何组成部分(源代码,数据,文档,硬件,各种环境)都可以随着软件生命周期更新。

软件配置项(SCI):软件中发生变化的基本单元
基线(baseline):软件持续变化中的稳定时刻
配置管理数据库(CMDB):存储软件的各配置项随时间发生变化的信息 +基线
版本控制(Versioning):是将唯一版本名称或唯一版本号分配给软件唯一状态的过程。
版本控制系统(VCS

本地版本控制系统:仓库存储于开发者本地机器 无法共享和协作

集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作

分布式版本控制系统:仓库存储于独 立的服务器+每个开 发者的本地机器

 

Git

管理软件演化过程中的变化
Git repository
三个部分本地的CMDB工作目录:本地文件系统暂存区:隔离工作目录和Git仓库

我们做git-cloneaddcommitpushlogmerge所有的操作是一个存储了项目中所有文件的版本的图的数据结构上的操作Git对象图是存放在仓库的Git目录中;复制一个Git项目从另一台服务器意味着复制整个对象图。每一次提交的是我们整个项目的快照,在Git代表一个树节点。对于任何合理大小的项目,大多数文件在任何修订版本中都不会更改。存储文件的冗余副本是很浪费的,Git对象图一次存储单个文件的每个版本,并允许多个提交共享一个副本,并且每个提交都有日志数据

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值