文章目录

  • 1. 软件构造过程中的多维视图
    • 每一部分的具体内容--》Build-time
    • 每一部分的具体内容--》Run-time
  • 2. 视图之间的联系
  • 3. 软件系统的质量
    • 外部因素
    • 内部因素
    • Tradeoff 权衡
  • 4. Five key quality objectives of software construction

1. 软件构造过程中的多维视图


分析以下这张图:

注意构造和运行阶段level和view的含义是不相等的。我们重点关注构造阶段和运行阶段的Code-level。

每一部分的具体内容–》Build-time

编译/构造阶段Build-time

  1. 两个level。Code-level关注代码的逻辑组织,源代码如何通过基本的块(such as functions, classes, methods, interfaces, etc)搭建起来;Component-level关注代码的物理组织,代码如何通过文件,目录,包,库文件等组织在一起的。
  2. 两个view。Moment view关注特定时刻软件的形态;Period view关注软件形态随时间的变化。

维度分析

  1. Build-time, moment, and code-level view

关注词汇、语法(AST语法分析树)、语义三个层面。

词汇 Lexical-based semi-structured source code 基于词汇的半结构化源代码

半结构化=自然语言+编程语法,方便程序员和编译器

语法 AST


将源代码编程一棵树,对树的操作等价于对源代码的操作

语义

源代码------>目标,用图形(UML)表达需求和设计思想,再转化成代码。

  1. Build-time, period, and code-level view

编写代码时候的代码变化。Code churn

  1. Build-time, moment, and component-level view

关注的是包/库。进行静态链接,库被拷贝进入代码形成整体,执行的时候无需提供库文件。

  1. Build-time, period, and component-level view

版本控制系统;配置项

每一部分的具体内容–》Run-time

运行阶段Run-time

  1. 两个level。Code-level关注逻辑实体在内存中如何呈现;Component-level关注物理实体在物理硬件环境中如何呈现。
  2. 两个view。Moment view 逻辑/物理实体在内存/硬件环境中特定时刻的形态如何;Period view逻辑/物理实体在内存/ 硬件环境中的形态随时间如何变化。

动态库不会在build阶段加入可执行软件,仅做出标记,程序运行时,根据标记装在库到内存。优点:使用最新的库文件,不需要重新创建项目。程序共享一份库文件。

维度分析

  1. Run-time, moment, and code-level view

关注程序运行时内存情况。代码快照图Snapshot diagram,描述程序运行时内存里变量层面的状态;内存信息转储Memory dump

  1. Run-time, period and code-level view

对代码执行过程中程序调用情况进行跟踪,日志。

  1. Run-time, moment, and component-level view

关注某时刻物理系统的情况

  1. Run-time, period, and component-level view

系统层面的日志。

2. 视图之间的联系

从无到有,我们关注编程中ADT/OOP的问题,代码越来越多,组成一个个库文件和包,我们关注设计问题(ADT/OOP,Reusability,Maintainability可维护性),代码构建完成,走向运行阶段,我们关注Debug,unit/integration testing,moment–>period,我们关注版本控制

3. 软件系统的质量

外部质量因素影响用户,内部质量因素影响软件本身和它的开发者,外部质量取决于内部质量。

外部因素

  1. 正确性(Correctness)最重要的质量指标, 按照预先定义的“规约”执行。
  2. 健壮行(Robustness),能够处理异常,出现异常时不要“崩溃”;所谓异常,取决于规约,之外就是异常情况,是主观。
  3. 可扩展性(Extendibility),应对变化;极简主义和分离主义设计
  4. 可复用性(Reusability),一次开发,多次使用。寻找共性,以便未来可以直接使用这段代码。
  5. 兼容性
  6. 效率,不要过早的优化,性能在没有正确性保障的条件下是没有意义的。
  7. Portability(可移植性)
  8. Ease of use
  9. Functionality
  10. Timeliness
  11. Verifiability(可验证性),Integrity(完整性),Repairability(可修复性),Economy

内部因素

  1. LOC(lines of code)
  2. Cyclomatic Complexity 圈复杂度
    衡量一个模块判定结构的复杂程度
  3. Architecture-related factors
    Coupling 耦合度
    Cohesion 内聚度
    矛盾
  4. Readability
  5. Understandability
  6. Clearness
  7. Size

Tradeoff 权衡

正确性绝不能和其他质量因素折中。

4. Five key quality objectives of software construction

  1. Easy to understand: elegant and beautiful code / understandability
  2. Ready for change: maintainability and adaptability
  3. Cheap for develop: design for/with reuse: reusability
  4. Safe from bugs: robustness
  5. Efficient to run: performance

1 Views and Quality Objectives of Software Construction相关推荐

  1. 2021-06-29 Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标

    第一章:Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标 目标 1.从三个维度看软件系统的构成 2.用什么样的 ...

  2. SC Chapter 1:Views and Quality Objectives of Software Construction Review

    Chapter 1: Views and Quality Objectives of Software Construction 1.1 Multi-Dimensional Views of Soft ...

  3. 哈工大软件构造学习笔记1 Views and Quality Objectives of Software Construction

    先要搞清楚软件构造的对象是什么,如何刻画,在关注如何构造. 1,Five key quality objectives of software construction 软件构造的五个关键质量目标 容 ...

  4. HIT Software Construction Review Notes(1-2 Quality Objectives of Software Construction)

    第1章:软件构造的观点和质量目标 1.2软件构造的质量目标 1.软件系统的质量属性 外部和内部质量因素 [外部质量因素影响用户,内部质量因素影响软件本身及其开发人员,外部质量是内部质量的结果] 外部质 ...

  5. SCons: A software construction tool

    SCons: A software construction tool What is SCons? SCons is an Open Source software construction too ...

  6. Maintainability-Oriented Software Construction Approaches

    Maintainability-Oriented Software Construction Approaches 软件维护在软件工程中是对软件的改进 一个软件产品在交付后要纠正错误,加以改进 性能或 ...

  7. HIT Software Construction Review Notes(1-1 Multi-Dimensional Views of Software Construction)

    第1章:软件构造的观点和质量目标 1.1软件构造的多维视图 1.多维度的软件视图: 1.分阶段--构建时和运行时的视图 2.分动态--时刻和周期的视图 3.分级别--代码和组件的视图 软件构造:视图之 ...

  8. Review of Software Construction

    ソフトウェア構築の復習 @1.0 ver. 文章目录 ソフトウェア構築の復習 @1.0 ver. @[toc] 第一章 第一节 软件构造的多维视图 Buildtime概述 Runtime概述 第二节 ...

  9. HIT Software Construction Review Notes(2-2 Process, Systems, and Tools of Software Construction)

    第二章 软件构造的过程和工具 2.2软件构造的过程,系统和工具 1.软件构造的一般过程 软件构造的一般过程 (1)编程 Constructionlanguages ·       编程语言(例如C,C ...

最新文章

  1. SQL Server 2008备份数据库失败,拒绝访问的原因
  2. linux中进程pts 1和pts 3,termial创建时ptmx与pts的关系
  3. 推荐一些vue.js热门好用的框架组件
  4. 面试题 02.03. 删除中间节点
  5. Jmeter 抓app包 抓到一半不好用了
  6. 设计模式中类的关系之泛化(Generalization)
  7. [转]HTTP 错误 403.1 - 禁止访问:执行访问被拒绝。
  8. transformer机制讲解_Transformer在视觉领域的应用
  9. 有消息推送服务器的手机厂家,又一家手机厂商完成统一推送服务适配
  10. 编程常用英语词汇大全
  11. Unity3D研究院之解决ttf繁体字体不显示问题
  12. win10系统文件拖拽卡顿_win10系统下移动鼠标卡顿如何解决
  13. 诺威健康IPO招股书失效:称将继续录得巨额亏损,TPG持股74.6%
  14. python习题答案集
  15. 开源后台管理框架之AdminLTE学习
  16. VMware虚拟机不能全屏
  17. maven管理冲突jar包
  18. codevs 3061 质子撞击炮②
  19. COMMAND NOT FOUND 的两种解决方案
  20. Linux 配置网络桥接

热门文章

  1. NOIP2013落谷P1311选择客栈题解
  2. Win7 2008 禁用IPV6
  3. 智能教育深度学习推荐系统---1.1.概述
  4. Cilium网络概述
  5. Vitepress(一):基础教程
  6. 网页解析之xpath
  7. 【调试原理】逆向peid-判定vc
  8. 2018-Self-Attention with Relative Position Representations
  9. 【汇编】 INT 21H 命令
  10. matlab美白磨皮源代码,PS人物美白磨皮动作及脚本Delicious Skin 2.0 (含视频教程)