[Software Construction] Chapter 1

Chapter 1   Views and Quality Objectives of Software Construction

                                                                                                                                  


一、软件构造多维视图

0. 软件系统的组成

    软件=程序+数据+文档

    软件=模块(组件)+数据/控制流


1. 软件构造的三个维度
阶段phrases构建->运行  (build-& run-time)
动态dynamics时刻->周期 (moment & period)
级别levels代码->组件 (code & component) 

 Ø -> Code :    

    -Programming / Coding(Chapter 3 ADT/OOP)

    -Review,static analysis / Checking(Chapter 4 Understandability)

 Code -> Component :

    -Design(Chapter 3 ADT/OOP,Chapter 5 Reusability,Chapter 6 Maintainability)

    -Build : compile,  static link,package,install,clean(Chapter 2 Construction Process)

Build-time -> Run-time:

    -Install / Deploy

    -Debug,unit / integration testing(Chapter 7 Robustness)

Moment ->Period:

    -Refactoring(Chapter 9 Refactoring)

    -Version Control(Chapter 2 SCM)

    -Loading,dynamic linking, interpreting,execution (dumping, profiling,logging)(Chapter 8 Performance)

     



二、 软件构造阶段划分、各阶段活动

1.构建j阶段

      Build-time: idea -> requirement -> design -> code -> installable/exe package


    -Code(Moment):源代码--基本程序块(如函数、类、方法、接口)及其依赖关系进行逻辑组织

    -Component(Moment):源代码--文件、目录、包、库及其依赖关系组织进行物理组织,

                                    体系结构--软件包如何部署到物理环境(OS,network,hardwork,etc)

    -Code(Period) : 添加、修改、删除一版本到另一版本文件

    -Component(Period) :  版本控制和软件演变


2.运行阶段

  

    -Code(Moment) :快照图--描述目标计算机程序运行时内存里变量层面的状态

                               内存信息转储--将被内部错误或信号中止的程序内存的内容拷贝到硬盘的一个文件

    -Component(Moment) :软件包的物理部署

    -Code(Period) : 执行日志追踪

    -Component(Period) : 软件追踪(开发)事件记录(管理)

    Library:存储于磁盘文件,一系列可跨程序可用的代码函数的集
System.out.println("hello World");
     库来源:操作系统提供、编程语言提供、第三方公司、自己积累
     整合库到exe程序:静态链接和动态链接
     exe程序:机器可读、cpu可执行的指令和相关数据
     静态链接:发生在构造阶段、库被拷贝进代码,无需提供库文件
     动态链接:可直接升级库,无需重建exe文件、多人共享


三、内/外部的质量指标

1.外部质量指标

    -正确性:按照预先定义规约完成

    -健壮性:恰当反应异常

    -可扩展性:应对软件规约的变化

    -可复用性:一次开发多次使用

    -兼容性:不同软件系统间易相互集成

    -效率:对硬件资源占用较少

    -可移植性:方便在不同技术环境下移植

    -易用性:客户易学、安装、操作、监控

    -功能性:不合时宜的趋势,累赘功能

    -及时性:预知市场需求

    -可验证性、完整性、可修复性、经济性

2.内部质量指标

    -可读性

    -复杂度:模块复杂程度

    -高内聚性/低耦合度:模块内部紧密,外部联系松散


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值