软件构造期末复习知识点整理

												软件构造过程与配置管理

一、传统的软件流程模型
两种基本类型:(1)线性过程(2)迭代过程
现有模型:(1)瀑布过程(2)增量过程(3)V字模型(4)原型过程(5)螺旋模型

  1. 瀑布过程:进步被视为在构思、开始、分析、设计、施工、测试、实施和维护等阶段稳步向下流动(就像瀑布一样)。易于使用,但事后的改变代价令人望而却步。
  2. 增量过程:线性推进、增量式(多个瀑布的串行)、无迭代、比较容易适应需求的增加。
  3. v模型表示一个开发过程,可以被认为是瀑布模型的扩展过程。过程步骤不是线性向下移动,而是在编码阶段后向上弯曲,以形成典型的V形状。演示开发生命周期的每个阶段与其相关的测试阶段之间的关系。水平轴和垂直轴分别表示时间或项目完整性(从左到右)和抽象级别(最粗粒度抽象)。
  4. 原型过程:迭代:开发出来之后由用户试用/评审,发现问题反馈给开发者,开发者修改原有的实现,继续交给用户评审。循环往复这个过程,直到用户满意为止。时间代价高,但开发质量也高。
  5. 螺旋模型:非常复杂的过程: 多轮迭代基本遵循瀑布模式,每轮迭代有明确的目标,遵循“原型”过程,进行严格的风险分析,方可进入下一轮迭代。

二、敏捷开发
敏捷开发:通过快速迭代和小规模的持续改进,以快速适应变化。

三、软件配置管理(SCM)和版本控制系统(VCS)

  1. SCM是跟踪和控制软件变化的任务。SCM实践包括修订控制和基线的建立。
  2. 配置项的生命周期:软件的任何组件(源代码、数据、文档、硬件、各种环境)都可以与软件生命周期中的时间一起更新。
  3. 软件配置项(SCI):SCM的基本结构单元。
  4. 配置项目(SCI)和基线:基线是对某个时间点的产品属性的一致描述,它作为定义变化的基础。
  5. CMDB:配置管理数据库:存储软件的各配置项随时间发生变化的信息+基线。
  6. 版本控制是为软件的版本号分配唯一版本名或唯一状态的过程。

四、Git
1.Git存储库有三个部分:(1).git目录(存储所有版本控制数据的存储库)本地的CMDB(2)工作目录(本地文件系统)(3)暂存区:隔离工作目录和Git仓库

2.每个文件都属于以下三个状态之一:(1)已修改:工作目录中的文件不同于git存储库中的文件,但不在临时区中(2)已暂存:文件已修改并已添加到临时区(3)已提交:文件在工作目录和git目录中保持不变

3.Git工作原理:我们使用Git执行的所有操作—克隆、添加、提交、推送、日志、合并……都是对图形数据结构的操作,它存储项目中所有版本的文件以及描述这些更改的所有日志条目。Git对象图存储在存储库的。git目录中。从另一台机器/服务器复制git项目意味着复制整个对象图。版本之间的演化关系图,一条边A->B表征了“在版本B的基础上作出变化,形成了版本A”。
Git表示具有树节点的提交。对于任何合理大小的项目,大多数文件在任何特定版本中都不会更改。存储冗余副本会浪费,所以Git不会这样做。相反,Git对象图将每个文件的每个版本存储一次,并允许多个提交共享其中一个副本。每个提交都有日志数据—谁、时间、短日志消息等。

五、软件建设的总体流程

(1)编程
**集成开发环境(IDE):**为程序员提供供软件开发使用的综合设施。
EclipseIDE:Java的开源IDE,但不限于C/C++、PHP、Python等,最初是IBM的专利产品(Java)——它包含一个用于编码、构建、运行和调试应用程序的工具的基本工作区,以及一个用于自定义环境的可扩展插件系统。-插件是可贡献系统功能的代码和/或数据的结构化包。功能可以以代码库、平台扩展甚至文档的形式进行贡献。-插件可以定义扩展点,以及其他插件可以添加功能的明确位置。
建模语言是任何人工语言,可以用来表达信息或知识或系统中由一组一致规则定义的结构,目的是可视化、推理、验证和通信系统的设计。

(2)审核和静态代码分析
代码评审是对源代码的系统检查(同行评审)。旨在在初始开发阶段发现被忽视的错误,提高整体质量。审查以各种形式进行,如成对编程、非正式演练和正式检查。
正式的代码审查,如费根检查,涉及到一个有多个参与者和多个阶段的仔细和详细的过程。正式代码审查是一种传统的审查方法,即软件开发人员参加一系列会议,逐行审查代码,通常使用材料的打印副本。正式检查非常彻底,已被证明在发现审查中代码的缺陷时有效。
静态代码分析是对在没有实际执行程序的情况下执行的计算机软件的分析(对执行程序执行的分析称为动态分析)。该过程提供了对代码结构的理解,并可以帮助确保代码符合行业标准。自动化的工具可以帮助程序员和开发人员执行静态分析。
代码审查确实有两个目的:(1)改进代码:查找错误,预测可能的错误,检查代码的清晰度,以及检查与项目样式标准的一致性。(2)改进程序员:代码审查是程序员学习和教授的重要方法,关于新语言特性,项目设计或编码标准的变化,以及新技术。特别是在开源项目中,许多对话都发生在代码审查的上下文中。代码审查在Apache和Mozilla等开源项目中得到了广泛的应用。代码审查在工业中也有广泛的应用。在Google中,只有在其他工程师在代码审查中签字之前,您才能将任何代码推入主存储库。

(3)动态代码分析
动态分析:要执行程序并观察现象、收集数据、分析不足。目标程序必须有足够的测试输入来执行,以产生有趣的行为。使用软件测试措施,如代码覆盖率,有助于确保已经观察到程序中可能的行为集的适当切片。

(4)调试和测试
软件测试是为向利益相关者提供有关被测产品或服务质量的信息而进行的调查。测试技术包括执行一个程序或应用程序的过程,以查找软件错误(错误或其他缺陷),以及验证该软件产品是否适合使用。软件测试涉及到执行软件组件或系统组件,以评估感兴趣的一个或多个属性。
调试是识别错误的根本原因并纠正错误的过程。它与测试形成对比,测试是最初检测错误的过程,调试是测试成功的结果。在某些项目中,调试大约占了总开发时间的50%。对许多程序员来说,调试是编程中最困难的部分。与测试一样,调试并不是一种提高软件质量的方法,而是一种诊断缺陷的方法。软件质量必须从一开始就进行内置。构建高质量产品的最佳方法是仔细开发需求,设计良好,并使用高质量的编码实践。

(5)重构
重构是一种改变软件系统的过程,使它不会改变代码的外部行为,而是改进其内部结构。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值