大连理工大学软件学院软件工程作业及答案2019.pdf
《大连理工大学软件学院软件工程作业及答案2019.pdf》由会员分享,可在线阅读,更多相关《大连理工大学软件学院软件工程作业及答案2019.pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程课后习题答案软件工程课后习题答案(适用于软件工程朴勇,周勇编著,2019 年版)目录第 1 章软件工程概述.2第 2 章软件开发过程.3第 3 章需求分析.4第 4 章软件架构的构建.9第 5 章类的分析与设计.10第 6 章代码生成.12第 7 章类的详细设计.14第 8 章设计优化.19第 9 章实现技术.24第 10 章交互设计.28第 11 章软件测试.29第 12 章软件项目级管理.33第 13 章软件过程管理及改进.37源代码1第第 1 1 章章软件工程概述软件工程概述1.软件工程主要包括哪些内容?软件工程是从技术和管理两个方面开发和维护计算机软件的一门学科。IEEE 对软
2、件工程的定义是:将系统化、规范化、可量化的工程原则和方法应用于软件的开发、运行和维护及对其中方法的理论研究,其主要目标是高效开发高质量的软件,降低开发成本。软件工程知识体系包含两个部分:开发过程和支持过程;10 个主要的知识域,分别是:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。2.面向对象分析方法优于传统方法的根本原因是什么?可否借助图1.4 或其他实例给出自己的理解?面向对象方法是一种动态的思想,其出发点和基本原则是尽可能模拟人类习惯的思维方式,将现实世界中的实体抽象为对象(Object),对象中同时封装了实体的
3、静态属性和动态方法。面向对象分析设计的方式使得业务领域中实体及实体之间的关系与对象及其关系保持一致,做到了概念层与逻辑层的相互协调,更要强调的是各种逻辑关系在结构上的稳定性,通过稳定的结构来提高应对各种变化的能力。技术上,对象融合了数据及在数据之上的操作,所有的对象按照类(Class)进行划分,类是对象的“抽象”;类与类之间可以构成“继承”的层次关系;对象之间的互相联系是通过消息机制实现的,确保了对信息的“封装”,使得对象之间更为独立。同时,面向对象的分析过程既包含了由特殊到一般的归纳思维过程,也有由一般到特殊的演绎思维过程,而且对象是更为独立的实体,可以更好地进行“重用”。3.UML 包含哪
4、些重要的模型?它们在系统开发的解空间中作用如何?UML2.0 具体包括以下模型:1.用例图:用于表示系统与使用者(或其他外部系统)之间的交互,有助于将需求映射到系统;2.活动图:用于表示系统中顺序和并行的活动;3.类图:用于表示类、接口及其之间的关系;4.对象图:用于表示类图中定义的对象的实例,其配置是对系统的模拟;5.顺序图:用于表示重要对象之间的互动顺序;6.通信图:用于表示对象交互的方法和需要支持交互的连接;7.时序图:用于表示重点对象之间的交互时间安排;8.交互概况图:用于将顺序图、通信图和时序图收集到一起,以捕捉系统中发生的重要交互情况;9.组成结构图:用于表示类或组件的内部,可以在
5、特定的上下文中描述类间的关系;10.组件图:用于表示系统内的重要组件和彼此间交互所用的接口;11.包图:用于表示类与组件集合的分级组织;12.状态图:用于表示整个生命周期中对象的状态和可以改变状态的事件;13.部署图:用于表示系统最终怎样被部署到真实的世界中。2第第 2 2 章章软件开发过程软件开发过程1.总结敏捷生命周期模型与传统瀑布模型主要的不同点及适用情况。敏捷生命周期模型处理需求和技术变化主要通过增量和迭代过程。在每一次周期结束时,都交付用户一个可用的、可部署的系统,每次迭代周期尽可能短,以便能及时频繁地处理需求变化和用户反馈。而传统瀑布模型中,用户只有在开发早期及开发结束后,才有机会
6、接触系统,且由于文档驱动式的开发方式,模型缺少灵活性,变更很不容易,变更来的越迟,付出的代价也越大。瀑布模型是一种计划驱动的模型,在对系统整体上的把控和协调开发过程中,上具有一定的优势,因此瀑布模型比较适合规模较大的系统开发或者分布式的开发模式。而敏捷生命周期模型更适合规模中小、需求变化频繁的系统开发,强调团队的作用,因此更适合集中式的开发模式。2.什么是用例?它与功能的含义有什么不同?举例说明。用例(Use Case)是指用户通过系统完成的有价值的目标。用例不是一个具体的功能,一个用例是用户与系统的完整交互,可能涉及多个功能的组合,不同的用例可能会涉及相同的功能组合,但意义却不同。例如,用户
7、按下计算器上的减号键,这是一个功能;用户按下“3-2=”的序列并计算出结果,这是一个用例。3.简述 DevOps 的基本原理和任务。DevOps 是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。3第第 3 3 章章需求分析需求分析1.在软件开发过程中,问题发现得越晚,修正起来越困难,付出的代价越高。分析原因,至少给出两个理由,并简短说明。问题发现得越晚,所涉及的部分就越多,因为软件开发已经接近完成,问题可能会对软件开发产生全局性的影响,导致整个项目的失败;而
8、前期发现问题则可以较快地修正,因为此时往往程序还没有开发完成,和问题相关的部分也相对较少,修改起来成本也更小。2.图 3.10 通过活动图描述了合同签订的流程,请对其进行扩展,满足以下要求。(1)客户对销售的产品并不感兴趣。(2)对于金额小于 20 万元的合同,在谈判的过程中需要部门经理的参与,考虑到项目管理的费用,由他们决定是否按照当前的合同金额签订合同。(3)相关部门在成本核算前会提出一些问题,需要销售人员向客户询问,并澄清结果。不感兴趣访谈访谈感兴趣具体需求具体需求提问题提问题成本核算成本核算销售代表销售代表涉及的客户涉及的客户相关部门相关部门预算预算预算预算金额小于20万金额大于20万
9、项目总管项目总管合同洽谈合同洽谈合同洽谈合同洽谈销售主管销售主管重新核算成本重新核算成本合同合同达成共识未达成共识具体需求具体需求43.给出以下需求描述的用例图。(1)一个音像商店准备开发软件系统,用于向客户销售或者租借电影光盘。(2)音像商店向多家订购商订购光盘,然后分类存储在系统中,订购了上千张光盘;还可以根据客户的请求向订购商订购光盘。(3)所有的电影光盘用条码来管理,条码的号码是光盘的唯一标识。(4)音像商店可以向客户销售或租赁电影光盘。使用条码扫描来支持销售或租赁。(5)音像商店建立会员制,会员客户购买电影光盘可以享受折扣。会员卡也使用条码来管理。(6)会员可以通过网络预订电影光盘,
10、并在指定的日期来取。(7)会员可以利用灵活的搜索机制找到喜欢的电影,如果没有对应光盘,可以提出预订。使用 UML 给出上述需求描述的用例图。要求绘制规范,尤其注意“角色用例”和“用例用例”之间的关系。音像商店管理系统音像商店管理系统按请求订购按请求订购 e te订购商订购商订购光盘订购光盘客户客户租赁光盘租赁光盘出售光盘出售光盘网上预订光盘网上预订光盘商店商店搜索光盘搜索光盘会员客户会员客户 e te提出预订提出预订C t没有对应光盘54.根据某毕业设计选题系统的功能描述,使用UML 建模技术,完成需求分析的用例图,包括系统的用例及其子用例(如果有,需要标记与主用例的关系)和角色(Actor)
11、。(1)教师信息维护:教务员录入老师的基本信息;教师信息包括教师ID、教师姓名、教师职称、联系方式、邮箱地址等,可从Excel 中导入;指导教师的联系方式在学生选题功后,才能公开给学生。(2)学生信息维护:教务员录入和维护学生信息,学生信息包括学号(学生 ID)、学生姓名、班级。(3)登录:学生、教师、教务员都需要输入ID 和密码登录系统,使用权限范围内的用例,可以修改个人密码。(4)出题:教师使用此功能登记和维护毕业设计的题目。子功能是在出题过程中,要确定题目的类型,如校内或者校外,可选的是直接指定该题目的选题学生。(5)审题:系主任负责对所有该系教师出的题目进行审核,合格的题目可以发布,不
12、合格的题目要求教师修改。(6)开放选题:教务员将所有审核通过的题目公开,供学生选择。(7)选题:学生浏览公开的题目列表,根据题目要求和个人兴趣及特点,选择相应的题目。(8)确认选题:教师审查自己所出题目的选题情况,对合格的学生予以确认,将不合格的学生删除,并发送邮件通知。毕业设计选题系统毕业设计选题系统审题审题系主任系主任 e teC t题目不合格 e te邮件通知邮件通知C t学生不合格要求修改要求修改确认选题确认选题 cl e出题出题教师教师指定选题学生指定选题学生 e te cl e确认题目类型确认题目类型修改密码修改密码 cl e cl e学生学生登录系统登录系统 cl e选题选题学生
13、信息维护学生信息维护 cl e教务员教务员教师信息维护教师信息维护 cl e开放选题开放选题 cl e统计选题情况统计选题情况 cl e65.以下给出了“老年人监护系统”中的用例及其描述,使用UML 用例图描述该系统,并给出用例之间的联系。(1)摔倒动作检测:从楼梯传感器和摄像头中获取输入数据,用以检测是否有人摔倒。(2)摔倒事件报警:如果检测到某位老人摔倒,那么发送一条报警消息到手机上,同时该报警信息会被发送到用例“事件日志”中进行记录。(3)事件日志:将发生的事件记录在数据库中。(4)床传感器监测:从安装在床位上的床传感器中获取脉搏、呼吸等数据,并发送到用例“事件日志”中处理。(5)配置系
14、统:系统管理员对系统进行各种配置操作。老年人监护系统老年人监护系统摔倒动作检测摔倒动作检测摄像头摄像头 e teC t检测到摔倒摔倒事件报警摔倒事件报警 cl e楼梯传感器楼梯传感器事件日志事件日志 cl e床传感器检测床传感器检测床传感器床传感器配置系统配置系统系统管理员系统管理员76.在图书管理系统中:(1)管理员可进行“删除书籍”和“修改书籍信息”这两个操作,并且这两个操作在执行前都必须先进行“查询书籍”操作。(2)读者可以“还书”,这是一个基础操作如果读者所借书籍超期,还书时要缴纳罚金,即当书籍“超期”时,将执行“缴纳罚金”操作。要求:画出上述系统的 UML 用例图。图书管理系统图书管
15、理系统删除书籍删除书籍 e te查询书籍查询书籍管理员管理员 e te修改书籍信息修改书籍信息还书还书 e te缴纳罚金缴纳罚金读者读者C t超期8第第 4 4 章章软件架构的构建软件架构的构建某报告生成系统的处理流程如下:首先从配置文件中加载必要的参数,然后读取Word 模板文件,模板文件定义了报告的基本格式及相关数据变量的定义及其引用。模板中的内容以数据流的方式依次经过预处理、数据加载及文档生成三个环节,最后产生 doc 或 pdf 格式的报告,如图 4.15 所示。该系统的架构设计采用何种架构模式较为合适?为什么?这种模式有什么优点(两个)?使用管道与过滤器风格较为合适。因为在该系统的处
16、理流程中,每个构件都有一组输入和输出,下一个阶段的输入是上一个阶段的输出,因此适用管道与过滤器风格。该架构的优点是具有良好的信息隐藏性和模块独立性,从而产生高内聚,低耦合的特点。9第第 5 5 章章类的分析与设计类的分析与设计1.针对下述描述建立类模型,画出该系统的分析类图。某软件公司下属的部门分为开发部门和管理部门两类,每个部门由唯一的部门名字确定。每个开发部门可开发多个软件项目,每个管理部门承担公司的若干项日常管理工作。公司的员工分为经理、工作人员和开发者三类。开发部门包括经理和开发者,管理部门包括经理和工作人员。开发项目时,每个项目只能由一位经理主持,但一位经理可主持多个开发项目;每个开
17、发者可参加多个开发项目,每个开发项目也需要多个开发者参与。员工员工公司公司部门部门工作人员工作人员经理经理1开发者开发者1.0.1开发部门开发部门管理部门管理部门1管理工作管理工作10.10.10.1开发项目开发项目2.以下两个类图的含义有何不同?上图表示学生和教室之间的关联关系,即学生在教室上课。这种关联关系是双向的,并且一位学生可以在多个教室有课,一间教室也可以让多个学生上课。下图表示学生和教室之间的依赖关系,即学生在教室自习。依赖关系是单向的,从学生指向教室,表示在自习活动中学生使用教室。依赖关系与关联关系的主要区别还在于依赖是动态的,体现的是对象的瞬时使用关系,具有偶然性、临时性,且并
18、不需要进行保持。此例中,学生使用教室上自习是比较随意的,自习时产生依赖关系,自习结束后依赖关系就解除了。而学生在教室上课则是较为固定的,是双向的关联关系。103.针对第 3 章习题 2、3、4 的描述,在它们用例图的基础上分别给出各自的分析类图。3.2:客户客户1项目主管项目主管11合同合同0.1销售主管销售主管11销售代表销售代表需求需求111相关部门相关部门1预算预算3.3:订购商订购商商店商店1.0.11光盘光盘客户客户11会员客户会员客户11会员卡会员卡11条码条码3.4:系主任系主任审题11教务员教务员教师教师1题目题目出题1学生学生选题111第第 6 6 章章代码生成代码生成1.详
19、细说明图 6.19 所示的类图中两个关联关系表示的含义。级队与班级是组合关系,即班级组成了级队。班级与级队有同样的生存期,一旦级队类的对象被销毁,该级队的所有班级类的对象也都会被销毁。教师与班级是一对多的关联关系,一名教师可以作为班主任管理多个班级,一个班级只有一位班主任。2.下面给出的代码 6.14 是使用 Java 语言对 4 个类的实现。对这些代码使用逆向工程,要求使用 UML 给出它们的设计类图。123.某位系统分析人员针对高校学生选课系统的需求设计了分析类图的草图,如图 6.20 所示。(1)教务人员通过职工号和密码登录系统,录入课程信息。课程信息包括:课程编号、课程名称、授课时间、
20、授课地点。并为每位教师排课:一名教师可以教授0 门或多门课程,1门课程也可以由 1 或多名教师教授。(2)学生通过学号和密码登录系统,选择课程。系统要求 1 门课程至少要有10 名学生选课才能开课,1 名学生至少要选择一门课程。(3)教师通过职工号和密码登录系统,获取课程的学生名单。(4)课程结束后,教师通过该系统录入学生成绩。(5)学生可通过该系统查询自己的课程成绩。请基于图 6.20 进行细化和完善,尽可能补充需要的信息,完成该系统的设计类图,并尝试使用 Java 或 C+语言编写该系统的代码框架。13第第 7 7 章章类的详细设计类的详细设计1.给出下面代码段的程序盒图,并使用状态转换图
21、对该代码段中变量n 的状态变化进行描述。程序盒图:14状态转换图:初始化进入循环j循环循环 =j0 e a lt1 23 5 =2 =8 =3结束循环继续循环2.IP 长途卡的使用过程如下:未使用前,卡密封在塑料卡袋中,密码被遮挡住;一旦开始使用,使用者必须打开卡袋、刮开密码,通过座机绑定使用长途卡;一旦卡上余额不足或者超出长途卡的使用日期范围,长途卡将无法使用。根据以上描述,分析IP 长途卡的状态,绘制其状态图。未使用未使用开始使用打开卡袋刮开密码使用中使用中e t通过座机绑定余额不足或超出日期无法使用无法使用153.绘制该伪代码对应的程序流程图。164.某公司承担空中和地面运输业务。计算货
22、物托运费的规定如下。空运若货物重量小于等于 2kg,则一律收费 6 元;若货物重量大于 2kg 而又小于 20kg,则收费 3 元/kg;若货物重量大于 20kg,则收费 4 元/kg。地运若为慢件,则收费为 1 元/kg。若为快件,当重量小于等于 20kg 时,收费为 2 元/kg;当货物重量大于 20kg 时,收费 3 元/kg。请画出以上规则的判定树。运输方式地运空运货物重量快慢件22206元 20慢件快件3元4元1元货物重量20 202元3元5.绘制一个鼠标单击事件的状态图,将间隔时间或发生的次数作为条件和动作执行的依据。当一个对象被单击选中并且存储在一个变量中时,若在0.5s 内此对
23、象又被单击,则被认为是一次双击操作;若单击的是另外的对象或者该对象在至少0.5s 后才被再次单击,则被认为是对该对象的单击操作。等待点击等待点击点击等待第二次点击等待第二次点击0.5s无点击点击单击操作单击操作双击操作双击操作176.画出下面用 PDL 写出的程序的 PAD 图。7.基于类图 5.9,使用 OCL 完善以下约束:(1)每个项目的计划开始时间不得晚于2018 年 9 月 5 日。(2)每个项目不能作为其本身的前驱项目添加到前驱项目列表中。(3)每个项目的任务集合中不能同时有超过3 个完成进度不足 50%的项目。context ProjectComponent inv:self.s
24、tartPlanned select(s|peletePct size()=318第第 8 8 章章设计优化设计优化1.图 8.25 所示的类图的设计中使用了观察者设计模式,每个券商(Broker)关注的是股票(Stock)的价格,它们可以将感兴趣的股票设定为自选股,并通过方法newStock()购买指定的股票。如果股票的价格发生了变化,所有选定该股票为自选股的券商将会得到通知,包括该股票的名字,这里假定每个股票有唯一的名字。使用Java 语言对该类图进行实现,要求券商得到股价改变的通知后,输出该券商的名字、股票的名字及股票的最新价格。可将该系统的界面设计为如图 8.26 所示的模式。Brok
25、erInterface.javapackagepackage com.nikesu.course.softwareengineering.observer;publicpublic interfaceinterface BrokerInterface publicpublic voidvoid update(String stockname);Broker.javapackagepackage com.nikesu.course.softwareengineering.observer;importimport java.util.ArrayList;importimport java.uti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连理工大学 软件 学院 软件工程 作业 答案 2019
限制150内