Skip to content

导论

一、软件定义与构成

软件是由程序/指令、数据和描述三部分构成的产品。程序/指令是可执行部分,包含源码和程序;数据涵盖输入、内部、输出及配置信息,存储于内存、文件或数据库;描述则是专业化软件开发必需的部分,用于说明开发和使用方法。考勤记录表不属于软件构成内容。

二、软件特性

  1. 智力密集型:软件开发全程依赖人工,缺乏标准化流水线,管理难度大,高度依赖人员、产品和过程。
  2. 易变性磨损:软件修改会导致潜在缺陷积累,与物理产品磨损机制不同,需低成本变更策略。
  3. 高度定制化:用户需求多样,如Hub系统、电量预测系统等,装配式开发面临挑战。

三、软件分类

  1. 按产品性质
    • 通用软件:面向大众销售,如操作系统、办公软件,需求由开发方定义。
    • 定制软件:按合同为特定客户开发,如企业信息系统,需求由客户主导。
  2. 按应用领域
    • 系统软件:为其他软件提供基础服务,如操作系统、编译器。
    • 交互式事务处理:支持实时交互,如企业管理系统、电商平台。
    • 嵌入式软件:集成于硬件设备,如工业控制系统、智能家居。
    • 批处理软件:后台处理大规模数据,如银行结算、工资发放系统。
    • 工程/科学软件:用于数值计算与仿真,如气象预测、航空模拟。
    • 娱乐软件:以游戏为代表,强调艺术创意与用户体验。

四、软件工程核心框架

  1. 定义:系统化、规范化、可量化的方法应用于软件开发、运行和维护,以及对这些方法的研究。
    • 系统化:全流程覆盖工程方法。
    • 规范化:遵循成熟方法论与纪律。
    • 可量化:通过数据监控质量与过程。
  2. 关键内容
    • 基础概念:构成软件的基本要素。
    • 原则:指导开发各环节的准则。
    • 方法:具体活动的实施路径。
    • 工具:支撑开发与管理的技术手段。
    • 质量关注点:贯穿全生命周期的质量控制。

五、软件工程基本方法

  1. 理解问题:明确需求、范围、约束条件。
  2. 计划方案:设计技术路线与资源分配。
  3. 方案实施:将设计转化为可运行产品。
  4. 结果检查:验证是否符合需求与质量标准。

软件工程通过系统化方法应对软件复杂性,平衡效率、质量与成本,是现代软件开发的核心方法论。