2006学年第二学期期终考试《软件工程》课程 试卷B
班级: 姓名: 学号: 成绩:
一、多项选择题(每小题2分,共24分)
1、 画分层DFD图的基本原则有( ACD )。
A、数据守恒原则 B、 分解的可靠性原则 C、子、父图平衡的原则 D、 数据流封闭的原则 2、 提高程序效率的根本途径在于( BC )。
A、 编程时对程序语句进行调整 B、 选择良好的设计方法 C、 使程序最大限度的简洁 D、 选择良好的数据结构与算法 3、软件工程管理的对象是( B )。
A、 软件开发人员 B、 软件工程项目 C、 软件开发过程 D、 软件开发速度 4、软件测试的主要特点是( AC )。
A、 软件测试的开销大 B、 软件测试要依靠工具 C、 软件不能进行“穷举”测试 D、 软件测试要依靠人工 5、以下属于完善性维护的有( BD )。
A、 解决开发是未能测试各种可能条件带来的问题 B、 增加联机求助命令
C、 缩短系统的应答时间,使其达到特定要求 D、 为软件的运行增加监控设施 6、CMM 表示( A )。
A、 软件过程成熟度模型 B、 软件过程工业化控制 C、 国际软件质量认证 D、 软件统一性标准 7、UML 语言支持的建模方式有( ABD )。
A、 静态建模 B、 动态建模 C、 模块化建模 D、 功能建模
8、在E-R 模型中,包含以下基本成分( C )。
A、 数据、对象、实体 B、 控制、联系、对象 C、 实体、联系、属性 D、 实体、属性、联系
第 1 页 (共5页) (软件工程B卷)
9、画DFD 图的主要目的是( AD )。
A、 作为需求分析阶段用户与开发者之间交流信息的工具 B、 对系统的数据结构进行描述 C、 对目标系统的层次结构进行描述 D、 作为分析和设计的工具
10、自底向上的成本估算法的特点是( B )。
A、 简单、工作量小、误差大
B、 精度高,但缺少子任务(模块)间的联系 C、 估算较精确,但区分类比较困难 D、 复杂、不可行,一般不采用此种方法 11、以下属于完善性维护的有( BD )。
A、解决开发时未能测试各种可能条件带来的问题; B、增加联机求助命令;
C、缩短系统的应答时间,使其达到特定要求; D、为软件的运行增加监控设施。
12、为使程序中数据说明更易于理解和维护,必须遵循以下原则( ABC )。
A、数据说明的次序应当规范化;
B、一个语句说明多个变量时,各变量名按字母顺序排列; C、对于复杂的数据结构,要加注释,说明在程序实现时的特点; D、定义变量名应按字母顺序排列。 二、简答题(每小题10分,共30分)
1、什么是需求分析?需求分析阶段的基本任务是什么? 2、等价分类法的基本思想是什么?
3、为什么面向对象的开发方法为软件IC(软件集成)及软件重用技术提供了良好的环境? 三、问题描述为:储户用存折取款,首先填写取款单,根据“帐卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“帐卡”,同时发出付款通知,出纳向储户付款。
请确定系统的类,并给出你认为最重要的2-3 个类的描述模板。(20分) 四、现在有一个医院病房监护系统,用户提出的系统功能要求如下:
在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中
第 2 页 (共5页) (软件工程B卷)
央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警,通知值班医生及时进行处理,同时立即打印病人的病情报告和更新病历。(共26分)
1、 分别画出采用结构化分析方法和UML 建模语言建立的需求分析模型(只画顶层)。 2、 以医院病房监护系统为例,分析比较结构化开发方法与面向对象的开发方法的主要特点,结合该实例说明:为什么面向对象的开发方法更加优越。
参考答案
二、简答题(每小题10分,共30分)
1、什么是需求分析?需求分析阶段的基本任务是什么?
答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的 基础上,进一步了解、确定用户需求。准确地回答“系统必须做什么?” 的问题。获得 需求规格说明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和 软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的 关系。
需求分析的基本任务包括:
(1)抽取需求分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求 抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方 法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的 知识获取等。
(2)模拟和分析需求需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模 型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需 求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又 分为企业模拟、功能需求模拟和非功能需求模拟等。
(3)传递需求传递需求的主要任务是书写软件需求规格说明。
(4)认可需求就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和 冲突求解两方面。常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些 只能用人的因素去控制。
(5)进化需求客户的需要总是不断(连续)地增长,但是一般的软件开发又总是落后于客 户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。对于传统的变化 管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件 家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不 一致性, 并进行关于变化的推理。 2、等价分类法的基本思想是什么?
答:根据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”, 从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类 其他值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中 其他测试用例也会有错误。
第 3 页 (共5页) (软件工程B卷)
3、为什么面向对象的开发方法为软件IC(软件集成)及软件重用技术提供了良好的环境? 答:软件复用是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
复用的软件成分—称为可复用构件(Reusable Component),可以从旧软件中提取,也可以专门为复用而开发。
面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。支持复用的OO 概念与原则是:对象与类、抽象、封装、继承与一般——特殊结构、整合与整体——部分结构、粒度控制、多态性。
对象与类:OO 方法用对象描述问题域中的事务,并用类作为同种对象的抽象表示。类是系统的基本构成单位,它符合可复用构件所应具备的那些特性:完整性、独立性、可标识性、一般性、抽象、封装:尤其是OO 方法的对象封装性,为软件复用技术提供了良好的条件。而继承机制本质上就是一种复用机制,因此面向对象方法为软件复用提供了一个良好的环境。
三、问题描述为:储户用存折取款,首先填写取款单,根据“帐卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“帐卡”,同时发出付款通知,出纳向储户付款。
请确定系统的类,并给出你认为最重要的2-3 个类的描述模板。(20分) 答:确定系统的类:
储户、存折、取款单、帐卡、储户存款数据库、付款
四、现在有一个医院病房监护系统,用户提出的系统功能要求如下:
在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警,通知值班医生及时进行处理,同时立即打印病人的病情报告和更新病历。(共26分)
1、 分别画出采用结构化分析方法和UML 建模语言建立的需求分析模型(只画顶层)。 2、 以医院病房监护系统为例,分析比较结构化开发方法与面向对象的开发方法的主要特点,结合该实例说明:为什么面向对象的开发方法更加优越。 1.
第 4 页 (共5页) (软件工程B卷)
2. 面向对象的方法具有以下主要特点:
①对软件开发过程所有阶段进行综合考虑。 ②软件生存期各阶段所使用的方法、技术具有高度的连续性,用符合人类认识世界的思维方式来分析、解决问题。
在医院病房监护系统中,一但建立了系统的USE CASE 模型后,无论在需求分析、软件设计,甚至实现阶段,所建立的静态模型和动态模型都具有相同的描述方式,描述模型的一致性,不仅为开发者带来方便,也更直观的描述系统的特性。
而结构化方法,是以数据流、数据封闭性为基础,从对数据进行加工的角度进行需求分析,建立分层的DFD 图(如上图)。而在软件总体设计阶段,则用模块结构图来进行描述,详细设计阶段又是新的描述方式(如N-S 图、PAD 图等),总之,由于不同阶段有不同的描述方式,需要进行多次转换,不仅为开发者带来诸多不便,也影响了对系统直观、准确的描述。
第 5 页 (共5页) (软件工程B卷)
因篇幅问题不能全部显示,请点此查看更多更全内容