软件工程基础知识总结(期末复习)

一、软件

软件的演变历程

  1. 软件是一个发展的概念。
    不同时期对软件的解释有所不同,这是由于软件的功能、开发方式以及使用方式在不断发生变化,因而对它的解释也在发展。

软件是什么

  1. 软件是一种工具
    (1)科学计算
    (2)商业计算和数据处理
    (3)计算和信息处理
  2. 软件的核心是程序
    (1)软件 = 程序 文档 数据
    (2)编程是软件开发的核心活动,一个软件工程师必须首先能够很好的编程。

软件的分类

  1. 按软件作用划分
  2. 按软件功能划分
  3. 按软件规模划分
  4. 按软件工作方式划分
  5. 按软件服务对象的范围划分
  6. 按软件应用领域划分

二、软件危机

软件危机的定义:

  1. 在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机的主要特征

  1. 软件不满足用户需求
    (1)软件需求分析不充分,开发出的系统与实际需求有距离
  2. 软件质量难于保证
    (1)软件质量保证技术(审查、复审、程序正确性证明和测试)还没有坚持不懈地应用到软件开发的全过程
    (2)投入使用后经常出故障
  3. 软件缺乏文档资料
    (1)软件不仅仅是程序,还应有一整套与程序代码完全一致的文档资料
  4. 软件难以维护
    (1)维护难度较大
    (2)维护成本过高
  5. 软件开发生产率无法满足人们对软件的生产要求
    (1)不能充分利用现代计算机硬件提供的巨大潜力
  6. 软件开发成本和进度估计不准确
    (1)开发成本超出预算
    (2)实际进度一再拖延
  7. 软件的成本不断提高
    (1)硬件下降:微电子技术的进步和生产自动化程度的提高
    (2)软件上升:需要大量人力、软件规模和数量不断扩大

软件工程是什么

  1. 软件工程是一种工程活动
  2. 软件工程是科学性、实践性与工艺性并重的

软件工程层次图

软件工程的目标

  1. 低成本,高质量

软件工程的基本原则(Boehm七条)

  1. 分阶段计划、严格管理
  2. 阶段审查
  3. 产品控制
  4. 采用现代程序设计技术
  5. 结果清晰审查
  6. 开发小组小而精
  7. 承认不断更新、改进是必要的

软件生命周期

  1. 需求开发(需求工程师>>>>>软件解决方案)
    (1)需求获取:理解应用背景
    (2)需求分析:明确问题和目标
    (3)需求定义:定义软件解决方案
    (4)需求验证:确保能够解决问题和满足目标
    (5)需求管理
  2. 软件设计(软件设计师>>>>>软件构建方案)
    (1)软件总体设计
    1)将软件系统划分为不同的子系统或模块,确定各子系统和模块的功能
    2)明确各子系统和模块对外交互方式与接口,满足需求并符合重要的设计约束。
    3)软件总体设计原型
    4)软件总体设计说明
    (2)软件详细设计
    1)在总体设计的基础上,定义重要的过程、类方法、数据结构或者复杂算法,满足该模块所担负的职责
    2)软件详细设计说明
    (3)人机交互设计
    1)建立系统与用户之间的交互机制
  3. 软件构造(程序员>>>>>软件产品)
  4. 软件测试
  5. 软件交付
    (1)安装与部署
    (2)培训用户并提供文档支持
    (3)项目总结和项目评价
  6. 软件维护
    (1)移除缺陷
    (2)适应环境变化
    (3)提高软件质量
    (4)满足新的需求

来源:https://www.icode9.com/content-4-788601.html

(0)

相关推荐