目录
一、多维度软件视角
软件具有生态环境:软件、硬件、网络……
软件:需求→计划→分析→设计→实现→测试→维护
1.构造阶段:idea→requirement→design→code→package
代码是由功能、方法、类接口等多个基本编程模块逻辑组织起来的
Library:开发者像使用编程指令一样使用库中的功能
链接:编程时和build时,需告诉IDE和JVM在哪里寻找某些库
静态链接发生在构造阶段
2.运行阶段
运行时程序被载入目标机器,开始执行。
软件运行时的高级概念:
可执行程序、库、配置和数据文件、分布式程序
动态链接:库文件在build阶段仅仅做出标记,程序运行时根据标记装载库至内存,发布软件时,将程序所依赖的所有动态库都复制给用户
二、软件系统的质量属性
外部质量因素影响用户,内部质量因素影响软件本身和它的开发者(外部质量取决于内部质量
1.外部因素:
正确性、健壮性、可扩展性、可复用性、兼容性、性能、可移植性、易用性、功能性、及时性、可验证性、完整性、可修复性、经济性
2.内部因素
圈复杂度、耦合度、内聚度
3.折中
正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标准明确的写下来(但正确性不能与其他质量因素折中
最重要的质量因素:正确性、健壮性、可扩展性、可复用性
三、软件构造的5个关键质量目标
代码便于理解、开发便宜、低复杂度(便于修改)、正确且健壮(无bug)、效率高