软构复习1

Moment:特定时刻的软件状态

Period:软件形态随时间的变化

Build-time

Code-level:源代码,代码的逻辑组织

Component-level:体系结构,代码的物理组织

1.1 源代码、接口类属性方法、源代码是如何由基本的程序块,如函数、类、方法、接口等进行逻辑组织的,以及它们之间的依赖关系。词汇层面:面向词法的源代码;语法层面:面向语法的程序结构:例如,抽象语法树(AST);语义层面:面向语义的程序结构:例如,类图

1.3Code Churn:代码变化

1.2:源代码在物理上被组织成文件,这些文件进一步按目录进行组织;文件被封装到包中,逻辑上是组件和子系统;可复用模块以库的形式存在。包、文件、静态链接、库、测试

1.4 软件配置项、版本

 

Run-time

当一个程序在目标机器内部运行时,它是什么样子的,以及目标机器需要加载到内存中的所有磁盘文件是什么

Code-level:代码层面:逻辑实体在内存中如何呈现

Component-level:构件层面:物理实体在物理硬件环境中如何呈现

2.1  SnapshotMemory dump

 

Memory dump:程序员会查看内存缓冲区,以查看在发生故障时正在处理哪些数据项。

2.3 时序图

执行跟踪:用日志方式记录程序执行的调用次序

2.2 部署图 动态链接 数据库

2.4 在开发周期中会考虑将记录的不同类别的事件;每个事件都要分配一个唯一的“代码”来格式化和输出人类可读的消息

 

 

可执行程序CPU执行的机器可读指令的序列,以及相关的数据值。这是一个完全编译的程序,准备加载到计算机内存并执行。

库:一个库不能在目标机器上直接加载和执行;它必须首先与一个可执行程序相链接。

库:开发者像使用编程语言指令一样使用库中的功能;有操作系统提供的,编程语言(eg.SDK)提供的,第三方公司提供的,自己积累的库;编程时和build时,需要告诉JDEJVM在哪里寻找这些库;

 

静态链接:在静态链接中,库是单个对象文件的集合。在构建过程中,当链接器工具确定需要一个函数时,它会从库中提取适当的对象文件,并将其复制到可执行程序中,库被拷贝进入代码形成整体,执行的时候无需提供库文件。静态链接发生在构造阶段。

动态链接:库文件不会在build阶段被加入可执行软件,仅仅做出标记;程序运行时,根据标记装载库至内存;发布软件时,记得将程序所依赖的所有动态库都复制给用户。优点:可以升级到更新的库版本(添加特性或修复bug),而不需要重新创建可执行程序。

 

1、静态库的链接

把调要调用的函数或者过程直接链接到可执行文件(dllexe)中,成为可执行文件的一部分。该文件中包含了运行所需的全部代码。

优点:链接该静态库可执行文件(dllexe等)的使用,无需再需要该静态库。

缺点:a)当多个程序都要调用相同函数时,内存中就会存在这个函数的多个复制,存在资源浪费。b)当静态库发生修改时,不仅该静态库要从新编译,引用该静态库的模块都需要从新编译。

2、动态库的链接

动态链接调用的函数代码并没有被复制到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在操作系统的管理下,才在应用程序与相应的动态链接库(dynamic link library,dll)之间建立链接关系。当要执行调用.dll文件中的函数时,根据链接产生的重定位信息,操作系统才转去执行.dll文件中相应的函数代码。

优点:当修改动态库的代码,但重定位信息没有变化,引用该动态库的模块无需从新编译。当然,重定位信息发生改变,两者都需要从新编译。

 

软件系统的质量属性

外部质量因素影响用户;内部质量因素影响软件本身和开发者;

内部质量决定外部质量

  1. 外部质量

正确性:规约 测试与调试 防御式编程

形式化方法(通过形式化验证发现问题)

健壮性:未被spec覆盖的情况即为异常情况。

可扩展性:应对变化 简约主义,分离主义(ADTOOP,

Modularityadaptability)

可复用性:发现共性。

性能:性能毫无意义,除非有足够的正确性;对性能的关注要与其他质量属性进行折中;过度的优化导致软件不再适应变化和复用。

及时性。

  1. 内部质量

可读性,可理解性,清楚性,规模

  1. 总的来说,正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标准明确的写下来;虽然需要折中,但“正确性”绝不能与其他质量因素折中。
  2. 五个软件构造的关键性能

可复用性、易于理解、可维护性、健壮性/正确性、性能和效率

posted @ 2023-05-16 19:16  dfhkjsbc  阅读(42)  评论(0)    收藏  举报