三维度八视图和计算机系统的联系分析

第一章

(Views and Quality Objectives of Software Construction)

(软件构造的多维度视图和质量目标)

主要是考三维度多视图

(2021)一个 Java 程序在执行过程中抛出了异常,运行界面上输出了发生异常的方法及

其所在代码行、逐层调用该方法的其他方法及其代码行。考虑这些信息在多维

度软件构造视图中所处的位置,以下正确的是____

A Component level, Run-time

B Code level, Build-time

C Period, Code-level

D Moment, Component level

大二下这个学期同时学了软构和csapp,在复习时再次看这块知识时发现其和csapp的知识很多是可以互通的,相互印证。

八视图:

1编译时——时刻——代码
很显然,这一部分如果需要对应于计算机系统中的编译过程,在c语言中由gcc完成,在java中由JDK完成这一过程,与这一过程密切相关的就是源代码,也就是日常最常接触到的,其次就是语法分析数,这是由编译器产生的一棵树,主要是对程序进行词义分析、语法分析等工作,语法分析树这一部分知识可以见形式语言与自动机或编译原理课程。一棵c语言语法分析树示例如下:

在这里插入图片描述
2 编译时——时刻——构件
显然,这一部分对应于静态链接的过程,在c语言链接过程中使用链接器(ld)将文件转化为可执行目标文件,在java中这一流程类似,也是将外部的包等代码中使用的外部的包信息与代码文件进行链接。

3 编译时——阶段——代码
这一阶段事实上对应于源代码的一个变化的过程,主要体现的是对于源代码不断地修改,很好理解。

4 编译时——阶段——构件
首先,对应于配置项的变化,配置项的解释就是:软件生存周期各个阶段活动的产物经审批后即可称之为软件配置项。也就是在源代码变化之后生成了多个部件,我们可能有了这个软件的不同零件,将其组合起来之后就是整个软件;其次就是版本控制,这一点很好理解,处于维护、功能升级等不同原因,软件总会不断推出新版本,这些版本表现的就是软件的一个演变过程。

github为我们每一个项目维护的一个提交历史记录就可以看成是这一阶段的一个简单示例

5 运行时——时刻——代码
这一阶段对应于在运行中代码的变化,主要表示的就是例如在运行时某一时刻某个变量的值是什么样的,事实上我们对于程序打断点调试的时候看的就是这一个视图的内容。

6 运行时——时刻——构建
很显然,这一阶段对应于动态链接,可以简单理解成在加载的时候再对使用的一些外部构件进行的链接;除了动态链接之外,这一视图对应的很重要的一部分是类似于在运行时使用数据库这种情况,数据库并没有嵌入软件,而是在软件运行时某个时刻请求数据库的信息。

7 运行时——阶段——代码
这一部分可以看成是在程序运行过程中栈的信息的一个展示,最明显的一个展示就是java程序报错的时候出现的报错信息,这就是在java运行过程中与某个报错相关的栈的信息的展示,一个简单的例子如下图所示:


8 运行时——阶段——构件
这一阶段主要对应于事件日志这一类信息,其事实上就是构件层面上的代码运行过程中的栈信息,但是它并没有2.7中栈信息内容那么繁多,其主要记录代码运行过程中的重要的事件的发生信息。

还有就是软件质量属性,包括外部和内部

以下属于“内部质量属性”的是___

A 可复用性

B 健壮性

C 可扩展性

D 代码可读性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值