软件构造第一章节复习

一:软件构造多维视图

分类图:重点
在这里插入图片描述

从三个维度看软件构造
1、按阶段划分:构造时/运行时视图。build-time/run-time
2、按动态性划分:时刻/阶段视图。Moment/Period
3、按构造对象划分:代码/构件视图。code-leval/component-level
构造阶段/build-time view
idea->requirment->design->code->instable/executable package
Build-time,moment and code-leval view
构建时+时刻+代码

源代码
接口,类,方法,函数
三个层次:
词汇:半结构化-近乎自然语言+遵循特定的编程语言
语法层次:AST-彻底结构化,将源代码变为一棵树,对树做各种操作==对源代码进行更改
语义层次:class diagram-用于表达设计的需求以及设计的思想
Build-time,period and code-level
构建时+周期+代码

code churn-记录行的删除增加,代码在周期内的变化
Build-time,moment and component-leval
构建时+时刻+组件

File被封装到Package以及library。模块化组织为文件。与库文件的链接。
静态链接/static linking:构造阶段,且不依赖
对应的run-time,moment and component-leval中存在一个Dynamic linking。特点是不加入可执行文件,只是做个标记,运行时将标记装在到内存。易于升级,不过需要将所有依赖库都复制给用户。
Build-time,period and component
构建时+周期+组件

configuration item -SCI:配置项
version
runtime views
运行时:程序被载入目标机器,开始执行
代码层面:逻辑实体在内存中如何运行
构建层面:物理实体在硬件环境下如何呈现
Moment view:逻辑/物理实体在内存/硬件环境中特定时刻的形态如何
Period view:逻辑/物理实体在内存/硬件环境中随时间形态如何变化。
较为关键的点
可执行程序,原生机器码,程序完全解释执行,库文件,动态链接,内存信息转储/Memory dump,execution tracing 与event logging二者间的比较关系。
剩余对应的情况略

软件的质量指标

1,Correctness/正确性-测试调试/防御式编程/形式化方法
2,Robusterness/健壮性-异常处理,异常-未被Specification覆盖的情况
3,Reusability/复用性-发现共性
4,Extendility/扩展性-简约主义设计以及去中心化,模块自治
5,Portability/可移植性-
6,Functionality/功能性
7,Compatibity/兼容性-保持设计同构性
8,Efficiency/功能性-与许多冲突,过早优化是万恶之源
9,Timeliness/时效性
10,ease of use/易于使用,方便使用
other不细说,重要的有经济性与完整性
这些性质之间互相冲突,需要仔细考虑,规模大功能全的软件,易用性,经济性,移植性就会差。需要采取折中处理
保证:正确性!!!!
经济性 与 功能性/可复用性 矛盾
有效性/可复用性 与 轻便性 矛盾
更高效、对硬件和软件有高要求
时效性 与 可扩展性 矛盾
完整性 与 易用性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值