软件工程

1.软件概述

软件的概念及特点

  • 软件与程序:
    • 程序是人们为了完成特定功能而编制的一组指令集
    • 软件不仅包括程序,还包括程序的处理对象-数据,以及文档
  • 软件具有的一些特点:
    • 软件是一种逻辑实体,具有抽象性
    • 软件的生产与硬件的制造不同,是被开发或设计的
    • 软件在使用工程中不会磨损
    • 软件的开发尚未完全摆脱手工的开发方式
    • 软件的开发和运行必须依附于特定的计算机系统环境

软件的分类

软件工程_第1张图片


软件工程

软件工程的概念

IEEE对软件工程的定义为:1)将系统化、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。2)对1中所述方法的研究

具体来说,软件工程是以借鉴传统工学的原则和方法,以提高质量,降低成本为目的,指导计算机软件开发和维护的工程学科,这是一种层次化的技术。从上至下依次是:工具层,方法层,过程层,质量保证层。

软件生存周期

软件生产周期的概念

一般分为六个阶段:

  • 可行性研究
  • 需求分析
  • 软件设计
  • 编码阶段
  • 软件测试
  • 软件维护

软件生存周期模型

瀑布模型:线性,不可回溯

  • 优点:过程模型简单,执行容易
  • 缺点:无法适应变更

原型模型:快速而准确的获得需求

  • 优点:简单快速
  • 缺点:成本高,不易于创新

增量模型:每个增量分别开发

  • 优点:成本小,风险小
  • 缺点:项目管理难度大

演化模型:显式地把增量模型扩展到需求阶段,为了构造第二个增量,使用第一个增量来精化需求

  • 优点:易对需求做出更改
  • 缺点:风险大

螺旋模型:开发过程分为制定计划,风险分析,实施开发和用户评估四类活动

  • 优点:降低项目开发的风险,
  • 缺点:一个周期执行时间太长,需要借助自动化工具

2.可行性研究与需求分析

可行性研究

可行性研究的步骤:

  • 明确系统目标
  • 分析研究现行系统
  • 设计新系统的高层逻辑模型
  • 获得并比较可行的方案
  • 撰写可行性研究报告

需求分析

需求分析的步骤:

  • 需求获取
  • 分析建模
  • 需求描述
  • 需求验证

结构化需求分析方法:分解+抽象

步骤:

  • 建立当前系统的具体模型
  • 抽象当前系统的逻辑模型
  • 建立当前系统的逻辑模型

结构化分析建模:

  • 实体联系图(E-R图):实体,属性,联系
  • 数据流图(DFD图):外部实体,数据流,数据变换,数据存储
  • 数据字典(DD图):数据项,数据流,数据文件,数据库
  • 状态迁移图(STD):实时系统

3.软件设计

软件体系结构的五种模型:

  • 结构模型
  • 框架模型
  • 动态模型
  • 过程模型
  • 功能模型

软件质量属性:系统属性,商业属性,框架属性

内聚:一个模块内部各组成部分的处理动作的组合强度,块内联系

耦合:两个模块之间的相互依赖关系,块间关系

你可能感兴趣的:(软件工程)