《2022年软件答案 .pdf》由会员分享,可在线阅读,更多相关《2022年软件答案 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一1. 软件与其他工程学科所产生的制品有什么根本区别?(1) 软件是人类思维和智能所延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂和不确定性导致它本身具有极高的复杂性;(2) 软件具有不可见性,它是抽象的,形式化和逻辑化的。(3) 软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化(4) 软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。2. 软件工程包括哪些基本要素?请简要说明这些要素及其作用。软件工程包括过程、方法和工具三个要素。软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)产生、里程碑的建立、质量的
2、保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标;软件工程方法为软件开发提供了如何做的技术,通常包括某种语言或图形的模型表示方法、好的设计实践以及质量保证标准等;软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境CASE 。二3. 对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如何应用该模型。(1) 瀑布模型(2) 快速原型模型(3) 增量模型(4) 形式化方法
3、模型(5) 基于组件的开发模型答案(1) 瀑布模型项目举例:某项目需要在一种新型机器上,为一种已知语言开发一个普通的编译器。选用分析:由于该项目的语言是已知的,需求是明确的和稳定的,整个系统属于中小规模,因此适合采用瀑布模型进行软件开发。阶段说明:略。(2) 快速原型模型项目举例: 某公司需要给火车站开发一个交互式火车车次查询系统,这是火车站首次使用该系统。选用分析:本项目的主要问题在于用户需要方面,该系统与最终用户的交互是十分关键的,但是在项目初期用户的需求基本上是不知道的,因此适合采用快速原型方法来确定用户需求,在需求确定的基础上再开发最终系统。阶段说明:略。(3) 增量模型项目举例: 某
4、公司开发一个通用CAD 软件产品, 产品需求是逐步完善的,某些需求在一定范围内是明确的,某些需求需要进一步细化,但是迫于市场竞争的压力产品需要尽快上市。选用分析: 通用 CAD 软件产品具有一定的成熟度,总体需求和软件系统结构是可以确定的,但是实现该产品所有功能需要比较长的开发周期。为了尽快上市可以采用增量模型实行多版本的发布策略,既可以很快占领市场又可以为后续版本的需求定义奠定基础。阶段说明:略。(4) 形式化方法模型项目举例:某公司开发一个汽车防抱死刹车控制系统。选用分析:由于该系统对安全性和可靠性要求极高,需要在系统运行之前进行相关性能的检验,精选学习资料 - - - - - - - -
5、 - 名师归纳总结 - - - - - - -第 1 页,共 6 页因此适合采用形式化方法开发该系统。阶段说明:略。(5) 基于组件的开发模型项目举例:某公司开发企业管理ERP系统,包括销售、库存、生产、财务、物流、人力资源等部分,在系统实施过程中不同的企业具有一定的需求差异。选用分析:企业ERP系统具有组件化的结构,在不同企业实施时应该尽量重用已有的组件,因此适合采用基于组件的开发模型开发该系统,在直接应用或者修改使用的基础上,最终进行组件开发和系统集成。阶段说明:略。4. 在螺旋模型中,风险分析的作用是什么?在螺旋模型中,软件开发是在风险等级的指导下进行的。首先确定该阶段的目标,完成这些目
6、标的选择方案及其约束条件;其次从风险角度分析方案的开发策略,努力排除各种潜在的风险,在需求不适当的情况下可能需要建造原型系统;如果某些风险不能排除,该方案可能立即终止,否则继续启动下一步的软件开发和验证工作,并再次通过风险分析规定过程遵循的策略;最后,评价该阶段的结果,并规划下一个迭代。从上述过程中可以看出,风险分析的作用是通过识别项目中的高风险问题,使开发人员制定适当的开发策略消除这些风险。5. 某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统。请设计一个适用于该系统开发的过程模型,并进一步描述该模型。答案要点:假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成
7、绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过Internet访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能。从该系统的具体情况来看,系统的需求是比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发:系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶段,从而确定新系统的需求。遗留系统分析:在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,选择重用原有的课程信息管理部分,重新开发选课部分,
8、必要时适当修改系统需求,最终确定系统需求和总体结构。设计开发阶段:开发人员进一步设计相关子系统,将原有的课程信息管理部分封装为子系统,重新开发学生选课子系统,并实现与外部付费系统的接口。系统测试阶段:开发人员将所有子系统集成在一起,交给测试人员开始全面的功能测试和性能测试。根据所报告的测试问题,开发人员调试和修改程序。系统交付阶段:测试通过后,开发人员将系统及其相关文档交付用户验收。三2. 某个软件项目需要30名开发人员,现有两种人员组织方案:(1) 将30人划为一个开发组统一管理;(2) 按每个小组 6人的方式,将30人分为 5个小组。请分析比较上述两种方案的优缺点。参考答案:由于软件规模的
9、增大,需要多人组成开发小组共同参与一个项目的开发。但是当多个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的接口问题,这就产生了所谓沟通复杂性的问题。沟通需要花费时间和代价,也会引起软件错误的增加,降低开发效率。(1) 优点: 30人集中在同一个开发小组,人员任务的分配和调度相对容易;缺点:沟通复杂性高,从而导致人员之间配合混乱,开发效率低。(2) 优点: 30人划分成 5个小组,降低了沟通复杂性,提高开发效率;缺点:小组之间的协调配合难度大。3. 在选择人员进行软件项目开发时,应该考虑哪些因素?精选学习资料 - - - - - - - - - 名师归纳总结
10、 - - - - - - -第 2 页,共 6 页四3. 需求工程包括哪些基本活动?每一项活动的主要任务是什么?需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。这些基本活动的主要任务包括:( 1) 需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。( 2) 需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。( 3) 需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。( 4) 需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰
11、性( 5) 需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。4. 请比较本章介绍的几种主要需求获取技术,说明每一种技术的优缺点和适用场合。( 1) 用户面谈优点:可以与项目相关人员一对一地进行交谈和讨论;具有私密性,使被访者可以直率地和无隐瞒地回答问题;便于探查一些附加信息或反馈信息;有利于与客户建立良好的关系。缺点:面谈是一种非常费时和高成本的方式;难以解决不同的项目干系人之间的冲突和矛盾;在地理位置相距较远的情况下很难实施。适用场合:适用于在初步理解整体概念的情况下讨论和交流一些细节问题。( 2) 需求专题讨论会优点:有助于了解系统需求;有利于共享系统开发的成果;给用户一
12、种主人的感觉;可以与足够多的项目干系人进行讨论和交流,且节省时间;支持头脑风暴式的讨论。缺点:需要占用参与人员比较长的整块时间;主持人的能力和会议的准备工作必须是非常好的,否则结果很糟。适用场合:适用于讨论和审查软件系统方案和模型,解决不同项目干系人之间的冲突和矛盾。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 6 页( 3) 观察用户工作流程优点:通过直接观察的方式提取用户或系统的特性;有助于理解难以用语言描述清楚的复杂业务。缺点:观察可能使用户紧张,从而表现得与往常不同。适用场合:适用于理解难以用语言描述清楚复杂业务过程。( 4)
13、 原型化方法优点:通过一个可以运行的软件原型直观地理解和澄清问题,便于使开发人员与用户达成共识。缺点:用户容易产生误解,认为软件系统可以在原型的基础上很容易地构建,但实际上该原型的内部结构和程序质量比较差。适用场合:适用于用户需求不明确或描述不清楚的情况。8. 请给出以下问题描述的用例模型。一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。该音像商店将存有大约 1000 盘录像带和 500张光碟,这些订购涉及多家订购商。所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。客户可以预定录像带并在指定日期来取。系统必须拥有灵活的搜索机
14、制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。参考答案:下面给出参考的用例图,其中有关用例描述省略。八5. 请举例说明用户界面设计的基本原则。参考答案:(1)用户控制:用户应当感觉系统的运行在自己的控制之下。在图形界面或基于Web 的界面中,用户指导程序的每一步执行;即使在程序进行某些处理或用户等待输出结果时,用户同样保持对控制的敏感度。举例:当程序进行某些需要占用较长时间的处理时,需要为用户提供及时的反馈信息,诸如一个沙漏、一个等待的指示器或其他类似的东西。(2) 界面一致性:一致性要求用户界面遵循标准和常规的方式,让用户处在一个熟悉的和可预见的环境之中,
15、这主要体现在命名、编码、缩写、布局以及菜单、按钮和键盘功能在内的控制使用等。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 6 页举例:一个运行在Windows 平台上的三维几何造型系统应当采用Windows 图形窗口的“ 外观和感觉” ,与 Office 类型软件保持一致的界面风格和操作方式。(3) 界面容错性:一个好的界面应该以一种宽容的态度允许用户进行实验和出错,使用户在出现错误时能够方便地从错误中恢复。举例: Microsoft Word系统允许撤消用户对文档的许多最近操作,从而处理用户的误操作问题。(4) 界面美观性:界面美观
16、性是视觉上的吸引力,主要体现在具有平衡和对称性、合适的色彩、各元素具有合理的对齐方式和间隔、相关元素适当分组、使用户可以方便地找到要操作的元素等。举例: 清华大学软件学院综合信息服务系统的Web 界面在平衡和对称、色彩、 元素分组、 用户方便地查找信息等方面进行了良好的设计。(5) 界面可适应性:界面可适应性是指用户界面应该根据用户的个性要求及其对界面的熟知程度而改变,即满足定制化和个性化的要求。所谓定制化是在程序中声明用户的熟知程度,用户界面可以根据熟知程度改变外观和行为;所谓个性化是使用户按照自己的习惯和爱好设置用户界面元素。举例:系统允许用户选择语言类型(中文、英文、意大利文等),并系统
17、根据用户定制的语言类型显示不同语种的用户界面。十、10.5 请结合等价类方法给出getNumDaysInMonth(int month, int year)方法的测试用例,其中 getNumDaysInMonth方法根据给定的月份和年份返回该月份的总天数。10.6 现在要对一个自动饮料售货机软件进行黑盒测试,该软件的规格说明如下:一个自动售货机软件可以销售单价1元5角的盒装饮料。 该售货机只接收1元和 5角两种硬币, 若投入 1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,则送出相应的饮料;若投入的硬币少于1元5角,则显示错误信息并退出硬币;若投入的硬币多于1元5角,则送出饮料的同时退还多
18、余的硬币。请设计测试该软件的全部测试用例。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 6 页十一1. 为什么软件系统在投入使用之后还要进行变更?参考答案:软件系统在投入使用之后仍然需要进行变更,其主要原因在于:软件在使用过程中,新的需求不断出现;商业环境在不断地变化;软件中的缺陷需要进行修复;计算机硬件和软件环境的升级需要更新现有的系统;软件的性能和可靠性需要进一步改进。3. 为什么说软件维护是一项困难的工作?参考答案:软件维护工作的困难主要表现在以下几个方面:读懂别人的程序是很困难的,而文档的不足更增加了这种难度。一般开发人员都有
19、这样的体会,修改别人的程序还不如自己重新编写程序。文档的不一致性是软件维护困难的又一个因素,主要表现在各种文档之间的不一致以及文档与程序之间的不一致性,从而导致维护人员不知所措,不知怎样进行修改。这种不一致性是由于开发过程中文档管理不严造成的,开发中经常会出现修改程序而忘了修改相关的文档,或者某一个文档修改了,却没有修改与之相关的其他文档等现象,解决文档不一致性的方法就是要加强开发工作中文档的版本管理。软件开发和软件维护在人员和时间上存在差异。如果软件维护工作是由该软件的开发人员完成,则维护工作相对比较容易,因为这些人员熟悉软件的功能和结构等。但是,通常开发人员和维护人员是不同的,况且维护阶段持续时间很长,可能是 1020年的时间, 原来的开发工具、方法和技术与当前有很大的差异,这也造成了维护的困难。软件维护不是一件吸引人的工作。由于维护工作的困难性,维护经常遭受挫折,而且很难出成果,所以高水平的程序员自然不愿主动去做,而公司也舍不得让高水平的程序员去做。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 6 页
限制150内