软件构造复习1

 一、软件构造的多维度视图:

共有三个维度:1.按阶段划分:构造时/运行时视图,2.按动态性划分:时刻/阶段视图,3.按构造对象层次划分:代码/构件视图

具体可如图所示(图片来自PPT):

关于此图的一些理解学习:

在build-time构造阶段时:从代码视角来看,我们关注于源代码的逻辑层次,如类、方法、接口等;从构件视角来看,我们关注于构件——代码的物理层次,如包、文件、库等;从时刻视角来看,我们关注特定时刻的软件状态;从阶段视角来看,我们关注软件状态随时间的变化——重点在变化。

在run-time运行阶段时:从代码视角来看,我们关注于逻辑实体在内存中如何实现;从构件视角来看,我们关注于物理实体在硬件环境下如何实现;从时刻视角来看,我们关注逻辑/物理实体在内存/硬件环境下特定时刻的状态;从阶段视角来看,我们关注逻辑/物理实体在内存/硬件环境下状态随时间的变化——重点在变化。

二、软件构造的阶段划分、各阶段的构造活动

从无到有代码:编程,技术手段是ADT/OOP面向对象的编程;

从代码到组件:设计,技术手段是ADT/OOP,面向可复用性和可维护性;

从构建阶段到运行阶段:Debug,单元测试或者融合测试,面向健壮性和正确性;

从时刻到时段:版本控制,动态链接

开发就是各个视图的转化等,如图(图片来自PPT):

三、内部,外部质量指标

外部因素影响客户,内部因素影响软件以及开发者,外部质量取决于内部质量

外部指标有:

正确性:(最重要的质量指标)保持正确性的技术手段有:测试和调试(不能提高程序能力)、防御式编程、形式化方法(通过形式化验证发现问题)

健壮性:(是对正确性的补充)——出现异常时不要崩溃

可扩展性:规约更改时是否容易;可复用性:一次开发多次使用

性能——“性能毫无意义,除非有足够的正确性”——对其关注要与其他指标折中;及时性等

内部指标有:代码行数,可读性,可理解性等

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

SCM:追踪控制软件变化,其中SCI(软件配置项)是软件中发生变化的基本单元(如文件);基线是软件变化中的“稳定时刻”(如版本);CDMB(配置管理数据库)是SCI变化信息+基线

VCS:有本地,集中式,分布式三种。本地的仓库存储于开发者本地机器,无法共享和协作;集中式的仓库存储于独立的服务器,支持多开发者之间的协作;而分布式的是前两种的结合,仓库存储于独立的服务器+每个开发者的本地机器

五、Git

git分为三个部分,本地库.git——本地的CMDB;工作目录:本地文件系统;工作暂存区:隔离工作目录和Git仓库

其中关系如下(图片来自网络)

Object Graph:版本演化图,a->b表示b的基础上演化得到了a

VCS与Git的差别:传统VCS存储版本之间的变化(行);Git存储发生变化的文件(而非代码行),不变化的文件不重复存储

如图(图片来自PPT)

“产生冲突的原因”:

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。 Git 无法替我们决定使用哪一个。必须人为决定新代码内容。查看状态(检测到有文件有两处修改)。

git的一些指令(图片来自网络)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值