软件工程复习总结

一、软件工程概述

什么是软件,软件与程序的区别

软件=程序+数据结构+文档

程序是一系列命令代码的集合
软件是指一个计算机系统有关程序、过程和有关文档的完整集合

什么是软件危机?其产生的原因

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

  • 用户需求不明确
  • 缺乏正确的理论指导
  • 软件开发规模越来越大
  • 软件开发复杂度越来越高

软件工程的概念及研究内容

软件工程是采用工程的概念、原理、技术、和方法,并结合正确的管理技术和当前能够得到的最先进的技术方法,经济高效地开发和维护软件的一门工程学科。

研究的内容主要是软件开发技术和软件开发管理

软件生存周期的概念及划分

从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程,成为软件生命周期

  • 定义时期
    1. 问题定义
    2. 可行性研究
    3. 需求分析
  • 开发时期
    1. 总体设计
    2. 详细设计
    3. 编码和单元测试
    4. 综合测试
  • 维护时期
    • 维护

常见的软件生存周期模型(各个模型特点)

  1. 瀑布模型
  2. 快速原型
  3. 增量模型
  4. 螺旋模型
  5. 喷泉模型
  6. 变换模型和基于组件的模型

传统软件工程与面向对象软件工程的各自特点

传统软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件。

面向对象软件工程把对象作为融合了数据及在数据上的操作行为的统一的软件构件,把所有对象都划分成了类,按照父类(基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统,对象彼此之间仅能通过发送消息相互联系。

二、可行性研究

可行性研究的任务

可行性研究最根本的任务是对以后的行动方针提出建议,若问题值得解,则推荐一个好的解决方案,并制定一个初步的工程计划。若问题没有可行的解,则建议停止开发工程。
可行性研究的步骤

(1)分析系统的目的;
(2)分析当前系统的状况;
(3)当前系统的业务流程;
(4)分析当前系统的不足;
(5)提出新的目标系统;
(6)检查目标系统是否满足要求;
(7)制定新系统的技术方案;
(8)方案分析比较,对不同的系统开发方案进行分析、比较和论证,选择合理的方案;
(9)推荐方案;
(10)编制新系统的开发计划;
(11)编制可执行的研究报告。

典型的可行性研究:

  1. 复查并确定系统规模和目标
  2. 研究目前正在使用的系统
  3. 建立新系统的高层逻辑模型
  4. 导出和评价各种方案
  5. 推荐可行的方案
  6. 草拟初步的开发计划
  7. 编写可行性研究报告提交审查

会绘制业务流程图

三、需求分析

需求分析的任务是什么?

确定对目标系统提出的完整、真确、清晰、而且具体的需求

需求分析的步骤

- 确定系统的综合需求
- 分析系统的数据要求
- 创建软件的逻辑模型
- 编写软件需求规格说明书
- 需求验证

结构化分析方法(SA)的要点

结构化分析方法使用简单易读的符号,根据软件内部数据传递、变更的关系,以“分解”和“抽象”为基本原则,按照自顶向下、逐层分解的分析策略,描绘满足功能要求的软件模型。适用于数据处理类型软件,利用半形式化工具“数据流图”和“数据字典”表达需求,简明易懂。

数据流图的作用及绘制要领

数据流图描绘数据在软件中从输入移动到输出的过程中所经受的变换,没有任何具体的物理元素。

分层绘制,采用自顶向下、逐层分解的原则,直到功能细化为止,形成若干层次的数据流图。

面向对象的分析方法(OOA)

是把实体-联系图中的概念与面向对象程序设计语言中的概念结合在一起,形成一种分析方法。面向对象分析的关键是识别、定义问题域内的类与对象,并分析它们之间的关系,根据问题域中的操作规则建立模型。

掌握用例图建模方法

用例模型的建立是由开发者和客户共同协商完成的,通过讨论需求的规格说明达成共识,明确系统的基本功能。

数据字典概念

数据字典是描述数据的信息的集合,是对系统中使用的所有数据元素的定义的集合,是数据流图的补充工具。