软工历年考题(加答案)
- 格式:doc
- 大小:308.04 KB
- 文档页数:24
计算机软考历年真题及答案历年软考软件设计师经典真题及答案1.软件水平成熟模型(CMM)是当前国际上最流行、最实用的软件生产过程标准和软件企业成熟度的等级认证标准。
该模型将软件水平成熟度自低到高依次划分为初始级、可重复级、已定义级、已管理级、优化级。
从( )开始,要求企业建立基本的项目管理过程的政策和管理规程,使项目管理工作有章可循。
A.初始级B.可重复级C.已定义级D.已管理级参考答案:C2.一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”,RUP用( )来表述“谁做”。
A. 角色B. 活动C. 制品D. 工作流参考答案:A3.RUP 在每个阶段都有主要目标,并在结束时产生一些制品。
在( )结束时产生“在适当的平台上集成的软件产品”。
A. 初期阶段B. 精化阶段C. 构建阶段D. 移交阶段参考答案:C4.RUP分为4个阶段,每个阶段结束时都有重要的里程碑,其中生命周期架构是在( )结束时的里程碑。
A.初期阶段B. 精化阶段C. 构建阶段D. 移交阶段参考答案:A5.ISO/IEC 9126 软件质量模型中第一层定义了六个质量特性,并为各质量特性定义了相对应的质量子特性。
子特性( )属于可靠性质量特性。
A.准确性B. 易理解性C. 成熟性D. 易学性参考答案:C6.结构化开发方法中,数据流图是( )阶段产生的成果。
A. 需求分析B. 总体设计C. 详细设计D. 程序编程参考答案:A例如:学籍管理系统的数据流图例如:学籍管理系统的顶层图7.下列要素中,不属于DFD的是( )。
当使用DFD对一个工资系统实行建模时,( )能够被认定为外部实体。
(1)A.加工 B.数据流 C.数据存储 D.联系(2)A.接收工资单的银行 B.工资系统源代码程序C.工资单D.工资数据库的维护参考答案:D、A8.【说明】某公司拟开发一个销售管理系统,其主要功能描述如下:1.接受客户订单,检查库存货物是否满足订单要求。
软件⼯程考试题(带答案)⼀、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A) 可⾏性研究,问题定义,需求分析。
B) 问题定义,可⾏性研究,需求分析。
C) 可⾏性研究,需求分析,问题定义。
D) 以上顺序都不对。
2.可⾏性研究主要从以下⼏个⽅⾯进⾏研究:(A)A)技术可⾏性,经济可⾏性,操作可⾏性。
B)技术可⾏性,经济可⾏性,系统可⾏性。
C)经济可⾏性,系统可⾏性,操作可⾏性。
D)经济可⾏性,系统可⾏性,时间可⾏性。
3 耦合是对软件不同模块之间互连程度的度量。
各种耦合按从强到弱排列如下:(C)A) 内容耦合,控制耦合,数据耦合,公共环境耦合。
B) 内容耦合,控制耦合,公共环境耦合,数据耦合。
C) 内容耦合,公共环境耦合,控制耦合,数据耦合。
D) 控制耦合,内容耦合,数据耦合,公共环境耦合。
4.在详细设计阶段所使⽤到的设计⼯具是:(A)A) 程序流程图,PAD图,N-S图,HIPO图,判定表,判定树.B) 数据流程图,Yourdon 图,程序流程图,PAD图,N-S图,HIPO图。
C) 判定表,判定树,PDL,程序流程图,PAD图,N-S图。
D) 判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。
5 按照软件⼯程的原则,模块的作⽤域和模块的控制域之间的关系是:(A)A)模块的作⽤域应在模块的控制域之内。
B)模块的控制域应在模块的作⽤域之内。
C)模块的控制域与模块的作⽤域互相独⽴。
D)以上说法都不对。
6在软件⽣命周期中,能准确确定软件系统的体系结构的功能阶段是(C)A.概要设计B.详细设计C.需求分析D.可⾏性分析7下⾯不是软件⼯程的3个要素的是(C)A过程 B.⽅法 C.环境 D.⼯具8.下⾯不属于软件的组成的是(B)A程序 B.记录 C.⽂档 D.数据9在瀑布模型中,将软件分为若⼲个时期,软件项⽬的可⾏性研究⼀般归属于(C)A.维护时期B.运⾏时期C.定义时期D.开发时期10.在瀑布模型中,下⾯(C)是其突出的缺点。
软件工程考试试题一填空题(每空1分,共25分)1、软件生存周期一般可以划分为,问题定义、_______、需求分析__________、设计、编码、测试和____________。
可行性研究需求分析运行与维护2、基于软件的功能划分,软件可以划分成__________、__________、__________三种。
系统软件支撑软件应用软件3、可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究。
经济可行性法律可行性4、系统流程图是描绘的传统工具。
它的基本思想是用图形符号以描绘系统里面的每个部件。
物理系统黑盒子形式5、数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和。
加工数据流数据存储文件6、结构化分析方法是面向________________进行需求分析的方法。
结构化分析方法使用________________与________________来描述。
数据流数据流图DFD 数据字典DD7、是自动地共享类、子类和对象中的方法和数据的机制。
继承性8、软件详细设计工具可分为3类,即________________、________________和________________。
图示工具、设计语言表格工具9、为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________。
审查测试10、大型软件测试包括、、确认测试和四个步骤。
单元测试集成测试系统测试一、单项选择题(每小题2分,共20分)1.软件设计中划分模块的一个准则是(C )。
A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设计方法。
A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个(些)是正确的(C)。
a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.( A )是用户和设计交换最频繁的方法。
软件工程考试试题(含答案)软件工程考试试题(含答案)1. 简答题1.1 请简述软件生命周期模型,包括传统瀑布模型和敏捷开发模型。
传统瀑布模型:软件生命周期模型的一种经典模型,包含需求分析、系统设计、编码、测试和运维等阶段,每个阶段完成后才能进入下一个阶段。
优点:- 易于理解和使用;- 需求固定,有利于计划和控制;缺点:- 需求变更困难;- 风险高,需求出错难以弥补;- 开发周期长,无法满足紧迫的需求。
敏捷开发模型:一种适应快速变化需求的软件开发模型,主要包括用户故事编写、迭代开发、持续集成和自动化测试等实践。
优点:- 高度适应变化;- 可以提供早期可用软件;- 强调团队合作和沟通;缺点:- 需要高度的客户参与度;- 需要经验丰富的开发团队;- 不适用于大型项目。
1.2 什么是需求工程?请简述需求工程的过程和方法。
需求工程:需求工程是软件开发过程中用来获取、分析、定义和验证系统需求的过程。
它的目标是建立对用户需求的准确和完整的理解。
需求工程的过程:1. 需求获取:通过与用户、利益相关者沟通和交流获取用户需求。
2. 需求分析:对需求进行分析、整理,形成需求的详细描述。
3. 需求定义:将需求进行文档化,包括功能需求、非功能需求等。
4. 需求验证:通过原型、模型或评审等方式验证需求的正确性和完整性。
需求工程的方法:- 面谈法:与用户、利益相关者进行面对面的交谈,获取需求信息。
- 观察法:观察用户的工作环境和行为,了解其需要的功能和约束条件。
- 文献研究法:通过研究现有的相关文档来获取需求信息。
- 原型法:通过创建原型,让用户提供反馈并进一步明确需求。
2. 算法设计题有一组整数,编写一个算法将这组整数按照从小到大的顺序进行排序。
算法设计:1. 将整数数组按照从小到大的顺序进行排序。
2. 使用冒泡排序算法:- 比较相邻的两个数,如果前一个数大于后一个数,则交换它们的位置。
- 重复上述操作,直到没有任何交换发生,即数组已经按照从小到大的顺序排列好。
软件工程考试题及答案一、选择题1. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。
答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。
答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。
答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。
它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。
2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。
通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。
3. 请简述软件开发生命周期中的各个阶段。
答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。
- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。
- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。
- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。
- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。
- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。
《软件工程练习题及参考答案》一、单向选择题(四选一、每小题3分,共18分)1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。
对应映射反映反射2、盒图也称为(D)或Chapin图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
流程图框图判定表N-S图3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。
程序数据逻辑物理4、人机界面的风格大致经过了(B)代的演变。
三四五六5、以下不属于白盒测试技术的是(D)逻辑覆盖基本路径测试循环覆盖测试等价类划分6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
纠错性维护适应性维护改善性维护预防性维护二、填空题(每空2分,共18分)1.文档—一种数据媒体和其上所记录的(数据)。
2.机器语言、汇编语言:依赖于机器,面向(机器)3.软件有效性,指软件系统的时间和(空间)效率。
4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。
5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。
6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。
04027.一个软件的深度是指其控制的(层数)。
8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。
9.软件维护是软件生命周期的(最后)一个阶段。
三、判断题(每小题2分,共24分,错误打X、正确打√)1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
(√)2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
(X)3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
(√)4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
软件工程期末试卷(十套含答案)一、选择题(每题1分,共5分)A. 方法论B. 工具C. 过程D. 人员2. 下列哪一项不是软件生命周期的阶段?A. 需求分析B. 设计C. 编码D. 销售与市场A. 瀑布模型B. 喷泉模型C. 增量模型D. 敏捷模型4. 下列哪种方法不是软件需求获取的方法?A. 问卷调查B. 访谈C. 观察D. 编码A. 单一职责原则B. 开放封闭原则C. 里氏替换原则D. 依赖倒置原则二、判断题(每题1分,共5分)1. 软件工程的目标是生产出高质量的软件产品。
(√/×)2. 在软件开发过程中,需求分析阶段是最重要的阶段。
(√/×)3. 软件开发模型只有瀑布模型和喷泉模型两种。
(√/×)4. 在面向对象方法中,类是现实世界中实体的抽象。
(√/×)5. 软件测试的目的是证明软件的正确性。
(√/×)三、填空题(每题1分,共5分)1. 软件工程的三要素包括方法论、工具和______。
2. 软件生命周期包括需求分析、设计、编码、测试和______。
3. 在面向对象方法中,对象是现实世界中实体的______。
4. 软件开发模型包括瀑布模型、喷泉模型、增量模型和______。
5. 软件测试的目的是发现软件中的______。
四、简答题(每题2分,共10分)1. 简述软件工程的目标。
2. 简述软件生命周期的阶段。
3. 简述面向对象方法的基本概念。
4. 简述软件开发模型的作用。
5. 简述软件测试的目的。
五、应用题(每题2分,共10分)1. 假设你是一个软件开发人员,你需要为一个图书馆开发一个图书管理系统。
请列出该系统的需求。
2. 请解释瀑布模型和喷泉模型的区别。
3. 请解释面向对象方法中的继承和多态的概念。
4. 请解释软件测试中的黑盒测试和白盒测试的区别。
5. 请解释软件维护的类型。
六、分析题(每题5分,共10分)1. 假设你是一个软件开发人员,你需要为一个在线购物网站开发一个支付系统。
软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性 B.可重用性C.适应性 D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()A.效率 B.规模 C.完整性 D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合 B.隐藏C.封装 D.抽象7.软件调试技术包括()A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试8.瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求9.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析10.软件生命周期中所花费用最多的阶段是()A.详细设计 B.软件编码 C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言 C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD14.详细设计的结果基本决定了最终程序的()A.代码的规模 B.运行速度 C.质量 D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模 B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
软件工程基础考试题目和答案一、选择题(每题5分,共25分)1. 软件工程的主要目标是什么?A. 提高软件开发效率B. 确保软件质量C. 降低软件开发成本D. 提高软件的可维护性答案:B2. 下列哪个阶段不属于软件开发生命周期?A. 需求分析B. 设计C. 测试D. 需求变更答案:D3. 下列哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 面向过程编程答案:A4. 下列哪个工具主要用于软件项目进度监控?A. Gantt图B. 思维导图C. 帕累托图D. 直方图答案:A5. 下列哪种方法主要用于风险管理?A. 风险识别B. 风险评估C. 风险应对D. 风险监控答案:A二、填空题(每题5分,共25分)1. 软件工程的核心思想是______,通过规范的开发过程和严格的质量控制,提高软件的质量和可靠性。
答案:工程化2. 软件需求分析的主要目的是______,明确软件的功能和性能要求。
答案:理解用户需求3. 结构化分析方法主要包括______、数据流图、实体关系图等。
答案:数据字典4. 软件测试的主要目的是______,发现并修复软件中的缺陷。
答案:保证软件质量5. 敏捷开发方法的核心价值观是______,强调快速响应变化和客户合作。
答案:个体和互动三、简答题(每题10分,共30分)1. 请简要描述软件开发生命周期的主要阶段及其作用。
答案:软件开发生命周期主要包括需求分析、设计、编码、测试和维护等阶段。
需求分析阶段用于理解用户需求,设计阶段用于制定软件架构和详细设计,编码阶段用于实现软件功能,测试阶段用于发现并修复软件缺陷,维护阶段用于提供软件支持和更新。
2. 请简要介绍敏捷开发方法的主要特点和实践原则。
答案:敏捷开发方法主要包括个体和互动、工作软件、客户合作、响应变化等价值观。
实践原则包括短迭代周期、持续反馈、自我组织和协作等。
敏捷开发方法强调快速响应变化,提高软件质量和开发效率。
试卷一中南大学考试试卷2006--2006 学年学期时间110分钟软件工程课程48 学时 3 学分考试形式:闭卷专业年级:总分100分,占总评成绩100 %注:此页不作答题纸,请将答案写在答题纸上1.填空题(本题20分,每小题2分)1. 瀑布模型是以文档为驱动、适合于(软件需求确定的)软件项目的开发。
2. 需求分析的基本任务是(确定用户需要软件做什么)。
3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是(边界值分析法)。
4. 根据程序流程图划分的模块通常是(过程)内聚的模块。
5. 软件的分类,按其功能可分为:系统软件、(支撑软件)和应用软件。
6. UML的定义包括UML语义和(UML表示法)两个部分。
7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和( 整体与部分结构)。
8. IDEF1X图用来描述系统的(数据)模型,主要有实体、联系和(属性)三种成分,其中实体可分为独立实体和(依赖实体),且一个实体只能在图中出现一次。
二、简答题(本题30分,每小题5分)1. 什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是指导软件开发和维护的工程性学科;计算机科学着重于原理和理论,软件工程与计算机科学不同,软件工程着重于如何建造软件系统,软件是计算机中看不见摸不着的逻辑部分,以程序、数据和文档的形式出现。
2. 面向对象方法和结构化方法有何区别与联系?答:区别:面向对象从所处理的数据入手,以数据为中心来描述系统,其基本思想是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界的方法与过程,基本原则为:对象+类+继承+消息通信结构化方法首先关心的是功能,强调以模块为中心,其基本思想是自顶向下,逐步求精,单入口,单出口,基本原则为:抽象与功能的分解联系:软件开发过程中,在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。
3. 什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内?答:模块的作用域是指模块中判定的作用范围,它是指所有受这个判定范围影响的模块;模块的控制域是指模块本身及其直接或间接调用的模块;如果模块的作用域不在控制域内,则会增加数据间的传递量,使模块间出现控制耦合4. 什么是设计模式?试举例说明组合设计模式的应用。
答:设计模式是指系统命名,解释和评价某一重要的,可复用的面向对象的设计方案。
组合设计模式:使用迭代器模式来遍历组合结构。
5.什么是依赖倒置原则?它和开闭原则有何联系?答:依赖倒置是类设计原则的一种,它要求高层不应依赖于底层,抽象不应依赖于细节;依赖倒置原则的本质其实就是通过抽象(抽象类或接口)使各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合,如果没有实现这个原则,则开闭原则也无法实现。
6. 软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点?答:软件生存期过程没有规定一个特定的生存周期模型,各软件开发机构可视其项目的需要选择一种软件生存周期模,并将软件生存期过程所含过程、活动和任务映射到选定的软件生存周期模型中。
软件生存期模型是软件生存期过程所含过程、活动和任务的映射。
瀑布模型特点:各阶段相互依赖;每阶段都进行评审;强调需求分析和设计三、绘图题(本题34分)1. 某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。
房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。
(1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。
在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。
(2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
(3) 如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
(4) 住户可以向系统查询目前分房的阀值分数,居住某类房屋的条件,某房号的单位面积及房租等信息。
房产科可以要求系统打印住房情况的统计表,或更改某类房屋的居住条件、单位面积和房租等。
请用数据流图描绘该系统的功能需求。
(12分)2. 某学校图书管理系统通过计算机对图书进行管理,借阅者可以通过该系统进行查询书籍、预订借阅书籍、查询本人帐号信息;图书管理员可以通过该系统处理借阅者借书、还书、删除预订信息、查询书籍信息、查询借阅者信息;系统管理员可以通过该系统添加书籍条目、删除书籍条目、添加借阅者信息、删除或更新借阅者信息、添加书籍、删除或更新书籍、查询书籍信息、查询借阅者信息。
(1)画出系统的类图。
(10分)(2)画出借阅者、图书管理员对应的用例图。
(6分)(3)画出书籍的状态图。
(6分)四、测试题(本题16分,每小题8分)某程序的程序流程图如下图所示,试据此回答下述问题:1. 计算程序的环形复杂度;2. 设计测试用例,满足基本路径覆盖。
(1)环路复杂性=判断数+1=6+1=7(个)(2)路径1:(0)—①—(13)—(19)路径2:(0)—②—③—(14)—(19)路径3:(0)—②—④—⑤—(15)—(19)路径4:(0)—②—④—⑥—⑦—(16)—(19)路径5:(0)—②—④—⑥—⑧—⑨—(17)—(19)路径6:(0)—②—④—⑥—⑧—⑩—(11)-(18)—(19)路径7:(0)—②—④—⑥—⑧—⑩—(12)—(19)试卷一(参考答案)参考答案:一.1. 软件需求确定的2. 确定用户需要软件做什么3. 边界值分析法4. 过程5. 支撑软件6. UML表示法7. 整体与部分结构8.四.(1)环路复杂性=判断数+1=6+1=7(个)(2)路径1:(0)—①—(13)—(19)路径2:(0)—②—③—(14)—(19)路径3:(0)—②—④—⑤—(15)—(19)路径4:(0)—②—④—⑥—⑦—(16)—(19)路径5:(0)—②—④—⑥—⑧—⑨—(17)—(19)路径6:(0)—②—④—⑥—⑧—⑩—(18)—(19)路径7:(0)—②—④—⑥—⑧—⑩—(12)—(19)测试用例:略试卷二中南大学考试试卷2007 -- 2007 学年学期时间110分钟软件工程课程48 学时 3 学分考试形式:闭卷专业年级:总分100分,占总评成绩100 %注:此页不作答题纸,请将答案写在答题纸上一、填空题(本题30分,每小题1.5分)1、软件是计算机程序、(数据)及(描述计算机程序的文档)的完整集合,将其统称为软件配置,这些项称为软件配置项。
通过正式复审的软件配置项称为(基线),只有通过正式的变化控制过程才能改变它。
2、通常,将软件生命周期全过程中使用的一整套技术方法的集合称为方法学,包含三个要素,即方法、(工具)和(过程)。
传统方法学采用(结构化)技术来自顶向下顺序地完成软件开发的各项任务,而面向对象方法是一种以(数据)为主线,把数据和对数据的操作紧密地结合起来的方法,其开发过程是一个多次迭代的演化过程。
3、软件测试的目标是(暴漏程序中的错误),因而从心理学角度来看,由程序作者对自己编写的程序进行测试是不恰当的。
设计测试方案是测试阶段的关键技术问题,测试方案一般包括(测试目的)、输入的测试数据和(预期的结果)。
4、模型是为了理解事物而对事物作出的一种抽象,由(一组图示符号)和(组成这些符号的规则)组成。
对象模型描述了系统的静态结构,通常使用UML提供的(类)图来描述。
5、需求分析的基本任务是(准确的回答系统必须做什么),在需求分析结束前,系统分析员应该写出(软件需求规格说明书),以书面的形式准确描述软件需求。
6、面向数据流的设计方法把(信息流)映射成软件结构,依据其类型的不同,有两种不同的映射方法,分别是(变化分析)和(事务分析)方法。
7、软件设计一般分为( 概要设计)和( 详细设计)两个阶段。
二、简答题(本题18分,每小题6分)1、瀑布模型是软件工程中应用最广泛的过程模型,试述采用瀑布模型进行软件开发的基本过程,该过程有何特点?答:瀑布模型规定了各项软件工程活动,包括需求分析、规格说明、设计、编码、测试和维护,并规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级而下。
瀑布模型的特点是:阶段间具有顺序性和依赖性;清楚区分逻辑设计和物理设计,尽可能推迟程序的物理实现;每个阶段都必须完成规定的文档,且每阶段结束前需要对完成的文档进行评审。
2、什么是软件配置管理?软件配置管理和软件维护有何不同?答:软件配置管理是在软件生命周期内管理变化的一组活动,用来:标识变化、控制变化、确保适当地实现了变化、向相关人员报告变化。
软件配置管理和软件维护的区别是:软件配置管理是一组追踪和控制活动,在软件项目启动时就开始,并一直持续到软件被淘汰后才终止;软件维护是一组软件工程活动,发生于软件交付给用户并投入运行之后。
3、试举例说明聚集关系中共享聚集和组合聚集有何不同。
答:如果在聚集关系中部分对象可同时参与多个整体对象的构成,则该聚集称为共享聚集。
例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是一种共享聚集的关系。
如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。
例如,在屏幕上一个窗口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之间的关系为组合聚集关系。
三、分析题(本题20分)某住宅安全系统使用传感器(如红外探头等)来检测各种意外情况,如非法进入、火警等,其顶层DFD图如图3-1所示。
房主可以在安装该系统时配置安全监控设备,如传感器、报警器等,也可在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。
在安装过程中,系统给每个传感器赋予一个编号和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应该自动拨出的电话号码。
当系统检测到一个传感器事件时,就激活报警,拨出预置的电话号码,并报告位置等有关信息。
请回答以下问题:(1)图3-1中A,B,C分别是什么?(6分)A:控制面板 B、报警器 C、传感器(2)第0层DFD图如图3-2所示,则图中W,X,Y,Z分别是什么?(8分)W: 用户配置请求 X: 用户密码 Y: 传感器状态 Z: 告警信息(3)请说明如何采用DFD图计算功能点数。