软件构造过程与配置管理

主要内容

软件生命周期SDLC

软件开发模型:瀑布型、增量型、V型、原型、螺旋型

敏捷开发与极限编程

软件配置管理SCM

版本控制系统VCS与Git

广义软件构造:design-programming/refactoring-debugging-testing-build-release

狭义软件构造:validate-compile-link-test-package-install-deploy

软件生命周期SDLC

从0到1:

从1到n:更新迭代

传统的软件开发模型

最基础的两种:线性与迭代

1.瀑布式:

 2.增量式:

 3.V模型:

 4.原型化:

 5.螺旋型:

敏捷开发 

通过快速迭代与小规模的持续改进来快速适应变化。

 极限的用户参与、极限的小步骤迭代、极限的确认/认证

软件配置管理SCM与版本控制系统VCS

软件配置管理用于追踪和控制软件的变化,核心是版本控制和基线的确立,要管理的内容有文档、配置、代码、软件工具及其环境。

软件配置项SCI:软件中发生变化的基本单元

基线:软件持续变化过程中的稳定时刻(多个源代码文件的一组版本或文档的一个稳定状态)

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

版本控制工具需要提供的内容:

对个人:回滚到上一个版本、比较两个版本的差异、备份软件版本历史、获取备份、合并;

对于团队来说还需要做到在多个开发者之间共享协作、记录每个开发者的动作。

版本控制系统的分类:

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

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

分布式版本控制系统:上两个地方都有

Git

 

 Git的所有操作都在对象图上进行,包含了Git项目的历史,是一个有向无环图。

广义软件构造

 

1.programming:

 (1)编程语言:在IDE这个集成开发环境中,包含了源代码编辑器、智能代码补全工具、代码重构工具、文件管理工具、库管理工具、图形化用户界面构造器、编译器、解释器、自动化build工具、版本控制系统、外部第三方工具

(2)建模语言:UML(必学)

(3) 配置语言:改变程序运行时行为、分离稳定与不稳定部分   XML,JSON

2.Review and static code analysis代码评审

正式的代码评审会议、轻量级的代码评审(结对编程)、利用工具的静态代码分析(CheckStyle)

3.Dynamic code analysis/profiling

动态分析:执行程序,观察其时空复杂度,特定指令或函数的调用频率和持续时间

4.Debugging and Testing

前者发现错误,后者解决错误,均不会提高代码质量,只能解决缺陷,想要质量只能从需求分析、设计和编程上入手

5.Refactorinh

在不改变功能的前提下优化代码,使代码更加容易改变或维护。之后要运行单元测试进行检测。

狭义的软件构造(build)

使用build的场景:传统编程语言、解释型语言、基于网站的语言、单元测试、静态分析、文档

build的过程:

build工具:Make、Ant、Maven、Gradle、Eclipse IDE 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值