软件系统的特性可以从多个维度进行划分,综合权威资料整理如下:
一、核心特性
功能性 软件需满足用户需求,具备实现特定功能的能力,包括适合性、准确性、互操作性等。
可靠性
在规定条件和时间内维持性能水平,具备成熟性、容错性和易恢复性。
可用性
易于理解、学习和操作,满足用户使用习惯和效率要求。
效率
资源利用优化,包括时间特性(响应速度)和资源特性(CPU、内存等)。
可维护性
易于分析、修改和测试,局部修改不影响整体功能。
可移植性
能适应不同环境(如硬件、操作系统),具备适应性和一致性。
二、系统级特性
并发性
多任务处理能力,包括多线程(并行性)和多任务调度(宏观时间间隔)。
共享性
资源(如内存、设备)的复用机制,分为互斥共享(如打印机)和同时访问(如磁盘)。
虚拟性
物理资源抽象为逻辑资源(如虚拟内存、设备模拟),提升资源利用率。
异步性
进程执行速度不可预测,系统需管理任务调度和资源分配。
三、质量模型特性
根据ISO 9126标准,软件质量包含27个子特性,涵盖功能性、可靠性、可用性、效率、可维护性、可移植性等方面。
四、其他重要特性
模块化: 系统分解为独立模块,便于维护和扩展。 可扩展性
松耦合:子系统间依赖少,修改一个不影响其他。
内聚性:功能单一且集中,降低代码重复度。
以上特性需结合具体应用场景进行权衡,例如嵌入式系统可能更注重可靠性和实时性,而通用软件则更强调易用性和可扩展性。