软件工程教学做一体化教程实践环节与习题参考复习资料.docx
《软件工程教学做一体化教程实践环节与习题参考复习资料.docx》由会员分享,可在线阅读,更多相关《软件工程教学做一体化教程实践环节与习题参考复习资料.docx(44页珍藏版)》请在冰豆网上搜索。
软件工程教学做一体化教程实践环节与习题参考复习资料
软件工程教学做一体化教程参考答案
订正:
P33页:
图2.14中的“E1”与“E2”互换位置
P186页:
最后一行“B与D”订正为“B与C”
P187页:
任务的参考答案订正为“ADE”
第1章软件工程基本概念
1.1.4实践环节
答案略。
1.2.4实践环节
答案略。
习题1
一、选择题
1、C2、D3、C4、C5、D6、C7、D8、C9、B10、B
二、判断题
1、T2、T3、T4、T5、F6、T7、T8、T9、F10、F11、F12、T
三、简单题
1.什么是软件危机?
它有哪些典型表现?
如何解决软件危机?
答:
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这类问题绝不仅仅是“不能正常运行的软件”才具有的,几乎所有软件都不同程度地存在这类问题。
概括来说,软件危机包含两方面问题:
如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件产品。
具体地说,软件危机主要有下列典型表现。
1)软件开发进度难以预测,软件开发成本难以控制。
开发成本超出预算,实际进度比预定计划一再拖延。
2)用户对产品功能难以满足。
3)软件产品质量无法保证。
4)软件产品难以维护。
5)软件缺少适当的文档资料。
6)软件的成本不断提高。
7)软件开发生产率的提高赶不上硬件的发展和人们需求的增长。
为了消除软件危机,既要有技术措施,又要有组织管理措施。
软件工程正是从技术和管理两方面研究如何更有效地开发和维护计算机软件的一门新兴学科。
2.什么是软件?
什么是软件工程?
软件生命周期有哪几个时期,每个时期又分哪几个阶段?
答:
软件是计算机系统中与硬件相互依存的一部分,包括程序、数据及其说明文档。
其中程序是能够完成特定功能的指令序列;数据是程序能正常操纵信息的数据结构;文档是与程序设计、开发及维护有关的各种图文资料。
概括地说,软件工程是一门指导计算机软件开发和维护的学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把先进的、正确的管理理念和当前最好的技术结合起来,以最小经济代价开发出高质量的软件并维护它。
把软件生命周期划分为软件定义(软件计划)、软件开发和软件维护3个时期,每个时期又划分为若干个阶段。
定义时期通常进一步划分成三个阶段,即问题定义、可行性研究和需求分析。
开发时期通常由概要设计、详细设计、编码和单元测试以及综合测试组成。
软件维护时期由软件维护阶段组成。
3.常用的软件开发模型有哪几个?
试比较瀑布模型和快速原型模型的优缺点,并说明每种模型的适用范围。
答:
常见的软件开发模型有:
瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、第四代技术过程模型等。
瀑布模型有利于大型软件开发过程中人员的组织及管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。
然而软件开发的实践表明,上述各项活动之间并非完全是自上而下且呈线性图式的,因此瀑布模型存在严重的缺陷。
瀑布模型软件开发方法适合在软件需求比较明确、开发技术比较成熟、工程管理比较严格的场合下使用,如二次开发或升级型的项目。
通过建立原型,可以更好地和客户进行沟通,澄清一些模糊需求,并且对需求的变化有较强的适应能力。
原型模型可以减少技术、应用的风险,缩短开发时间,减少费用,提高生产率,通过实际运行原型,提供了用户直接评价系统的方法,促使用户主动参与开发活动,加强了信息的反馈,促进了各类人员的协调交流,减少误解,能够适应需求的变化,最终有效提高软件系统的质量。
快速原型模型软件开发方法适用于软件需求不明确的情况。
第2章可行性研究
2.1.4实践环节
答:
在软件项目开发过程中,只要资源和时间不加以限制,所有的项目基本都可以成功开发,然而,资源和时间不可能是无限的,因此,尽早对软件项目的可行性做出谨慎的评估是十分必要的。
典型的可行性研究步骤:
1)复查系统规模和目标。
2)研究目前正在使用的系统。
3)导出新系统的高层逻辑模型。
4)重新定义问题。
5)导出和评价供选择的解法。
6)推荐行动方案。
7)草拟开发计划。
8)书写文档、提交审查。
2.2.4实践环节
答案略。
2.3.4实践环节
教材订购系统的系统流程图,如下图所示:
2.4.4实践环节
机票预订系统的数据流图:
顶层DFD:
第一层DFD:
第二层DFD:
银行取款系统的数据流图:
顶层DFD:
第一层DFD:
第二层DFD:
2.5.4实践环节
答:
开发软件的成本主要是由人力决定的。
习题2
一、选择题
1、B2、B3、B4、C5、A6、B7、B8、D9、D10、C11、D12、D13、D14、A15、B
二、判断题
1、T2、T3、F4、T5、F6、F7、T8、F9、F10、T
11、T12、T13、F14、T15、F16、T17、T18、T19、T20、F
三、简答题
1.什么是系统流程图?
什么是数据流图?
二者有何区别?
答:
系统流程图是描绘物理系统的图形工具,基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文档、数据库、表格、人工过程等)。
系统流程图表达的是数据信息在系统各部件之间流动的情况,而不是对数据信息进行加工处理的控制过程,因此尽管它使用的某些符号和程序流程图中的符号相同,但是它是物理数据流图而不是程序流程图。
数据流图(DFD)是一种描述“分解”的图形化技术,它用直观的图形清晰地描绘了系统的逻辑模型,图中没有任何具体的物理元素,它仅仅描绘信息流和数据在软件中流动和处理的逻辑过程。
设计数据流图时只考虑系统必须完成的基本逻辑功能,完全不考虑怎样具体地实现这些功能。
2.画系统的数据流图时,应该注意哪些问题?
答:
分层画数据流图便于人们理解和使用,但在绘制时需要注意以下事项。
1)每个处理至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与结果。
2)图上每个元素都必须有名字,并且命名合理。
通常,为数据源点/终点命名时采用它们在问题域中习惯使用的名字(如“采购员”、“仓库管理员”等)。
处理名字应该反映整个处理的功能,而不是它的一部分功能。
处理名字最好由一个具体的及物动词加上一个具体的宾语组成。
应尽量避免使用“加工”、“处理”等空洞笼统的动词作名字。
数据流名字应代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分。
不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。
3)画数据流不是画控制流,只反映系统“做什么”,不反映“如何做”。
4)按层给处理编号。
编号表明该处理处在哪一层以及上下图父图与子图的关系(如图2.6所示)。
5)保持父图与子图平衡。
子图的输入输出数据流同父图相应处理的输入输出流必须一致。
值得注意的是,如果父图的一个输入(或输出)数据流对应于子图中几个输入(或输出)数据流,而子图中组成这些数据流的数据项全体恰好是父图中的这个数据流,那么它们仍然算是平衡的,如图2.10所示。
6)保持数据守恒。
也就是说一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或经过该加工产生的数据。
3.可行性研究报告的内容框架是什么?
1引言
1.1标识
1.2背景
1.3项目概述
1.4文档概述
2引用文件
3可行性分析的前提
3.1项目的要求
3.2项目的目标
3.3项目的环境、条件、假定和限
制
3.4进行可行性分析的方法
4可选的方案
4.1原有方案的优缺点、局限性及存在的问题
4.2可重用的系统,与要求之间的差距
4.3可选择的系统方案1
4.4可选择的系统方案2
4.5选择最终方案的准则
5所建议的系统
5.1对所建议的系统的说明
5.2数据流程和处理流程
5.3与原有系统的比较(若有原系统)
5.4影响(要求)
5.4.1设备
5.4.2软件
5.4.3运行
5.4.4开发
5.4.5环境
5.4.6经费
5.5局限性
6经济可行性(成本——效益分析)
6.1投资
6.2预期的经济效益
6.2.1一次性收益
6.2.2非一次性收益
6.2.3不可定量的收益
6.2.4收益/投资比
6.2.5投资回收周期
6.3市场预测
7技术可行性(技术风险评价)
8法律可行性
9用户使用可行性
10其他与项目有关的问题
11注解
图2.3可行性研究报告的内容框架
4.可行性研究的步骤有哪些?
典型的可行性研究步骤:
1)复查系统规模和目标。
2)研究目前正在使用的系统。
3)导出新系统的高层逻辑模型。
4)重新定义问题。
5)导出和评价供选择的解法。
6)推荐行动方案。
7)草拟开发计划。
8)书写文档、提交审查。
四、画图题
1.订货系统的数据流图:
顶层DFD:
第一层DFD:
第二层DFD:
2.根据以上描述回答下列问题:
【问题1】
使用说明中的词语,给出图2.14所示的外部实体E1~E4的名称。
订正:
把图2.14中E1与E2交换位置。
E1:
考试委员会E2:
主讲教师E3:
学生或选课学生E4:
教务处
【问题2】
使用说明中的词语,给出图2.15所示的数据存储D1~D5的名称。
D1:
学生信息文件D2:
课程单元信息文件D3:
课程信息文件D4:
课程成绩文件D5:
无效成绩文件
【问题3】
图2.15中缺少三条数据流,根据说明和顶层数据流图的信息,分别指出这3条数据流的起点与终点。
D4到4;
D1到5;
4到5。
第3章需求分析
3.1.4实践环节
答:
不正确,需求分析的工作很重要,也不简单。
3.2.4实践环节
1.答案略。
2.答案略。
3.3.4实践环节
N
M
p
m
n
n
m
n
1
1
1
教练
球队
队员
场地
裁判
管理
图3.5完整的ER图
训练
比赛
效力
支持
热心球迷
3.4.4实践环节
答案略。
3.5.4实践环节
答:
需求管理的方法主要有
1)制定需求变更控制过程
2)分析需求变更的影响
3)建立需求基准版本和需求控制版本文档
4)维护需求变更的历史记录
5)跟踪每项需求的状态
6)衡量需求稳定性
习题3
一、选择题
1、B2、A3、A4、D5、A6、D7、B8、A9、D10、C11、A12、C13、B14、D15、A
二、判断题
1、T2、F3、F4、T5、T6、F7、T8、T
三、简答题
1.需求分析的任务是什么?
答:
需求分析的任务是通过充分了解已有系统的工作概况,明确用户的各种需求,确定新系统的功能。
2.如何获取用户的需求?
答:
为了获取完整无误的需求信息,需求分析员经常使用多种技术描述需求信息。
使用的技术有三类:
非形式化技术、半形式化技术和形式化技术。
非形式化技术是获取需求的基本方法和技术,包括访谈(会谈)、场景分析(情景分析)、调查表和快速建立软件原型等。
3.软件需求规格说明书的内容框架是什么?
1范围
1.1标识
1.2系统概述
1.3文档概述
1.4基线
2引用文件
3需求
3.1所需的状态和方式
3.2需求概述
3.2.1目标
3.2.2运行环境
3.2.3用户的特点
3.2.4关键点
3.2.5约束条件
3.3需求规格
3.3.1软件系统总体功能/对象结构
3.3.2软件子系统功能/对象结构
3.3.3描述