HIT软件构造笔记一

软件构造复习笔记一
1.1软件构造过程中的多维度视图
1、多维度视图
在这里插入图片描述

(1) Build-time, moment, and code-level view 关注的是源码的组织情况,可在词汇(源码)、语法(抽象语法树)、语义(类图)三个层面分别分析。

(2) Build-time, period, and code-level view 关注的是代码的变化(Code churn代码变化)

(3) Build-time, moment, and component-level view 关注的是包/库,而且是静态链接库

(4) Build-time, period, and component-level view 关注代码的更迭,与(2)中不同的是,这个维度下更关注文件版本的变化,而不是具体语句的变化(2中关注的是哪一行代码被修改了)

(5) Run-time, moment, and code-level view 关注的是程序在某个时间点内存中的情况,如代码快照图(Code Snapshot)、内存信息转储(Memory dump)。

(6) Run-time, period and code-level view 关注的是代码的执行情况,执行跟踪

(7) Run-time, moment, and component-level view 关注的也是包/库,但却是在代码执行过程中的情况,如动态链接库

(8) Run-time, period, and component-level view 关注的是系统的使用情况,使用日志查看
2、视图之间的联系
在这里插入图片描述
代码是一个从无到有的过程,也就空集 -> Code,而有了代码之后程序必定会随着代码行的增加而逐步完善,最后被封装,也就是Code->Component这个过程。当程序构建成功后需要运行,也就是Build-time->Run-time,最后我们还可能需要多次修改调整程序,或者记录程序版本变化,也就需要Moment->Period维度的转变。

1.2 Quality Objectives of Software Construction

  1. 软件系统的质量
    外部质量因素
    (1)正确性
    正确性是软件产品能够正确的执行任务的能力,是首要的质量目标。保证正确性的途径是有条件的。
    一个软件系统设计多个层面,所以不可能仅仅靠每个构件和属性的正确性来保证整体的正确性,各层之间是相互依赖的。

(2)健壮性
健壮性是软件系统对异常情况做出适当反应的能力。
健壮性补充了正确性。
正确性解决了系统在其规范所涵盖的情况下的行为;
健壮性描述了在该规范之外发生的事情。
健壮性是确保如果出现此类情况,系统不会导致灾难性事件;它应生成适当的错误消息,干净地终止执行,或进入所谓的“优雅降级”模式。
健壮性同异常情况相关,异常或非异常取决于程序的规格说明,异常情况是程序的规格说明中没有涉及的部分。
判断是否异常是异常的标准,不取决于客观的正确标准,而取决于程序的规格说明。

(3)可扩展性
可扩展性是指软件易于调整以适应变化的能力。可扩展性同规模密切相关,越大越难以扩展。
软件是易变的,需要可扩展性。
传统方法最初冻结需求,假设没有变化,因此难以适应变化
两个提高可扩展性的原则:
简单的体系结构总是比复杂的体系更容易适应变化。
模块自治性越强,变化时对其余模块影响越小。

(4)重用性
软件经常遇到相似的模式,利用共性,避免重复实现。

(5)兼容性
兼容性是指软件元素易于与其他的组合。因为我们的软件并非运行在真空中,但难点在于不同的软件有不同的设定。所以,解决兼容性的关键是标准性,例如规定文件格式、数据结构、用户接口等。更通用的方法是通过协议来实现更通用的兼容性。

(6)效率
效率是软件系统对硬件资源尽可能少的需求的能力,但前提是软件的正确性,并且需要与其他目标进行权衡。

(7)可移植性
可移植性是指便于将软件产品转移到各种硬件和软件环境。

(8)易用性
用户可以轻松掌握软件的使用,也包括安装、运行和监控的容易度 。既方便初学者入门,也不影响熟练的用户直接使用。一个关键是结构要简洁,理解用户,换位思考,站在用户的角度设计软件。

(9)功能性
增加功能的同时也要防止陷入“蠕变特性”,即程序设计中一种不 适宜的趋势,即软件开发者增加越来越多的功能,企图跟上竞争,其 结果是程序极为复杂、不灵活、占用过多的磁盘空间 。过多的新功能容易带来一 致性的缺失,影响易用性 。
在质量提升技术的帮助下,可以在整个项目中保持质量水平不变,而不仅仅 是功能性。

(10)及时性
及时性是指软件系统能够在用户需要时或者需要需要之前发布

内部质量因素
圈复杂度:用来衡量一个模块判定结构的复杂程度 。
耦合度:设计中追求高内聚和低耦合。
可读性、易理解性、清晰度、复杂度、体积
内部质量因素通常用作外部质量因素的部分度量。

正确性是绝不能与其他质量因素折中的!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值