软件构造less1

文章探讨了软件构造的多维度理解,包括根据阶段、动态性和层级的划分,强调了视图间的转换。同时,提到了软件质量的重要性,如正确性、健壮性、可扩展性、可读性和高效性,并讨论了如何通过不同的编程方法和设计原则来实现这些质量目标。此外,还介绍了代码调用分析、版本控制和软件实体在内存及物理环境中的呈现。
摘要由CSDN通过智能技术生成

1.软件构造的多维视图和质量目标

课程目标

1.从三个维度理解软件系统的构成
2.了解用什么模型来描述软件系统的形态和状态
3.将软件构造看作不同视图之间的转换
4.了解软件构造过程中应考虑的重要志良目标
5.如果达不到期望的质量目标会有什么后果
6.有哪些面向质量指标的软件构造技术

目录

1.多维度软件视图

划分依据part1part2
根据阶段划分构建阶段0运行阶段1
根据动态性划分时刻0阶段1
根据层级划分代码层0构件1
2.视图之间的转变

内容

0.0.0:

源代码由基本程序块逻辑组织构成
由三个相互关联测层次评估:

  • 面向词汇的源代码:半结构化的源代码
  • 面向语法的程序结构:ATS
  • 面向语义的程序结构

0.1.0

代码修改

0.0.1

层面过程
物理源代码->文件->包
逻辑源代码->构建、子系统
最终结果(通用的)源代码->库中的模块
编程时,通过调用库,站在巨人的肩膀上编程
两种将库集成到可执行程序的方法
  • 静态链接:在构造阶段将库拷贝进入代码形成整体
  • 动态链接

0.1.1

软件实体随时间的变化产生版本的概念
版本控制

1.0.0

逻辑实体在内存中如何呈现

  • 完全解释型:运行时全部源代码载入内存并解释执行
  • 编译型:预先编译成为可执行文件,脱离原码运行
  • 解释型:被解释,但在运行时使用字节码
    java需要被编译成字节码后被JVM解释执行,既解释又编译
    java采用动态链接,在运行的时候进行类的加载和链接。
    代码快照:描述程序运行时内存里变量层面的状态

1.1.0

代码调用分析
通常用于调试和debug

1.0.1

物理实体在物理环境中如何呈现
事件日志:为系统管理员提供了用于诊断和审计的有用信息。

软件系统的质量特征

外部因素:用户
内部因素:软件本身和开发者
外部质量取决于内部质量
1.外部质量特征:

  • 正确性:即是否按照spec执行
    是最重要的质量指标
    保证正确性的途径:测试和debugging
    防御式编程:例如类型和断言,旨在写程序的时候就保证正确性
    形式化的方法:通过验证发现问题

  • 健壮性:出现错误情况系统不会崩溃而会产生针对错误的响应
    针对异常情况的处理,是对正确性的补充
    正确性负责spec内的情况,健壮性负责spec外的异常

  • 可扩展性:对spec的修改是否容易
    应对软件未来可能面对的升级和变化
    提升拓展性的价值

    • 设计简约
    • 分离主义
  • 可复用性:一次开发多次使用

  • 高效性:
    高效建立在其他特征的基础上,锦上添花,切勿画蛇添足

  • 及时性:软件在需要之前发布

2.内部质量特征

  • 可读性
  • 易理解性
  • 清晰性
  • 尺寸

3.在质量属性之间平衡
在保证正确性的前提下
4.软件构造的5个关键目标

  • 易读
  • 易开发
  • 容易修改、易扩展
  • 健壮性
  • 高效
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值