软件构造——软件构造过程与配置管理

软件构造过程与配置管理

传统的软件开发过程模型

  1. 两种基本类型:
  • 线性模型
  • 迭代模型
  1. 现有的其它模型:
  • 瀑布模型
    • 流程:需求、设计、实施、验证、维护
    • 特征:线性推进、阶段划分清晰、整体推进、无迭代
    • 优点:管理简单
    • 缺点:无法适应需求变化
  • 增量模型
    • 特征:线性推进、增量式(多个瀑布的串行)、无迭代
    • 优点:容易适应需求增加
  • V字模型
    • 特征:瀑布模型的延伸扩展
  • 原型过程
    • 特征:迭代
  • 螺旋模型
    • 特征:迭代,多轮迭代基本遵循瀑布模式,每轮迭代有明确的目标,遵循”原型“过程,进行严格的风险分析才可进入下一轮迭代
  1. 选择过程模型的依据:
  • 用户参与度、适应变化的能力
  • 开发效率、管理复杂度
  • 开发出的软件的质量

敏捷开发

  1. 敏捷开发的概念:通过快速迭代和小规模的持续改进,以快速适应变化。每次迭代处理一个小规模增量,敏捷 = 增量 + 迭代
  2. 敏捷开发的特征:
  • 极限的用户参与
  • 极限的小步骤迭代
  • 极限的确认、验证
  1. 敏捷开发的方法:极限编程XP

Git

  1. Git仓库的三个组成部分:
  • 本地的版本控制数据
  • 工作目录:本地文件系统
  • 暂存区:隔离工作目录和git仓库
  1. 每一个文件都属于以下三种状态之一:
  • 已修改:在工作目录中的文件与git仓库中的文件不同但是该文件并不在暂存区
  • 已暂存:文件已经被修改但是被添加到了暂存区
  • 已提交:修改的文件被从暂存区提交到了git仓库中
  1. git中的对象图:
  • git对象图用来记录git项目的历史信息,版本之间的演化关系图,是一个有向无环图

  • git的所有操作都是在一个对象图上进行的

  • git对象图存储在仓库的.git目录下

  • 从一台服务器clone git项目意味着复制整个对象图git clone URL local_repository

  • A->B:在版本B的基础上做出变化形成了版本A

  • 每一个结点都是一次commit,每个commit指向一个父亲

  • 分支:多个commit指向同一个父亲

  • 合并:一个commit指向两个父亲

  • git对象图只存储变化的文件对于未发生变化的文件只存储一份副本

  1. git命令:
  • 跟踪新文件,将修改的文件放入暂存区:git add
  • 检查当前文件状态,哪些修改了但还没有暂存,哪些暂存了但还没提交:git status
  • 查看已暂存和未暂存的更新,查看没有暂存的文件更新了哪些部分:git diff
  • 查看已暂存的文件与上次提交之间的差异:git diff - -cached
  • 提交更新:git commit
  • 跳过使用暂存区域,把所有已经跟踪过的文件暂存起来并一并提交,git commit -a
  • 移除文件:git rm
  • 获取当前配置的所有远程仓库:git remote
  • 添加一个远程仓库:git remote add [shortname] [url]
  • 从远程仓库抓取数据到本地:git fetch
  • 从一个仓库或本地的分支拉取并整合代码:git pull
  • 将本地仓库中的数据推送到远程仓库: git push [remote-name] [branch-name]
  • 查看某个远程仓库的详细信息:git remote show [remote-name]
  • 从本地移除远程仓库:git remote rm

广义的软件构造过程

  1. 编码Programming
  2. 代码评审Review and static code analysis
  3. 动态代码分析Dynamic code analysis
  4. 调试与测试Debugging and testing
  5. 重构Refactoring
posted @   dcyyyyyy  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示