软件构造复习笔记(2)——第二章

一、软件生命周期与配置管理

1.软件生命周期

  • SDLC:从无到有(0到1),从有到好(1到n)

2.Traditional Software Process Models

(1) 两种类型:线性过程,迭代过程
(2)模型:

  • 瀑布模型:线性推进,阶段划分清楚,整体推进,无迭代,管理简单,无法适应变化
  • 增量模型:线性推进,增量式(多个瀑布的串行),无迭代,比较容易适应变化
  • V字模型:论证开发生命周期的每个阶段与其相关测试阶段之间的关系。
  • 原型过程:在原型上持续不断的迭代发现用户变化的需求。
  • 螺旋模型:多伦迭代基本遵循瀑布模型;每轮迭代有明确目标,遵循“原型”过程

3.敏捷开发

通过快速和小规模的持续改进以快速适应变化
Agile=增量+迭代,每次迭代处理一个小规模增量

4.软件配置管理和版本控制管理

(1)软件配置管理SCM:追踪和控制软件的编号

  • 软件配置项:软件中发生变化的基本单元(eg:文件)
  • 基线:软件持续变化过程中的“稳定时刻”(eg:对外发布的版本)
  • CMDB配置管理数据库:存储软件各配置项岁时间变化的信息+基线

(2)版本控制VCS:

  • 古老方法:复制文件并修改文件名
  • 仓库:于SCM中的CMDB
  • 变化:两个版本之间的差异
  • Head:正在其上工作的版本
  • 本地版本控制系统:仓库存储于开发者本地机器
  • 集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间的协作
  • 分布式版本控制系统:仓库存储于独立的服务器+ 每个开发者的本地机器

(3)git使用

  • 工作目录:本地文件系统
  • 暂存区:隔离工作目录和git仓库
  • Object graph:版本之间的演化关系图,A->B表示在B的基础上形成版本A,由孩子指向父亲
    在这里插入图片描述
  • commit箭头形式:
    每个commit指向一个父亲,
    多个commit指向同一个父亲(分支)
    一个commit指向两个父亲:合并
  • Head:指向当前正在工作的分支
  • tree node:指向具体文件存储的指针,与之前commit中未发生变化的文件
  • git存储发生变化的文件而不是代码行,文件未发生变化,则后序多个版本始终指向同一文件;文件发生变化,两个版本指向不同文件
  • 创建、合并分支操作:
    git checkout -b name :创建分支
    git checkout name:切换分支
    git merge name:合并当前分支和分支name
    git brach -d name:删除指向分支的指针,而不是删除分支本身
    git fetch:将远程主机的最新内容拉到本地(当多个人对同一个远程仓库中的代码进行修改时)

二、软件构造的过程,系统和工具

1.软件构造语言

  • 编程语言
  • 建模语言:UML
  • 配置语言:XML
  • 构建语言:XML

2.静态代码分析

  • 代码评审code review
  • 工具:SpotBugs,CheckStyles,PMD

【注】Spotbugs是静态代码分析工具,profiling是动态代码分析

3.动态代码分析

  • profiling性能分析:对代码运行时状态和性能进行度量,如内存占用率,cpu占用率
    在这里插入图片描述

4.refactoring重构

在不改变功能的前提下优化代码
eclispe 中有重构工具
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值