软件构造博客三( 二 )


3.(可扩展性) 定义:对软件的规约进行修改,是否足够容易的程度 。规模越大,扩展起来越不容易 。目的是为了变化 。两个准则(为了可扩展性):简约主义设计,分离主义设计
4.(可复用性) 一次开发,多次使用 找到不同问题之间的共性
5.(兼容性) 不同的软件系统之间相互可容易的集成 兼容性很重要因为开发设计不在真空中,所以需要相互联系 方法:保持设计的同构性并标准化
6.(性能) 性能包括很多内容,最常见的就是时间复杂度和空间复杂度 。性能毫无意义,除非有足够的正确性 。– 对性能的关注要与其他质量属性进行折中 – 过度的优化导致软件不再适应变化和复用 过早优化是万恶之源
7.(可移植性) 软件可方便的在不同的技术环境之间移植 硬件、操作系统中的移植
8.Ease of use(易用性) 容易学、安装、操作、监控 给用户提供详细的指南
9.(功能性) 每增加一小点功能,都确保其他质量属性不受到损失 。程序设计中一种不适宜的趋势,即软件开发者增加越来越多的功能,企图跟上竞争,其结果是程序极为复杂、不灵活、占用过多的磁盘空间 。
3.2(内部质量因素)
codesuch as Lines of Code (LOC),(圈复杂度), etc -such as (耦合度), (内聚度), etc Read (可读性)(可理解性) (清晰性) Size(大小)
3.3 Trade-off(质量折中)
正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标准明确的写下来 。虽然需要折中,但“正确性”绝不能与其他质量因素折中 。最重要的几个质量因素
and : (可靠性)and : (可延展性和可复用性) OOP(面向对象编程)提高质量的方法 : (封装), (分权) : , error (异常处理)
总结
这里对文章进行一些总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了多维度视图、阶段划分、各阶段的构造活动、内部/外部的质量指标等知识概况,方便大家复习整理,梳理更好的知识体系结构 。