哈工大软件构造第三章总结
本章主要介绍了软件开发的生命周期和软件配置的相关知识,更偏向于开发方式与开发工具的介绍章节。
(一)软件生命周期
从无到有,软件的生命周期如图所示
(二)传统软件开发模型
基本的为线性过程和迭代过程,现在常见的则有瀑布过程、增量过程、v字模型、原型过程和螺旋模型等。
瀑布过程没有迭代,依次推进,结构清晰,管理简单,但无法适应需求的增加与变化。
增量过程为多个瀑布的串行模式,较为适应需求变化。
v字模型为瀑布过程的扩展,存在一个证明和校验的过程来反馈回较前的开发阶段。
原型过程在原型上不断地迭代(评审-反馈-修改)从而满足用户需求,时间代价和开发质量都比较高。
螺旋模型是一种风险驱动的过程模型,通过数轮瀑布模式的迭代来组成复杂的开发过程,每一轮迭代都有者明确的目的,遵循“原型”过程。在进行严格风险评估后才能进入下一轮。
(三)敏捷开发
敏捷开发是指通过快速迭代和小规模的持续改进来快速适应变化,包括3个极限:极限的用户参与,极限的小步骤迭代和极限的验证。
(四)软件配置管理(SCM)与版本控制系统(VCS)
SCM负责追踪和控制软件的变化,核心是版本控制和基线的确立,其中软件配置项指软件中发生变化的基本单元,而基线则是软件变化中的稳定时刻(比如所有文件的最新版本所组成的一个对外发布版本)。
版本是为软件某一时刻所指派的唯一一个编号作为身份标识。常见的VCS包括Local、Centralized和Distributed三种。本地VCS将文件储存在本机,无法共享与协作;集中式VCS将仓库存储在独立的服务器上,可以协作;而分布式VCS将仓库存储在独立服务器和每个开发者的本地机器上,这样在便于协同开发的同时也减少了文件因为意外丢失的情况。
(五)Git
git是进行SCM的工具之一,包括CMDB(配置管理数据库,存储基线和各个配置项随时间发生变化的信息),工作目录和暂存区。git的所有操作都是针对对象图进行的,复制项目意味着复制整个对象图,对象图中A->B表示在B的基础上进行变化形成版本A,不同的提交之间可以进行分支或合并,比如:
git在进行存储时,是针对发生变化的文件进行存储,因此不变化的文件不会重复存储,若文件发生了变化,则库中会存储两份不同的文件,分别被不同的版本所指。
git常见命令有git init git add xxx git commit -m 'xxx' git clone [url]
git status git diff等
git还可与远程仓库链接起来,便于成员之间相互协作,比如github。常用以下命令:
git可以在开发时使用分支,实际上是对项目进行了复制,这样就能让项目沿着两个分支平行修改。常用命令与示例如图:
(六)软件构造一般过程
编程:语言加环境。语言包括编程语言、建模语言、配置语言、构造语言。
代码评审:包括结对编程,走查,正式评审会议,自动化评审。
动态代码分析:进行充分测试,执行程序并发现不足,保证高覆盖度
调试和测试:测试发现错误,调试寻找错误根源并纠错。
重构:结构与功能不变的条件下优化代码,一些开发环境提供了自动的重构功能。
哈工大软件构造第三章总结相关推荐
- 软件构造第三章 第五部分
ADT和OOP中的等价性 equal和== hashcode()和equals()方法总是一起被重写 "==":引用等价性,指向相同的内存地址, equals():对象等价性,在自 ...
- 哈工大软件构造课程知识点总结(三)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大软件构造课程知识点总结(一)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大软件构造期末知识点总结
哈工大软件构造试题构成: 1.30-45分的选择题,10-20题 2.55-70分的简答与设计题,5-6题 考试知识点(不全面): 1.git工具的知识点 2.Java设计模式(一共有23个,主要考察 ...
- 2022哈工大软件构造lab1小结(知识点)
哈工大软件构造lab1小结 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 问题一 使用的库 异常处理机制 字符串内容检查 写入文件 问题二 problem 3:画一 ...
- 哈工大软件构造 复习
哈工大软件构造试题构成: 1.30分的选择题 2.70分的简答题 2019考试知识点(重要的,但不涵盖全部考试范围): 1.git工具的知识点(没有考察命令行,考察的主要是git的演变及各部分的作用) ...
- 哈工大软件构造课程知识点总结(二)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大软件构造期末复习
系列文章目录 哈工大软件构造期末复习(最终章) 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 哈工大软件构造期末复习(最终章) 前言 一.github指令 ...
- 哈工大软件构造实验一
哈工大软件构造lab1 实验目标 实验过程 Magic Square 第一部分 要求 实现 第二部分 要求 实现 Turtle Graphics 第一部分 绘制多边形 第二部分 计算方位 第三部分 凸 ...
最新文章
- python编程入门与案例详解pdf-Python入门之三角函数sin()函数实例详解
- 【读书笔记】JavaScript高级编程(二)
- 云计算技术都要学什么?教你分清公有云、私有云和混合云
- java中synchronized的用法详解
- ITK:单相Chan和Vese密集域水平集分割
- Elementui select 设置点击事件,在Change事件前触发
- 挂机宝装mysql_挂机宝安装
- 4373支队伍报名2020数字中国创新大赛-数字政府赛道 数字战“疫”彰显社会责任...
- Java中ArrayList,Vector,LinkedList,HashMap,HashTable,HashSet对比及总结
- Jquery中val、text、html的区别
- pytorch导入模型
- ubuntu11.04(unix 就可以了) 共享文件以及支持上传文件
- python输出斐波那契数列_如何用Python输出一个斐波那契Fibonacci数列
- Docker Wnmp 搭建
- 题目:滑动解锁 蓝桥杯
- 微信小程序开发(十二)富文本插件wxParse的使用
- 竟成408计算机考研辅导书介绍
- 折线图(运营数据分析)--python
- MFC多窗口停靠成Tab页并默认选中第一个TAB页
- 隐性—显性知识转化技术
热门文章
- 基于SSH的服装销售网站,仿阿里旺旺客服,web在线客服
- 【云盘项目2 SpringMVC.xml
- 物联网传感器市场的六个特点分析
- sql yog图形管理工具-varchar类型数据不能输入中文报错问题
- Github每日精选(第68期):HTTP客户端哪家强-reqwest
- 后端程序员:如果把Java比作恋人.......
- 汇千网-华米亮出独立GPU、自研操作系统,新引擎30秒监测血压
- 除了计算机学位,这五件事情更重要
- 2020华为海思实习生面试记录
- [教程]使用 Git 克隆指定分支