软件构造的一些基础知识

软件的生命周期

在这里插入图片描述

  1. 计划
  2. 分析
  3. 设计
  4. 实现
  5. 测试
  6. 维护

软件构造的传统模式

增量模式(无迭代):

  1. 线性递进
  2. 增量式(多个瀑布串行)
  3. 无迭代
  4. 容易适应需求的增加
    在这里插入图片描述

V-模式:

  1. 增量模式的扩展
  2. 展示生命周期的每个阶段与相关测试阶段之间的关系
    在这里插入图片描述

原型设计(迭代):
开发者开发出之后交由用户审评、测试
用户发现问题后,开发者修改原有实现,继续交由用户审评
直到用户满意为止
在这里插入图片描述

开源模式:
在这里插入图片描述

版本控制的功能、作用:

  1. 回滚上一个版本
  2. 比较两个版本的差异
  3. 备份软件历史
  4. 获取备份
  5. 合并
  6. 多个开发者之间的合作
  7. 记录每个开发者的“动作”

Git相关

特点:
分布式版本控制系统
Git只存储发生改变的文件(而不是代码行),相同的文件不重复存储

版本在Git中的存储方式:
在这里插入图片描述

  1. 每个commit指向一个父亲
  2. 多个commit指向一个父亲:分支
  3. 一个commit指向多个父亲:合并
  4. HEAD:指向当前commit

Git中的合并示意图:

  1. 在同一条分支上

在这里插入图片描述

  1. 在不同的分支上
    在这里插入图片描述

Git的对象图:
在这里插入图片描述
Tree中指针指向每个文件,而不只是修改的文件
若文件没有被修改,则指向其父亲

补充:
如果某个节点仅存在于远程服务器的对象图中,则本地仓不能直接push,而需要如下操作:
git fetch origin master
git merge
git push origin master
(先fetch,再merge,最后push)

软讲构造的基本过程:

  1. 编程:
    各类语言
    1编程语言
    2建模语言:软件设计阶段描述设计思想和设计结果,如UML
    3配置语言:为程序配置参数和基础设置、编写build脚本,如JSON

  2. 代码评审:
    人工检查代码
    借助工具
    不用执行代码

  3. 动态代码分析&程序剖析(profiling):
    动态分析:执行程序并观察现象、收集数据、分析不足
    Profiling:度量代码运行时的状态和性能,发现潜在问题(也是动态分析)

  4. 测试和调试:
    执行代码发现真实出现的问题、找出问题的根源

  5. 重构:
    保持代码的功能
    不用执行代码

  6. Build:
    重用情况
    1代码的编译,如.java -> .class
    2软件的打包和测试
    3基于web的应用程序的打包和编译
    4执行静态代码分析工具,检查代码中的潜在漏洞,如checkstyle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值