软件工程期末复习知识点整理.doc
文本预览下载声明
复习整理
一、绪论
软件的定义
软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档)
软件工程的定义
是指导计算机软件开发和维护的一门工程学科;
采用工程化的原理与方法对软件进行计划、开发和维护;
把证明正确的管理技术和最好技术综合运用到软件开发中;
研究经济地开发出高质量的软件方法和技术;
研究有效维护软件的方法和技术。
软件危机的概念,及出现的原因
软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
产生原因:
⑴ 软件规模越来越大,结构越来越复杂
⑵ 软件开发管理困难而复杂。
⑶ 软件开发费用不断增加。
⑷ 软件开发技术落后。
⑸ 生产方式落后,仍采用手工方式。
⑹ 开发工具落后,生产率提高缓慢。
三种编程范型的特点
(1) 过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小
(2) 面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对象,粒度比较大
(3) 基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大
二、软件生存周期与软件过程
软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动
定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期
目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。
主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护(P19)
软件生命周期划分为哪几个阶段
软件生命周期分为三个时期八个阶段:
软件定义:问题定义、可行性研究;
软件开发:需求分析、概要设计、详细设计、编码、测试;
软件运行:软件维护
瀑布模型的特点和缺陷
特点:线性模型,每一阶段必须完成规定的文档(阶段间的顺序性和依赖性)
优点:
可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证的。
缺点
如果需求规格说明与用户需求之间有差异,很可能导致最终开发出的软件产品不能真正满足用户的需要。(瀑布模型几乎完全依赖于书面的规格说明)
由于多数用户不熟悉计算机,系统分析员对用户的专业也了解不深,因而很难在在开发的初始阶段彻底弄清软件需求。(瀑布模型只适用于项目开始时需求已确定的情况)
几种软件开发模型的主要特点
开发模型 特点 适用场合 瀑布模型 线性模型,每一阶段必须完成规定的文档 需求明确的中、小型软件开发 快速原型模型 用户介入早,通过迭代完善用户需求,应用快速开发工具 需求模糊的小型软件开发 增量模型 每次迭代完成一个增量,可用于OO开发 容易分块的大型软件开发 螺旋模型 典型迭代模型,重视风险分析,可用于OO开发 具有不确定性的大型软件开发 构件集成模型 软件开发与构件开发平行进行,主要用于OO开发 领域工程、行业的中型软件开发
软件可行性研究的目的和内容
目的:是弄清待开发的项目是不是可能实现和值得进行
内容:经济可行性,技术可行性,运行可行性,法律可行性
三、结构化分析(重点)P71
结构化分析SA模型的组成
结构化分析的基本步骤
1.了解当前系统的工作流程,获取当前系统的物理模型。
2.抽象出当前系统的逻辑模型。
3.建立目标系统的逻辑模型。
4.作进一步补充和优化。
绘制数据流图DFD的注意点
①父图与子图的平衡,即父图的输入输出数据流与子图的输入输出数据流一致
②区分局部文件和局部外部项
③分解的速度不宜过快
④按规则命名加工编号
⑤提高数据流图的易懂性,合理分解
决策表、决策树的绘制
例题:邮寄包收费标准如下:若收件地点在1000公里以内,普通件每公斤2元,挂号件每公斤3元。若收件地点在1000公里以外,普通件每公斤2.5元,挂号件每公斤3.5元;若重量大于30公斤,超重部分每分斤加收0.5元。
请绘制收费的原始决策表,并对其进行优化,得到优化后的决策表,再绘制出决策树(重量用W表示)
决策表(判定表):
决策树(判定树):
结构化的三种控制结构
顺序、选择、循环DO_WHILE
流程图、N-S图和PDL的特点,通过PDL语言绘制流程图和N-S图
例题:将三个数从小到大排序
流程图:
N-S图:
给定一个系统,用结构化分析方法进行分析,画出DFD、DD
四、面向对象及UML
面向对象的基本特征
抽象、封装、继承、多态
静态、
显示全部