软件构造3 Software Construction and Configuration Management 软件构造过程与配置管理

一  Software Development Lifecycle (SDLC) 软件生命周期

一个软件的生命周期: 从0到1 从无到有。

多版本的软件的生命周期:从1到n 从有到好。如下图所示:

软件生命周期变化过程中会引起有效性,即vitality的变化。

二 传统软件的开发模式 Trational Software Process Models

两种模式: 线性过程 迭代过程

存在模式:瀑布过程 增量过程 V字过程 原型过程 螺旋模型

选择合适的过程模型的依据

  用户参与程度有多大,即适应变化的能力‘

  开发效率/管理复杂程度

  开发出的软件质量

1)瀑布过程

   线性推进

优点:阶段划分清楚 整体推进

缺点:无迭代,管理简单 无法适应需求增加和变化

2)增量过程: 

  线性推进 增量式(多个瀑布的串行) 无迭代 比较容易适应需求的增加。

3)V字模型

本质上是瀑布模型的扩展 

4)原型过程

在原型的基础上不断的迭代,发现用户堆变化需求

迭代:开发出来后再由用户试用,发现问题将问题反馈给开发者,开发者修改原有实现,继续交给用户评审。

循环往复,更容易使得用户满意,但代价较高。

5)螺旋模型

多轮迭代遵循瀑布模式,每轮迭代由明确的目标,遵守原型的过程。

三.Agile Development敏捷开发

定义:提供快速迭代和小规模地持续改进,以适应快速变化

agile=增量+迭代

每次迭代处理一个小规模的增量。

极限的用户参与 极限的小步骤迭代 极限的确认和验证

 1)敏捷开发的方法:XP 极限编程。

  2)敏捷开发的方法:Scrum

四.软件结构管理和版本控制系统 Software Configuration Management (SCM) and Version Control System (VCS) 

1)software Configuration Management (SCM) 软件配置管理

  软件配置管理:追踪和控制软件的变化。核心:版本控制和基线的确定。
  软件配置项:软件中发生变化的基本单元(例如:文件)。

基线(baseline):软件持续变化过程中的稳定时刻(例如:对外发布的版本)

CMDB:配置管理数据库 存储软件的各配置项随时间发生变化的信息+基线。

四 Version Control System (VCS)版本控制系统

古老的版本控制方法:通过复制文件并修改文件名。

对于新型版本控制方法1. 回滚到上一个版本;
  2. 比较两个版本的差异;
  3. 备份软件版本历史;
  4. 获取备份;
  5. 合并;
  6. 在多个开发者之间共享和协作;
  7. 记录每个开发者的动作,便于“审计”。 

五History of an SCI

 多个版本之间形成线性或分支结构。分支容许多个不同的版本存在,如 Git 中可以将branch版本合并到主线master上。

4)版本控制的大致组成部分

1. 仓库:即于 SCM 中的 CMDB。
  2. 工作拷贝:在开发者本地机器上的一份项目拷贝。由于对某一版本的文件,需要经过下载、在本地机上的目录修改、更新(上传)等的步骤,而其中本地机上的目录指的就是工作拷贝。
  3.文件:一个独立的配置项。
  4.版本:在某个特定时间点的所有文件的共同状态。
  5.变化:即 code churn,两个版本之间的差异。
  6.HEAD:程序员正在其上工作的版本。


六..Git as an example of SCM tool   Git软件配置管理工具

在软件开发中管理变化。

Git的结构: 由服务器(即远程的版本库)以及本地端存在的三个目录组成。
  本地端存在三个目录:
  1.本地端仓库,用来存放程序的所有版本。
  2.工作目录(即工作区)。它是对程序进行更改的目录。
  3.暂存区(Staging area(in memory)):更改完程序的地方,更改后的程序可能过如 g i t   a d d .   git\space add .\spacegit add.  指令存放在这里,之后可通过 g i t   c o m m i t git\space commitgit commit 提交到版本库中形成新的版本库。用来隔离工作目录和 Git 仓库。
  需要注意的是,除了暂存区不是真实存在的以外,其他目录及服务器均是真实存在的。
  暂存区表示为某一个文件设置一位,如结尾增加标志位,实质上是设置文件的状态。

演化关系图:图中的版本之间的演化关系图(Object Graph),一条边A->B表征了“在版本B的基础上做出变化,形成了版本A”。

基本的Git命令:跳过使用暂存区域、移除文件
Git提供了一个跳过使用暂存区域的方式,只要在提交的时候,给 git commit 加上-a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来 一并提交,从而跳过git add步骤;
使用git rm命令从Git中移除某个文件,把它从已跟踪文件清单(暂存 区域)中移除,并连带从工作目录中删除指定的文件。
 

基本的Git命令:对远程仓库的操作

远程仓库:托管在网络上的项目仓库; 多人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取 数据,分享各自的工作进展。

管理远程仓库:添加远程库、移除废弃的远程库、管理各式远程库分 支、定义是否跟踪这些分支。

分支是在版本控制下对对象的复制,以便可 以沿两个分支平行进行修改。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值