软件设计师教程(八)计算机系统知识-软件工程基础知识

软件设计师教程

软件设计师教程(一)计算机系统知识-计算机系统基础知识
软件设计师教程(二)计算机系统知识-计算机体系结构
软件设计师教程(三)计算机系统知识-计算机体系结构
软件设计师教程(四)计算机系统知识-程序设计语言基础知识
软件设计师教程(五)计算机系统知识-数据结构
软件设计师教程(六)计算机系统知识-操作系统知识
软件设计师教程(七)计算机系统知识-操作系统知识


软件工程基础知识

  • 软件设计师教程
  • 软件工程概述
    • 计算机软件
    • 软件工程基本原理
    • 软件生存周期
    • 软件过程
      • 能力成熟度模型(CMM)
      • 能力成熟度模型集成(CMMI)
  • 软件过程模型
    • 瀑布模型
    • 增量模型
    • 演化模型
      • 原型模型
      • 螺旋原型
    • 喷泉模型
    • 基于构建的开发模型
    • 形式化方法模型
    • 统一过程(UP)模型
    • 敏捷方法
  • 需求分析
    • 软件需求
    • 需求分析原则
    • 需求工程
  • 系统设计
    • 概要设计
      • 设计软件系统总体结构
      • 数据结构及数据库设计
    • 详细设计

软件工程概述

就是为了更好的管理软件开发,提出了一系列的标准技术与方法。

计算机软件

系统软件、应用软件、工科/科学软件、嵌入式软件、产品线软件、Web应用、人工智能软件、开放计算、网络资源、开源软件

软件工程基本原理

  1. 用分阶段的生命周期计划严格管理:项目概要计划、里程杯计划、项目控制计划、产品控制计划、验证计划和运行维护计划。
  2. 坚持进行阶段评审:每个阶段都应进行严格地评审。
  3. 实现严格的产品控制:软开开发的时候不应该随意变动,要实行基准配置管理。
  4. 采用现代程序设计技术:方法大于力气
  5. 结果应能清楚地审查:明确规定开发小组的责任和产品标准
  6. 开发小组的人员应少而精:沟通效率会随着人员的增加而增加
  7. 承认不断改进软件工程实践的必要性:不断地去更新方法,不断地积极采用新的软件开发技术,拥抱变化。

软件生存周期

  1. 可行性分析与项目开发计划
  2. 需求分析
  3. 概要设计
  4. 详细设计
  5. 编码
  6. 测试
  7. 维护

软件过程

能力成熟度模型(CMM)

  1. 初始级
  2. 可重复级
  3. 已定义级
  4. 已管理级
  5. 优化级

能力成熟度模型集成(CMMI)

阶段式模型和连续式模型

  1. 阶段式模型,组织的成熟度
  2. 连续式模型关注每个过程域的能力

软件过程模型

瀑布模型

软件生存周期中的各个活动规定为依线性顺序连接的托干阶段模型
软件设计师教程(八)计算机系统知识-软件工程基础知识_第1张图片

进化以后变这样
软件设计师教程(八)计算机系统知识-软件工程基础知识_第2张图片
因为是单向的,客户必须要明确地表达自己的想法。

增量模型

需求拆分,逐渐迭代
软件设计师教程(八)计算机系统知识-软件工程基础知识_第3张图片

演化模型

但要是客户是个三哑哑,那就不行了,因为需求常变来变去。

原型模型

出一版,看样子再改改,就是比较费程序员
软件设计师教程(八)计算机系统知识-软件工程基础知识_第4张图片
分为探索、实验、演化。

螺旋原型

  1. 制订计划
  2. 分险分析
  3. 实施工程
  4. 用户评估
    软件设计师教程(八)计算机系统知识-软件工程基础知识_第5张图片

喷泉模型

各个阶段没有明显的界限,可以同步进行。
软件设计师教程(八)计算机系统知识-软件工程基础知识_第6张图片

基于构建的开发模型

利用预先包装的构建来构造应用系统
软件设计师教程(八)计算机系统知识-软件工程基础知识_第7张图片

形式化方法模型

生成计算机软件形式化的数学规格说明

统一过程(UP)模型

用力和风险驱动,以架构为中心,迭代并且增量。

  1. 起始阶段
  2. 精华阶段
  3. 构建阶段
  4. 移交阶段

敏捷方法

尽可能早地、持续地对有价值的软件的交付
极限编程、水晶法、并列争求法、自适应软件开发、敏捷统一过程

需求分析

软件需求

功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全使用需求、可靠性需求、软件成本消耗与开发进度需求、其他非功能性需求。

需求分析原则

  1. 必须能够表示和理解问题的信息域。
  2. 必须能够定义软件将完成的任务。
  3. 必须能够表示软件的行为
  4. 必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细节
  5. 分析过程应该从要素信息移向细节信息

需求工程

需求获取、需求分析与协商、系统建模、需求规约、需求验证以及需求管理

系统设计

  1. 面向数据流的结构化设计方法(SD)
  2. 面向对象的分析方法(OOD)

概要设计

设计软件系统总体结构

将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。

数据结构及数据库设计

  1. 数据结构的设计
  2. 数据库的设计
  3. 编写概要设计文档
  4. 评审

详细设计

  1. 模块算法设计
  2. 模块数据结构进行设计
  3. 数据库物理设计
  4. 其他设计
  5. 编写设计说明书
  6. 评审

你可能感兴趣的:(#,《软件设计师教程》,软件工程)