哈工大软件构造期末复习(根据老师复习提纲整理)
软构期末复习1-3章
1.软件构造的多维度视图及其划分
大体上分为build-time和run-time两大类,分别对应视图中的两排。
在build-time中,又按照时刻和时期、代码层面和成员层面区分开,总共分为上图中9块。需要记住此图。画红色的地方是重点。
2.内部/外部的质量指标
外部的质量指标有:正确性、健壮性、可扩展性、可复用性等
- 正确性:软件产品执行其规约定义的确切任务的能力
- 健壮性:软件系统对异常情况做出适当反应的能力
- 可扩展性:使软件产品易于适应规约的变化的能力
- 可复用性:软件中的各部分构建其他不同应用程序服务的能力
内部的质量指标有:代码行数、低耦合、可读性、可理解性、清洁度等
3.软件配置管理SCM与版本控制系统VCS
3.1 软件配置管理(Software Configuration Management)
SCM是一种监视软件中更新操作的系统,软件的任何组成部分(源代码、数据、文档、硬件、各种环境)都可以随软件生命周期的时间而更新,因此可以被记录下来。
其核心是对于版本控制和基线的确立。其中,基线是指软件持续变化过程中的“稳定时刻”,如对外发行版本。
3.2 版本控制系统(Version Control System )
版本是为软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为在在整个开发过程中的“身份标识”,而版本控制就是对每次更改的不同版本进行记录,保留备用。
版本控制系统分为本地版本控制系统、集中式版本控制系统、分布式版本控制系统三种。本地的只能用于本地机器,集中式的可以支持多台机器之间进行协作,分布式是上述两者的统一。
传统的版本控制软件是记录每次更改的内容,需要的时候再根据记录进行更改;而现在最流行的版本控制工具git则是记录每一本完整的版本,需要的时候直接提取即可,极大地提高了软件的效率。
3.3 git
git是一种分布式版本控制工具。
3.3.1 git的结构和原理
一个git仓库有3个部分:
- .git仓库(配置管理数据库,存储软件的各配置项随时间发生变化的信息和基线)
- 工作目录:本地文件系统
- 暂存区:用来隔离工作目录和git仓库
文件在git仓库的3个状态:
- 已修改:刚在工作区改完,还没有放到暂存区
- 已暂存:将在工作区改完的版本add到暂存区
- 已提交:将在暂存区的版本commit到.git仓库,此时工作目录的版本与git仓库的版本保持一致
除此之外,git还有远程仓库,支持多人协作功能,如果想要将本地仓库的内容提交到远程仓库以供别人使用,则还需要push到远程仓库。当然,如果你想使用别人的远程仓库的内容,也需要先从远程仓库pull下来。
git的所有操作都是在一个图数据结构上进行的,git对象图存储在存储库的.git目录中。从另一台机器/服务器复制git项目意味着复制整个对象图。
对象图是一个有向的无环图,一条边A→BA\rightarrow BA→B表示“在版本B的基础上做出变化,形成了版本A”;每个$ \rightarrow$指向一个父亲,如果有多个commit指向同一个父亲,则为一个父亲产生了多个子节点,即为branch;如果是一个commit指向多个父亲,则表示多个父亲节点合并形成了子节点,即为merge
每次commit都会在git仓库中形成一个新的节点,这个节点包含所有文件的完整快照。每个节点中包含以下信息:根节点、作者、提交者、备注信息等
3.3.2常用git命令:
git init//初始化git仓库
git add//将工作目录下的版本提交到暂存区
git add readme.md//将文件添加到暂存区,开始对这些文件进行跟踪
git commit//将暂存区文件提交到本地仓库
git push//将本地仓库的文件提交到远程仓库(服务器)
git status//查看当前文件状态
git diff//查看工作区和暂存区快照之间的差异,即修改后未add的内容
git commit -a//跳过git add步骤,直接将所有修改过的文件暂存起来并提交
git rm//从git中移除某个文件,不再跟踪,也将原文件删除
git fetch//从远程仓库抓取文件到本地,但不与本地的合并
git pull//与fetch类似,但是还会与本地合并
git branch//查看本地分支
git branch phase//创建本地分支phase
git checkout phase//切换到分支phase
git checkout -b phase1//创建分支phase1并切换到phase1分支
git merge phase//将分支phase合并到main分支上,需要在主分支(main)上进行操作
git branch -D b1//强制删除分支
哈工大软件构造期末复习(根据老师复习提纲整理)相关推荐
- 哈工大软件构造期末复习
系列文章目录 哈工大软件构造期末复习(最终章) 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 哈工大软件构造期末复习(最终章) 前言 一.github指令 ...
- 哈工大软件构造期末知识点总结
哈工大软件构造试题构成: 1.30-45分的选择题,10-20题 2.55-70分的简答与设计题,5-6题 考试知识点(不全面): 1.git工具的知识点 2.Java设计模式(一共有23个,主要考察 ...
- 哈工大软件构造期末复习1
Chapter 1: Views and Quality Objectives of Software Construction 1.1 Multi-Dimensional Views of Soft ...
- 2021哈工大软件构造期末考点复习笔记
第一节 多维视图和质量目标 软件构造多维度视图 红色标注为重点(考试会考选择题) Moment 特定时刻的软件形态 Period 软件形态随时间的变化 AST (Abstract Syntax Tre ...
- 哈工大软件构造 复习
哈工大软件构造试题构成: 1.30分的选择题 2.70分的简答题 2019考试知识点(重要的,但不涵盖全部考试范围): 1.git工具的知识点(没有考察命令行,考察的主要是git的演变及各部分的作用) ...
- 2022哈工大软件构造lab1小结(知识点)
哈工大软件构造lab1小结 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 问题一 使用的库 异常处理机制 字符串内容检查 写入文件 问题二 problem 3:画一 ...
- 哈工大软件构造课程知识点总结(一)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大软件构造课程知识点总结(二)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
- 哈工大软件构造课程知识点总结(三)
系列文章目录 哈工大软件构造课程知识点总结(一) 哈工大软件构造课程知识点总结(二) 哈工大软件构造课程知识点总结(三) 哈工大软件构造课程知识点总结(四) 哈工大软件构造课程知识点总结(五) 哈工大 ...
最新文章
- 第二届全国大学生智能汽车竞赛获奖名单
- 40.简述操作系统中调用过程?
- ecshop goods.php,重命名ecshop的商品页goods.php为shangpin.php
- python多线程_干货|理解python多线程和多进程
- GCC的__attribute__ ((constructor))和__attribute__ ((destructor))
- RHEL5下unixODBC 与 sqliteodbc 连接配置
- java基于Springboot+vue的鲜花销售商城网站
- 家庭局域网_如何查看局域网内所有ip?
- 米粒搜---团购信息搜索软件 Android平台
- android 自定义组件 属性值,自定义组件之自定义属性
- 基金购买和赎回线下业务
- ActivitiUFLO2Snaker流程引擎对比分析
- Windows10制作双系统来越狱 ios13.3.1(非常方便,不要U盘)
- 使用Scanner收集你的身高体重,并用三目运算符判断BMI的范围
- rsync同步脚本示例,带有exclude参数说明
- 中国医科大学22春《病理学(本科)》在线作业【标准答案】
- 快商通董事长肖龙源:逐浪AI大潮,职业教育应紧握机遇,赋能产业
- 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)
- WebBowser 实现淘宝网自动登录
- android apk安装工具,安卓装机必备工具!一键批量安装应用apk
热门文章
- vivado17.4支持w25q128的方法
- NJ 时钟自动调整功能(SNTP)
- php 短信验证 云之讯,python3.7实现云之讯、聚合短信平台的短信发送功能
- poj 1102 LC-Display(模拟)
- 程序员都是吃青春饭,40岁以后怎么办?转行大数据是不错的选择
- Kubernetes 忘记token解决方案
- Word2003文档中字数统计在哪?
- 学HTML5要英语数学吗,数学和英语不好的人能学编程吗?
- python 椭圆曲线_Python、Sympy和椭圆曲线
- 第八届蓝桥杯 java B组 日期问题