软件概述
- 程序 –> 软件 –> 应用
- 架构(Architecture)
- 硬件(Hardware)
- 外设(Peripheral)
- 程序(Program)
- 固件(Firmware)
- 软件(Software)
- 系统软件(System Software)
- 中间件(Middleware)
- 应用软件(Application Software)
- 应用软件是一种程序,它通常叫做应用程序(Application Program)
- 软件开发
- 规范(Specification)
- 文档(Documentation)
- 约束(Constraint)
- 实现(Implementation)
- 模块化(Modularity)
- 接口(Interface)
- 行为(Behavior)
- 验证(Verification)
- 软件质量
- 正确性(Correctness)
- 易用性(Ease of Use)
- 高性能(High Performance)
- 软件设计的困难之处
- 层次结构 –> 模块的分解、组合
- 外部变化 –> 接口、行为的变更
- 外部相关 –> 软件依赖于其他软件、编程语言、硬件
软件的形式化
- 软件的形式化 –> 代数驱动设计(Algebra-Driven Design)
- 规范 –> 将软件抽象为代数系统,将约束抽象为公理
- 实现 –> 根据规范,实现代数系统
- 验证 –> 根据规范,证明实现满足公理
- 例子——大学课程时间表的应用