软件⼯程导论简答题
三、简答题
1.什么是需求分析?需求分析阶段的基本任务是什么?
答:需求分析是当前软件⼯程中的关键问题,需求分析阶段的任务是:在可⾏性分析的
基础上,进⼀步了解、确定⽤户需求。准确地回答“系统必须做什么?”的问题。获得需求规格说明书。还涉及到软件系统的⽬标、软件系统提供的服务、软件系统的约束和软件系统运⾏的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。
需求分析的基本任务包括:
(1)抽取需求分析现⾏系统存在需要解决的问题。获取⾜够多的问题领域的知识,需求
抽取的⽅法⼀般有问卷法、⾯谈法、数据采集法、⽤例法、情景实例法以及基于⽬标的⽅法等;还有知识⼯程⽅法,例如,场记分析法、卡⽚分类法、分类表格技术和基于模型的知识获取等。
(2)模拟和分析需求需求分析和模拟⼜包含三个层次的⼯作。⾸先是需求建模。需求模
型的表现形式有⾃然语⾔、半形式化(如图、表、结构化英语等)和形式化表⽰等三种。需求概念模型的要求包括实现的独⽴性:不模拟数据的表⽰和内部组织等;需求模拟技术⼜
分为企业模拟、功能需求模拟和⾮功能需求模拟等。
(3)传递需求传递需求的主要任务是书写软件需求规格说明。
(4)认可需求就是对需求规格说明达成⼀致,其主要任务是冲突求解,包括定义冲突和
冲突求解两⽅⾯。常⽤的冲突求解⽅法有:协商、竞争、仲裁、强制、教育等,其中有些只能⽤⼈的因素去控制。
(5)进化需求客户的需要总是不断(连续)地增长,但是⼀般的软件开发⼜总是落后于客
户需求的增长,如何管理需求的进化(变化)就成为软件进化的⾸要问题。对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查⼩组。当前的发展是软件
家族法,即产品线⽅法。多视点⽅法也是管理需求变化的⼀种新⽅法,它可以⽤于管理不⼀致性,并进⾏关于变化的推理。
2.等价分类法的基本思想是什么?
答:根据程序的输⼊特性,将程序的定义域划分为有限个等价区段——“等价类”,
从等价类中选择出的⽤例具有“代表性”,即测试某个等价类的代表值就等价于对这⼀类其他值的测试。如果某个等价类的⼀个输⼊数据(代表值)测试中查出了错误,说明该类中其他测试⽤例也会有错误。
四、(26分)为什么⾯向对象的开发⽅法为软件IC(软件集成)及软件重⽤技术提供了良好的环境?
软件复⽤是将已有的软件成分⽤于构造新的软件系统,以达到提⾼软件系统的开发质
量与效率,降低开发成本的⽬的。
复⽤的软件成分—称为可复⽤构件(Reusable Component),从旧软件中提取,也可以
专门为复⽤⽽开发。
⾯向对象⽅法之所以特别有利于软件复⽤,是由于它的主要概念及原则与软件复⽤的
要求⼗分吻合。⽀持复⽤的OO 概念与原则是:对象与类、抽象、封装、继承与⼀般——特
殊结构、整合与整体——部分结构、粒度控制、多态性。
对象与类:OO ⽅法⽤对象描述问题域中的事务,并⽤类作为同种对象的抽象表⽰。类
是系统的基本构成单位,它符合可复⽤构件所应具备的那些特性:完整性、独⽴性、可标识性、⼀般性、抽象、封装:尤其是OO ⽅法的对象封装性,为软件复⽤技术提供了良好
的
条件。
⼆、简答题(45 分)
1、(15 分)什么是软件复⽤?分析说明为什么⾯向对象的开发⽅法为软件复⽤技术提供了良
好的环境?
软件复⽤是将已有的软件成分⽤于构造新的软件系统,以达到提⾼软件系统的开发质量与效率,降低开发成本的⽬的。
可复⽤的软件成分—称为可复⽤构件(Reusable Component),从旧软件中提取,也可以专门为复
⽤⽽开发。
⾯向对象⽅法之所以特别有利于软件复⽤,是由于它的主要概念及原则与软件复⽤的要求⼗分吻合。⽀
持复⽤的OO概念与原则是:对象与类、抽象、封装、继承与⼀般——特殊结构、整合
与整体——部分结构、粒度控制、多态性。
对象与类:OO ⽅法⽤对象描述问题域中的事务,并⽤类作为同种对象的抽象表⽰。类是系统
的基本构成单位,它符合可复⽤构件所应具备的那些特性:完整性、独⽴性、可标识性、⼀般性、
抽象、封装:尤其是OO⽅法的对象封装性,为软件复⽤技术提供了良好的条件。
2、(15分)简述结构化⽅法的组成,并说明各组成部分的基本任务、功能及描述⽅式。结构化⽅法由SA 法(Structured Analysis),SD 法(Structured Design)和SP法(Structured
Program)组成。
SA,SD,SP 法相互衔接,形成了⼀整套开发⽅法。若将SA、SD 法结合起来,⼜称为结构化
分析与设计技术(SADT技术)。
结构化分析(SA)阶段的任务是:在可⾏性分析的基础上,进⼀步了解确定⽤户需求,准确地回答“系统必须做什么?”的问题,获得需求规格说明书。描述⽅法为DFD 图、数据词典及加
⼯⼩说明。
结构化设计(SD)阶段的任务是:将分析阶段获得的需求说明转换为计算机中可实现的系统,
完成系统的结构设计,包括数据结构和程序结构,最后得到软件设计说明书。描述⽅式:模块图、
流程图及PAD图等。
结构化程序设计(SP)阶段的任务是:根据软件设计,选择程序设计语⾔,编码实现具有良好风格的软件系统。
四、(共30分,每⼩题15分)现在有⼀个医院病房监护系统,⽤户提出的系统功能要求如下:
在医院病房监护系统中,病症监视器安置在每个病房,将病⼈的病症信号实时传送到中央监视系统
进⾏分析处理。在中⼼值班室⾥,值班护⼠使⽤中央监视系统对病员的情况进⾏监控,根据医⽣的要求
随时打印病⼈的病情报告,系统会定期⾃动更新病历。
当病症出现异常时,系统会⽴即⾃动报警,通知值班医⽣及时进⾏处理,同时⽴即打印病⼈的病情报
告和更新病历。
1. 分别画出采⽤结构化分析⽅法和UML 建模语⾔建⽴的需求分析模型(只画顶层)。
2. 以医院病房监护系统为例,分析⽐较结构化开发⽅法与⾯向对象的开发⽅法的主要特点,结合
该实例说明:为什么⾯向对象的开发⽅法更加优越。
2. ⾯向对象的⽅法具有以下主要特点:
①对软件开发过程所有阶段进⾏综合考虑。
②软件⽣存期各阶段所使⽤的⽅法、技术具有⾼度的连续性,⽤符合⼈类认识世界的思维⽅式来分析、
解决问题。
在医院病房监护系统中,⼀但建⽴了系统的USE CASE 模型后,⽆论在需求分析、软件设计,甚⾄
实现阶段,所建⽴的静态模型和动态模型都具有相同的描述⽅式,描述模型的⼀致性,不仅为开发者带
来⽅便,也更直观的描述系统的特性。
⽽结构化⽅法,是以数据流、数据封闭性为基础,从对数据进⾏加⼯的⾓度进⾏需求分析,建⽴分
层的DFD图(如上图)。⽽在软件总体设计阶段,则⽤模块结构图来进⾏描述,详细设计阶段⼜是新的
描述⽅式(如N-S图、PAD 图等),总之,由于不同阶段有不同的描述⽅式,需要进⾏多次转换,不仅
为开发者带来诸多不便,也影响了对系统直观、准确的描述。
四、画出银⾏取款过程的DFD 图。问题描述为:储户⽤存折取款,⾸先填写取款单,
根据“账卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“账卡”,同时发出付款通知,出纳向储户付款。解:
三、名词解释题每⼩题3分,共15分。
31.软件⽣存周期模型
描述软件开发过程中各种活动如何执⾏的模型
32.数据字典(DD)
数据字典是⽤来定义数据流图中的各个成分的具体含义的。它以⼀种准确的、⽆⼆义性的说明⽅式为系统的分析、设计及维护提供了有关元素的⼀致的定义和详细的描述。33.内聚性
内聚性是模块独⽴性的衡量标准之⼀,它是指模块的功能强度的度量,即⼀个模块内部各个元素彼此结合的紧密程度的度量
34.JSP⽅法
JSP⽅法是⾯向数据结构的设计⽅法,其定义了⼀组以数据结构为指导的映射过程,它根据输⼊,输出的数据结构,按⼀定的规则映射成软件的过程描述,即程序结构。
35.多态性
指相同的操作或函数、过程可作⽤于多种类型的对象上并获得不同结果。或(不同的对象,收到同⼀消息可以产⽣不同的结果。)
四、简答题每⼩题5分,共20分。
36.简述容错技术的四种主要⼿段,并解释。
结构冗余:包括静态冗余、动态冗余和混合冗余。
信息冗余:为检测或纠正信息在运算或传输中的错误,须外加⼀部分信息。
时间冗余:指重复执⾏指令或程序来消除瞬时错误带来的影响。
冗余附加技术:指为实现上述冗余技术所需的资源和技术。
37.以G.J.Myers的观点,简述对软件测试的⽬的。
软件测试是(1)为了发现错误⽽执⾏程序的过程;(2)⼀个好的⽤例能够发现⾄今尚
jsp可以用什么软件写未发现的错误的测试。(3)⼀个成功的测试是发现⾄今尚未发现的错误的测试。
38.就程序设计语⾔的⼯程特性⽽⾔,对程序编码有哪些要求?
就程序设计语⾔的⼯程特性⽽⾔,对程序编码有如下要求:
(1)可移植性(2)开发⼯具的可利⽤性(3)软件的可重⽤性(4)可维护性
39.模块的内聚性包括哪些类型?
模块的内聚性包括:
(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚三,名词解释(本⼤题共5⼩题,每⼩题3分,共15分)
31.经济可⾏性
解:进⾏开发成本的估算以及了解取得效益的评估,确定要开发的项⽬是否值得投资开发。
32.社会可⾏性
解:要开发的项⽬是否存在任何侵犯、妨碍等责任问题,要开发项⽬⽬的运⾏⽅式在⽤户组织内是否⾏得通,现有管理制度、⼈员素质、操作⽅式是否可⾏。
33.投资回收期
解:投资回收期就是使累计的经济效益等于最初的投资费⽤所需的时间。
34.对应关系
解:即有直接因果关系在程序中可以同时处理。
35.结构冲突
解:输⼊数据与输出数据结构不到对应关系的情况,称为结构冲突。
四,简答题(本⼤题共4⼩题,每⼩题5分,共20分)
36.可⾏性研究报告的主要内容有哪些?
解:⼀个可⾏性研究报告的主要内容如下:
(1)引⾔:说明编写本⽂档的⽬的;项⽬的名称、背景;本⽂档⽤到的专门术语和参考资料。
(2)可⾏性研究前提:说明开发项⽬的功能、性能和基本要求;达到的⽬标;各种限制条件;可⾏性研究⽅法和决定可⾏性的主要因素。
(3)对现有系统的分析:说明现有系统的处理流程和数据流程;⼯作负荷;各项费⽤⽀出;所需要各类专业技术⼈员的数量;所需要各种设备;现有系统存在什么问题。
(4)所建议系统的技术可⾏性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统⽐较的优越性;采⽤所建议系统对⽤户的影响;对各种设备、现有软件、开发环境、运⾏环境的影响;对经费⽀出的影响;对技术可⾏性的评价。
(5)所建议系统的经济可⾏性分析:说明所建议系统的各种⽀出,各种效益;收益投资⽐;投资回收周期。
(6)社会因素可⾏性分析:说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明⽤户使⽤可⾏性,是否满⾜⽤户⾏政管理、⼯作制度、⼈员素质的要求。
(7)其他可供选择⽅案:逐⼀说明其他可供选择的⽅案,并说明未被推荐的理由。
(8)结论意见:说明项⽬是否能开发;还需要什么条件才能开发;对项⽬⽬标有什么变动等。
[解析]做软件的可⾏性研究的⽬的就是⽤最⼩的代价在尽可能短的时间内确定该软件项⽬是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为⼋个基本内容。
37.系统设计的内容是什么?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论