第一章:课程概述
1.1 软件危机
1.1.1 计算机软件的四个发展阶段
程序设计阶段、程序系统阶段、软件工程阶段、面向对象阶段
1.1.2 什么是软件危机(考点)
软件危机是指在计算机软件的开发和维护过程种所遇到的一系列严重问题。
1.1.3 软件危机产生时间(考点)
20 世纪60年代
1.1.4 软件危机需要解决的两个问题
①如何快速地开发软件,满足对软件日益增长地需求
②如何维护数量不断膨胀地已有软件
1.1.5 软件危机的具体表现
- 对软件开发成本和进度的估计不准确;
- 质量不可靠;
- 不可维护;
- 没有适当的文档资料;
- 软件成本在计算机系统总成本中所占的比例逐年上升。
1.1.6 软件危机的产生原因: (考点)
(1)与软件本身的特点有关。
(2)与软件开发和维护的方法不正确有关。←主要原因
1.2 软件工程
1.2.1 什么是软件工程(考点)
软件工程是指采用工程地概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量地软件并有效地维护它。
1.2.2 软件工程目的
实现按预期的进度和经费完成软件生产计划,提高软件的生产率和可靠性
1.2.3 软件工程方法学三要素(考点)
方法: 是指完成软件开发的各项任务的技术方法,既回答”怎么做“的问题
工具: 是指为运用方法而提供的自动或者半自动的软件工程支撑环境
过程: 需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤
1.2.4 软件工程方法学之传统方法学(考点)
采用结构化技术,将任务划分为多个阶段,然后顺序地完成每个阶段地任务,每个阶段地任务相互独立,且前一个阶段是后一个阶段的前提和基础。
缺点:
使用传统方法学开发的软件,维护起来仍然困难
数据与操作分离
传统方法学的三大模型:功能模型(数据流图)、数据模型(E-R图)、行为模型(状态转换图)
1.2.5 软件工程方法学之面向对象方法学(考点)
把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法
面向对象方法学的三大模型: (简答)
是什么? | 定义是什么? | 工具是什么? |
---|---|---|
对象模型 | 表示静态的、结构化的系统的“数据”性质 | 类图 |
动态模型 | 表示动态的、行为化的系统的“控制”性质 | 状态图 |
功能模型 | 表示变化的系统的“功能性质” | 用例图 |
1.2.6 形式化方法学
是一种基于形式化数学变换的软件开发方法,将系统的规格说明转换为可执行的程序
1.3 软件生命周期
1.3.1 三个时期,八个阶段(考点)
制定计划——解决什么问题,目标及其可行性(技术、人员、财力、社会)
需求分析——做什么、验收标准
总体设计——怎么做
详细设计——具体怎么做
程序编写——实现
软件测试——保证软件质量
运行/维护——保证正常而可靠地运用
1.3.2 为什么要进行阶段划分(考点)
把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理
1.3.3 软件维护在软件生命周期中占比60%(重点)
1.4 软件过程
1.4.1 瀑布模型
特点:
- 阶段间具有顺序性和依赖性
- 推迟实现的观点:清楚区分逻辑设计和物理设计,尽可能推迟程序的物理实现
- 质量保证的观点:瀑布模型每个阶段必须先完成规定文档,每个阶段结束前都要对完成的文档进行评审
缺点:(考点)
- 由文档驱动(缺点也是特点)
- 不能适用于用户需求变动
1.4.4 快速原型模型
以某个软件原型为参照模型的开发方法,叫做原型法。在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中收集客户意见,修改原型,再让客户试用,反复循环几次,直到客户确认为止。
1.4.5 螺旋模型(考点)
螺旋模型就是在每个阶段开始之前都增加了风险分析的快速原型模型。
第二章:可行性研究
2.1 可行性研究的任务(考点)
2.1.1 可行性研究的目的
用最小的代价在尽可能短的时间内确定问题是否能够解决,不是解决问题,而是确定问题是否值得去解决。(即找出最优解)
2.1.2 可行性研究的实质
进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。
2.1.3 可行性研究的内容
1、首先进一步分析和澄清问题定义,导出系统的逻辑模型;
2、然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案);
3、对每种解法都研究它的可行性,至少应该从三方面研究每种解法的可行性 。
2.1.4 可行性研究的主要方面:
1、技术可行性,使用现有的技术能实现这个系统吗?
2、经济可行性,这个系统的经济效益能超过它的开发成本吗?
3、操作可行性,系统的操作方式在这个用户组织内行得通吗?
2.2 可行性研究过程
- 复查系统规模和目标
- 研究目前正在使用的系统
- 导出新系统的高层逻辑模型
- 进一步定义问题
可行性研究的前4个步骤实质上构成一个循环。 - 导出和评价供选择的解法
- 推荐行动方针
- 草拟开发计划
- 书写文档提交审查
2.3 系统流程图
2.3.1 系统流程图概念
系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统