【软件构造复习1】软件构造的基础概念

(一)软件的多维视图
在这里插入图片描述

【Code-level + Build-time + Moment】

词汇:使用的语句、字符串、变量、注释,半结构化的代码
词法:AST语法树
语义:UML图

【Code-level + Build-time + Period】

Code Churn(代码变化)

【Component-level + Build-time + Moment】
files(文件)
directories(目录)
packages(包)

libraries(库)
静态链接
【Component-level + Build-time + Period】
版本控制(SCM、Git)
【Code level + Run-time + Moment】
snapshot(运行时的程序快照图)
memory dump(内存转储)
【Code level + Run-time + Period】
UML时序图
【Component level + Run-time + Period】

执行跟踪tracing
系统日志
(二)软件开发的质量指标

  1. 外部质量指标(面向用户)
    【正确性】首先要保证的属性
    【鲁棒性】通过添加异常处理来完善程序
    【易扩展性】
    【复用性】
  2. 内部质量指标(面向开发者)
    【LOC】代码行数
    【圈复杂度】程序模块的路径复杂性
    【高内聚低耦合】
    (三)软件配置管理
    【软件配置管理SCM】

追踪和控制软件的变化
软件配置项SCI:软件中发生变化的基本单元(文件:Component-Level)

【版本控制系统VCS】

本地的VCS
集中式VCS(CVS、SVN):通过服务器进行共享,客户端可以是全集或子集(Git只能是全集)
分布式VCS(Git):用户之间可以直接进行推送,也可以通过云

【版本控制工具git】
(1)基本指令
添加文件:git add xxx.xxx

提交文件:git commit -m “message”

push到远程仓库:git push origin master

从远程仓库pull:git pull origin master
新建分支:git checkout -b branch_name
切换分支:git checkout branch_name or git checkout master
选择一个分支与当前分支合并:git merge branch_name2
(2)Git的整体架构——四个仓库(本地有三个)

工作目录
暂存区域
本地库:源代码
云端软件服务器(远程仓库)

(3)对象结构图
Object Graph

版本之间的演化关系图
一条边A->B表征了“在版本B的基础上作出变化,形成了版本A”

(4)管理变化:

Git存储发生变化的文件(而非代码行),不变化的文件不重复存储
Commits: nodes in Object Graph

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值