zoukankan      html  css  js  c++  java
  • 【软件构造】第一章 软件构造基础(2)

    二.软件构造的质量目标

    1. 外部属性(主要):影响用户感受,如外观、速度等

    1)正确性:符合规格范围和计划目标

    ·只保证各个层面的正确性(假设调用正确)

    ·检验与调试

    ·防御性编程

    ·形式化编程

    2)健壮性:响应规格范围外的异常情况

    ·提示错误信息

    ·正常退出或降级

    3)可扩展性:提供增加新功能的空间

    ·固化需求以规避风险

    ·设计简洁、离散化

    4)可复用性:使软件模块能够被其他程序使用

    ·模式固化

    5)兼容性:跨平台、跨软件交互

    ·使用标准文件格式、数据结构、接口,保持一致性

    ·定义一套标准的访问协议

    6)效率:程序运行过程中对CPU、内存、硬盘等的占用情况

    ·优化过程中正确性优先,在各个指标间进行权衡

    ·良好的算法、 I/O技术、内存管理

    ·将问题抽象便于处理,去掉一层抽象便于优化

    7)可移植性:从一个环境转移到另一个环境

    8)易用性:不影响专业用户的前提下便于初学者使用

    ·结构清晰的设计

    ·理解用户的界面

    9)功能性:软件提供功能的多少

    ·蠕变特征:竞争导致程序冗杂混乱

    ·更新原则:保证整体质量处于稳定水平

    ·渐进式开发

    10)其他

    ·及时性:高效率大致完成以占领市场

    ·可验证性:保证软件的效果

    ·完整性:各个模块间不会被非法访问所干扰

    2. 内部属性(次要):影响外部属性,针对开发人员

    1)代码可读性

    2)圈复杂度:用来衡量一个模块判定结构的复杂程度

    3)耦合度/内聚度:追求低耦合、高内聚

    3. 均衡决策

    1)经济性与功能性相矛盾

    2)性能与可移植性、可复用性相矛盾

    3)及时性与延展性相矛盾

    4. 重要属性

    1)可读性

    ·构建-代码-时刻

    - 代码的可理解性(命名标准、代码布局与风格、注释、复杂度)

    - 函数规约

    - 评审、演练

    ·构建-组件-时刻:构建/项目的可理解性(包、文件的组织和命名空间)

    ·构建-代码-周期:重构

    ·运行-代码-时刻:日志跟踪

    (2)可复用性

    ·构建-代码-时刻

      - ADT/OOP

      - 接口与实现分离

      - 继承/重载/重写

      - 组合/代理

      - 多态

      - 子类型与泛型编程

      - OO设计模式

    ·构建-组件-时刻

      - API设计

      - 类库

      - 框架(可复用)

    (3)可扩展性

    ·构建-代码-时刻

      - 模块化设计

      - 聚合度/耦合度

      - OO设计模式

      - 格式化、规范化、语法化编程

    ·构建-组件-周期:软件版本控制

    (4)可靠性(正确性 && 健壮性)

    ·构建-代码-时刻
      - 异常处理

      - 防御编程

      - 先验程序

    ·构建-组件-时刻:

      - 单元测试

      - 集成测试

    ·构建-周期:回归测试

    ·运行-时刻:调试转储

    ·运行-周期:日志跟踪

    (5)性能

    ·构建-代码-时刻:设计模式

    ·运行-代码-时刻

      - 空间复杂性(内存管理)

      - 时间复杂性(算法性能)

      - 代码调优

    ·运行-组件-时刻:分布式系统

    ·运行-代码-周期:性能分析和调整

    ·运行-组件-周期:并行/多线程程序

  • 相关阅读:
    nginx的linux服务器内核参数调整【转】
    从运维角度来分析mysql数据库优化的一些关键点【转】
    10 个 MySQL 经典错误【转】
    keepalived的vip无法ping通【原创】
    MySQL数据库的锁详解【转】
    CGI,FastCGI,PHP-CGI与PHP-FPM区别详解【转】
    vim块编辑删除、插入、替换【转】
    Keepalived两节点出现双VIP情况及解决方法【原创】
    通过全备+relaylog同步恢复被drop的库或表【转】
    MySQL伪master+Binlog+同步【转】
  • 原文地址:https://www.cnblogs.com/zhangyushuqing/p/8502587.html
Copyright © 2011-2022 走看看