软件工程导论期末复习
. 第一章第一章 软件工程学概述软件工程学概述 1.1.什么是软件危机(概念)什么是软件危机(概念) 在计算机软件的开发和维护过程中所遇到的一系列严重问题 2.2.软件工程学科出现的主要原因软件工程学科出现的主要原因 :软件危机的出现 3.3.什么是软件工程?(概念)什么是软件工程?(概念) ① 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应 用于软件; ② 研究①中提到的途径。 4.4.简述结构化范型和面向对象范型的要点,并分析他们的优缺点简述结构化范型和面向对象范型的要点,并分析他们的优缺点 目前使用得最广泛的软件工程方法学(2 种) : ⑴⑴传统方法学传统方法学:也称为生命周期方法学或结构化范型。 优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立, 而且比较简单,便于 不同人员分工协作,从而降低了整个软件开发过程的困难程度。 缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候, 开发出 的软件往往不成功;而且维护起来仍然很困难。 ⑵⑵面向对象方法学面向对象方法学 优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作; 促进了软件重用。 5.5.软件生命周期每个阶段的基本任务软件生命周期每个阶段的基本任务 问题定义:准确地回答“要解决的问题是什么” 可行性研究:确定问题是否值得去解决 需求分析 :准确地回答“系统必须做什么” 总体设计:设计出实现目标系统的几种可能的方案 确定程序由哪些模块组成以及模块间的关系 详细设计:把解法具体化(设计出程序的详细规格说明) 编码和单元测试:写出正确的容易理解、容易维护的程序模块 综合测试:通过各种类型测试(及相应的调试)使软件达到预期的要求 软件维护:通过各种必要的维护活动使系统持久地满足用户的需要 软件生命周期由软件定义、软件开发和运行维护(也成为软件维护)3 个时期组成 软件定义时期:问题定义、可行性研究和需求分析 软件开发时期:总体设计、详细设计、编码和单元测试、综合测试 软件维护时期 . . 6.6.什么是软件过程?(概念)什么是软件过程?(概念) 为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 7.7.常见的软件生存周期模型(了解)常见的软件生存周期模型(了解) 1. 1.瀑布模型瀑布模型——阶段化过程 特点:具有顺序性和依赖性 缺点: 是由文档驱动的。 由于瀑布模型几乎完全依赖于书面的规格说明, 很可能导致最终开发出的软件产品不能真 正满足用户的需要。 2. 2.快速原型模型快速原型模型——线性顺序进行 本质:快速 不带反馈环 原型的用途是获知用户的真正需求, 一旦需求确定了,原型可以抛弃,当然也可以在原 型的基础上进行开发。 3. 3.增量模型增量模型(也称为渐增模型) 4. 4.螺旋模型螺旋模型 螺旋模型将瀑布模型和快速原型模型结合起来,加入了两种模型均忽略了的风险分析, 弥补了这两种模型的不足。 4 个象限:目标设定、风险估计与弱化、开发与验证、计划 螺旋模型是风险驱动——增加风险分析 主要适用:内部开发的大规模软件项目 5. 5.喷泉模型喷泉模型 适用于:面向对象范型的过程模型 软件过程必须支持反馈和迭代。 . . 第二章第二章 可行性研究可行性研究 1.1.一般来说,至少应该从下述一般来说,至少应该从下述 3 3 个方面研究可行性个方面研究可行性 技术可行性、经济可行性、操作可行性 必要时还应该从法律、社会效益等更广泛的方面研究 2.2.需求和设计过程需求和设计过程 3.3.什么是数据流图(什么是数据流图(DFDDFD)(概念)(名词解释))(概念)(名词解释) 一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 4.4.数据流图由数据流图由 4 4 个元素构成个元素构成 正方形(或立方体)数据的源点或终点; 圆角矩形(或圆形)变换数据的处理; 开口矩形(或两条平行横线)数据存储(数据静态保存) ④箭头数据流,即特定数据的流动方向 5.5.看例题看例题 P42 2.4.2P42 2.4.2 6.6.什么是数据字典(概念)(名词解释)什么是数据字典(概念)(名词解释) 对数据流图中包含的所有元素的定义的集合 7.7.数据的关系,采用下列符号数据的关系,采用下列符号 + + 和(连接两个分量) 例如,x=a+b,表示 x 由 a 和 b 组成 [ ][ ]或 (从方括弧内列出的若干个分量中选择一个) ,通常用“ | | ”号隔开供选择的分量 例如,x={a,b},x+{a/b},表示 x 由 a 或由 b 组成 { }{ } 重复(重复花括弧内的分量) 注:常常使用上限和下限进一步注释表示重复的花括弧 例如,x={a},表示 x 由 0 个或多个 a 组成 ( )( ) 可选(圆括弧里的分量可有可无) 8.8.货币的时间价值——随着年数上升货币的时间价值——随着年数上升 通常用利率的形式表示货币的时间价值。 假设年利率为 i,如果现在存入 P 元,则 n 年后可以得到的钱数为:F=P(1+i)n 反之,如果 n 年后能收入 F 元钱,那么这些钱的现在价值是:P=F/(1+i)n 9.9.什么是投资回收期?什么是投资回收期? 投资回收期就是使累计的经济效益等于最初投资所需要的时间 通常用投资回收期衡量一项开发工程的价值 . . 10.10.什么是纯收入什么是纯收入 衡量工程价值的另一项经济指标是工程的纯收入, 也就是在整个生命周期之内系统的累 计经济效益(折合成现在值)与投资之差。 第三章第三章 需求分析需求分析 需求分析最终结果是产生规格说明书 1.1.什么是需求分析(概念)什么是需求分析(概念) 需求分析是发现、求精、建模、规格说明和复审的过程 2.2.需求分析分为需求分析分为 功能需求和非功能需求 3.3.与用户沟通获取需求的方法(了解)与用户沟通获取需求的方法(了解) ⑴访谈⑴访谈——用户处于被动地位 访谈(或称为会谈)是最早开始运用的获取用户需求的技术, 也是迄今为止仍然广泛使用 的需求分析技术 访谈有两种基本形式,分别为是正式的和非正式的访谈 正式访谈时,系统分析员将提出一些事先准备好的具体问题。 在非正式访谈中, 分析员将提出一些用户可以自由回答的开放性问题, 以鼓励被访问人 员说出自己的想法。 ⑵面向数据流自顶向下求精⑵面向数据流自顶向下求精——用户处于被动地位 数据是需求分析的出发点 结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法 目标:把数据流和数据存储定义到元素级 方法:从数据流图的输出端着手分析 可行性研究阶段产生的是高层数据流图 从数据流图的输出端着手分析,这是因为系统的基本功能是产生这些输出的关键原因 输出数据决定了系统必须具有的最基本的组成元素(包括功能和数据结构组成) . . ⑶⑶简易的应用规格说明技术简易的应用规格说明技术 这种方法提倡用户也开发者密切合作、 共同标示问题、提出解决方案要素,商讨不同方 案并指定基本需求。 它不是万能灵药 优点:要求开发者与用户不分彼此,齐心协力,密切合作 即时谈论并求精 有能导出规格说明