武汉理工软件工程导论期末
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程导论复习
题型及分值
单选题(20分)20x1
判断题(10分) 10x1
问答题(25分)5x5
应用题(45分) 7+8+8+10+12
一、软件工程的基本概念(PPT 1-2章)
1.软件危机(产生的原因)
(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(2)软件危机主要有以下表现:
a.对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见。
b.用户对“已完成”系统不满意的现象经常发生。
c.软件产品的质量往往靠不住。Bug一大堆,Patch一个接一个。
d.软件的可维护程度非常之低。
e.软件通常没有适当的文档资料。
f.软件的成本不断提高。
g.软件开发生产率的提高赶不上硬件的发展和人们需求的增长。
(3)产生原因:一方面是与软件本身的特点有关;另一方面是由软件开发和维护的方法不正确有关。
(4)消除软件危机的途径:
a.对计算机软件有一个正确的认识(软件≠程序)。
b.必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
c.推广使用在实践中总结出来的开发软件的成功技术和方法。
d.开发和使用更好的软件工具。
e.加强软件管理。
2.软件的特点有哪些?
(1)软件是一种逻辑实体,而不是具体的物理实体,它具有抽象性;
(2)软件的生产与硬件不同;
(3)大多数软件是定制的;
(4)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题;
(5)软件的开发和运行常常受到计算机系统的限制对计算机系统有着不同程度的依赖性;
(6)软件开发至今尚未完全摆脱手工艺的开发方式;
(7)软件是复杂的;
(8)软件成本相当昂贵;
(9)相当多的软件工作涉及到社会因素。
3.软件工程?软件工程的目标? (……)
(1)定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
(2)软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:
a.实现预期的软件功能,达到较好的软件性能,满足用户的需求。
b.增强软件过程的可见性和可控性,保证软件的质量。
c.提高所开发软件的可维护性,降低维护费用。
d.提高软件开发生产率,及时交付使用。
e.合理预算开发成本,付出较低的开发费用。
4.软件生存周期模型?主要的模型类型?(……)
(1)软件生命周期:软件生存周期大体可分为如下几个活动:问题定义、可行性研究、需求分析、设计、编码、测试、运行和维护。
(2)典型的软件过程模型有:
瀑布模型(waterfallmodel)
演化模型(evolutionary model)
增量模型(incremental model)
原型模型(prototyping model)
螺旋模型(spiral model)
喷泉模型(water fountain model)
基于构件的开发模型(component-baseddevelopment model)
形式方法模型(formal methods model)
5.软件工程强调(文档化、规范化)? (……)
(1)软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。(2)文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。
二、可行性研究及需求分析
1.可行性研究的目的
(1)用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。
(2)说明该软件开发项目的实现在技术上、经济上和社会条件上的可行性;评述为合理地达到开发目标可能选择的各种方案。
2.需求分析的任务、方法、工具
(1)任务:需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
(2)方法:
a.访谈
b.面向数据流自顶向下求精
c.简易的应用规格说明技术
d.快速建立软件原型
(3)工具:
3.数据流图(作用)
(1)定义:
数据流图(Data FlowDiagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
数据流图英文缩写DFD(DataFlow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
(2)作用:
a.便于用户表达功能需求和数据需求及其联系;
b.便于两类人员共同理解现行系统和规划系统的框架;
c.清晰表达数据流的情况;
d.有利于系统建模.
4.判断表、判断树
(1)判断表:如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适。
以“检查发货单”为例:
(2)判断树:判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直