1 Views and Quality Objectives of Software Construction
文章目录
- 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。
- 两个level。Code-level关注代码的逻辑组织,源代码如何通过基本的块(such as functions, classes, methods, interfaces, etc)搭建起来;Component-level关注代码的物理组织,代码如何通过文件,目录,包,库文件等组织在一起的。
- 两个view。Moment view关注特定时刻软件的形态;Period view关注软件形态随时间的变化。
维度分析
- Build-time, moment, and code-level view
关注词汇、语法(AST语法分析树)、语义三个层面。
词汇 Lexical-based semi-structured source code 基于词汇的半结构化源代码
半结构化=自然语言+编程语法,方便程序员和编译器
语法 AST
将源代码编程一棵树,对树的操作等价于对源代码的操作
语义
源代码------>目标,用图形(UML)表达需求和设计思想,再转化成代码。
- Build-time, period, and code-level view
编写代码时候的代码变化。Code churn
- Build-time, moment, and component-level view
关注的是包/库。进行静态链接,库被拷贝进入代码形成整体,执行的时候无需提供库文件。
- Build-time, period, and component-level view
版本控制系统;配置项
每一部分的具体内容–》Run-time
运行阶段Run-time。
- 两个level。Code-level关注逻辑实体在内存中如何呈现;Component-level关注物理实体在物理硬件环境中如何呈现。
- 两个view。Moment view 逻辑/物理实体在内存/硬件环境中特定时刻的形态如何;Period view逻辑/物理实体在内存/ 硬件环境中的形态随时间如何变化。
动态库不会在build阶段加入可执行软件,仅做出标记,程序运行时,根据标记装在库到内存。优点:使用最新的库文件,不需要重新创建项目。程序共享一份库文件。
维度分析
- Run-time, moment, and code-level view
关注程序运行时内存情况。代码快照图Snapshot diagram,描述程序运行时内存里变量层面的状态;内存信息转储Memory dump。
- Run-time, period and code-level view
对代码执行过程中程序调用情况进行跟踪,日志。
- Run-time, moment, and component-level view
关注某时刻物理系统的情况
- Run-time, period, and component-level view
系统层面的日志。
2. 视图之间的联系
从无到有,我们关注编程中ADT/OOP的问题,代码越来越多,组成一个个库文件和包,我们关注设计问题(ADT/OOP,Reusability,Maintainability可维护性),代码构建完成,走向运行阶段,我们关注Debug,unit/integration testing,moment–>period,我们关注版本控制。
3. 软件系统的质量
外部质量因素影响用户,内部质量因素影响软件本身和它的开发者,外部质量取决于内部质量。
外部因素
- 正确性(Correctness),最重要的质量指标, 按照预先定义的“规约”执行。
- 健壮行(Robustness),能够处理异常,出现异常时不要“崩溃”;所谓异常,取决于规约,之外就是异常情况,是主观。
- 可扩展性(Extendibility),应对变化;极简主义和分离主义设计
- 可复用性(Reusability),一次开发,多次使用。寻找共性,以便未来可以直接使用这段代码。
- 兼容性
- 效率,不要过早的优化,性能在没有正确性保障的条件下是没有意义的。
- Portability(可移植性)
- Ease of use
- Functionality
- Timeliness
- Verifiability(可验证性),Integrity(完整性),Repairability(可修复性),Economy
内部因素
- LOC(lines of code)
- Cyclomatic Complexity 圈复杂度
衡量一个模块判定结构的复杂程度 - Architecture-related factors
Coupling 耦合度
Cohesion 内聚度
矛盾 - Readability
- Understandability
- Clearness
- Size
Tradeoff 权衡
正确性绝不能和其他质量因素折中。
4. Five key quality objectives of software construction
- Easy to understand: elegant and beautiful code / understandability
- Ready for change: maintainability and adaptability
- Cheap for develop: design for/with reuse: reusability
- Safe from bugs: robustness
- Efficient to run: performance
1 Views and Quality Objectives of Software Construction相关推荐
- 2021-06-29 Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标
第一章:Views and Quality Objectives of Software Construction 软件构造的多维度视图和质量目标 目标 1.从三个维度看软件系统的构成 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 ...
- 哈工大软件构造学习笔记1 Views and Quality Objectives of Software Construction
先要搞清楚软件构造的对象是什么,如何刻画,在关注如何构造. 1,Five key quality objectives of software construction 软件构造的五个关键质量目标 容 ...
- HIT Software Construction Review Notes(1-2 Quality Objectives of Software Construction)
第1章:软件构造的观点和质量目标 1.2软件构造的质量目标 1.软件系统的质量属性 外部和内部质量因素 [外部质量因素影响用户,内部质量因素影响软件本身及其开发人员,外部质量是内部质量的结果] 外部质 ...
- SCons: A software construction tool
SCons: A software construction tool What is SCons? SCons is an Open Source software construction too ...
- Maintainability-Oriented Software Construction Approaches
Maintainability-Oriented Software Construction Approaches 软件维护在软件工程中是对软件的改进 一个软件产品在交付后要纠正错误,加以改进 性能或 ...
- HIT Software Construction Review Notes(1-1 Multi-Dimensional Views of Software Construction)
第1章:软件构造的观点和质量目标 1.1软件构造的多维视图 1.多维度的软件视图: 1.分阶段--构建时和运行时的视图 2.分动态--时刻和周期的视图 3.分级别--代码和组件的视图 软件构造:视图之 ...
- Review of Software Construction
ソフトウェア構築の復習 @1.0 ver. 文章目录 ソフトウェア構築の復習 @1.0 ver. @[toc] 第一章 第一节 软件构造的多维视图 Buildtime概述 Runtime概述 第二节 ...
- HIT Software Construction Review Notes(2-2 Process, Systems, and Tools of Software Construction)
第二章 软件构造的过程和工具 2.2软件构造的过程,系统和工具 1.软件构造的一般过程 软件构造的一般过程 (1)编程 Constructionlanguages · 编程语言(例如C,C ...
最新文章
- SQL Server 2008备份数据库失败,拒绝访问的原因
- linux中进程pts 1和pts 3,termial创建时ptmx与pts的关系
- 推荐一些vue.js热门好用的框架组件
- 面试题 02.03. 删除中间节点
- Jmeter 抓app包 抓到一半不好用了
- 设计模式中类的关系之泛化(Generalization)
- [转]HTTP 错误 403.1 - 禁止访问:执行访问被拒绝。
- transformer机制讲解_Transformer在视觉领域的应用
- 有消息推送服务器的手机厂家,又一家手机厂商完成统一推送服务适配
- 编程常用英语词汇大全
- Unity3D研究院之解决ttf繁体字体不显示问题
- win10系统文件拖拽卡顿_win10系统下移动鼠标卡顿如何解决
- 诺威健康IPO招股书失效:称将继续录得巨额亏损,TPG持股74.6%
- python习题答案集
- 开源后台管理框架之AdminLTE学习
- VMware虚拟机不能全屏
- maven管理冲突jar包
- codevs 3061 质子撞击炮②
- COMMAND NOT FOUND 的两种解决方案
- Linux 配置网络桥接