软件工程习题解答(含基本章节应试例子以及一个UML案例)
- 格式:doc
- 大小:1.09 MB
- 文档页数:25
软件工程期末考试参考题及答案1. 考试题目:软件需求工程考试要求:根据给定的需求文档,完成以下题目。
题目一:根据给定的需求文档,设计一个在线购物系统。
请根据以下要求完成系统设计:(1)使用UML类图绘制系统的类结构;(2)使用UML时序图描述用户登录和浏览商品的流程;(3)使用UML活动图描述用户下订单的流程。
答案:(1)类图如下所示:[在这里插入UML类图图片](2)时序图如下所示:[在这里插入UML时序图图片](3)活动图如下所示:[在这里插入UML活动图图片]题目二:根据给定的需求文档,设计一个在线学习系统。
请根据以下要求完成系统设计:(1)使用UML用例图描述系统的功能需求;(2)使用UML活动图描述学生完成在线学习的流程;(3)使用UML状态图描述学生的学习状态变化。
答案:(1)用例图如下所示:[在这里插入UML用例图图片](2)活动图如下所示:[在这里插入UML活动图图片](3)状态图如下所示:[在这里插入UML状态图图片]2. 考试题目:软件设计模式考试要求:根据给定的题目,选择并解答以下问题。
题目一:分析以下代码,判断其使用了哪种设计模式,并阐述该设计模式的作用和优势。
```javapublic interface Car {void drive();}public class Sedan implements Car {@Overridepublic void drive() {System.out.println("Driving a sedan car."); }}public class SUV implements Car {@Overridepublic void drive() {System.out.println("Driving an SUV car."); }}public class CarFactory {public Car createCar(String type) {if (type.equals("sedan")) {return new Sedan();} else if (type.equals("suv")) {return new SUV();} else {throw new IllegalArgumentException("Invalid car type: " + type);}}}```答案:该代码使用了工厂模式。
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
一、某企业为了方便员工用餐,餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业内联网使用该系统。
企业的任何员工都可以查看菜单和今日特价。
系统的顾客是注册到系统的员工,可以订餐(如果未登录,需先登录)、注册工资支付、预约规律的订餐,在特殊情况下可以覆盖预订。
餐厅员工是特殊顾客,可以进行备餐、生成付费请求和请求送餐,其中对于注册工资支付的顾客生成付费请求并发送给工资系统。
菜单管理员是餐厅特定员工,可以管理菜单。
送餐员可以打印送餐说明,记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。
顾客订餐过程如下:1.顾客请求查看菜单;2.系统显示菜单和今日特价;3.顾客选菜;4.系统显示订单和价格;5.顾客确认订单;6.系统显示可送餐时间;7.顾客指定送餐时间、地点和支付方式;8.系统确认接受订单,然后发送Email给顾客以确认订餐,同时发送相关订餐信息通知给餐厅员工。
系统采用面向对象方法开发,使用UML进行建模。
绘制出系统的顶层用例图和一次订餐的活动图。
(09.12)二、某银行计划开发一个自动存提款机模拟系统(ATM System)。
系统通过读卡器(CardReader)读取ATM 卡;系统与客户(Customer)的交互由客户控制台(CustomerConsole)实现;银行操作员(Operator)可控制系统的启动(System Startup)和停止(System Shutdown);系统通过网络和银行系统(Bank)实现通信。
当读卡器判断用户已将ATM卡插入后,创建会话(Session)。
会话开始后,读卡器进行读卡,并要求客户输入个人验证码(PIN)。
系统将卡号和个人验证码信息送到银行系统进行验证。
验证通过后,客户可从菜单选择如下事务(Transaction):1. 从ATM卡账户取款(Withdraw);2. 向ATM卡账户存款(Deposit);3. 进行转账(Transfer);4. 查询(Inquire)ATM卡账户信息。
UML基础与Rose建模实用教程课后习题及答案第1章面向对象概述1. 填空题(1)软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。
(2)类是具有相同属性和操作的一组对象的组合,即抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
(3)面向对象程序的基本特征是抽象、封装、继承和多态。
2. 选择题(1)可以认为对象是ABC。
(A)某种可被人感知的事物(B)思维、感觉或动作所能作用的物质(C)思维、感觉或动作所能作用的精神体(D)不能被思维、感觉或动作作用的精神体(2)类的定义要包含以下的要素ABD。
(A)类的属性(B)类所要执行的操作(C)类的编号(D)属性的类型(3)面向对象程序的基本特征不包括B。
(A)封装(B)多样性(C)抽象(D)继承(4)下列关于类与对象的关系的说法不正确的是A。
(A)有些对象是不能被抽象成类的(B)类给出了属于该类的全部对象的抽象定义(C)类是对象集合的再抽象(D)类用来在内存中开辟一个数据区,并存储新对象的属性3. 简答题(1)什么是对象?试着列举三个现实中的例子。
对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子.椅子.汽车等。
(2)什么是抽象?抽象是对现实世界信息的简化。
能够通过抽象将需要的事物进行简化、将事物特征进行概括、将抽象模型组织为层次结构、使软件重用得以保证。
(3)什么是封装?它有哪些好处?封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。
封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。
对象的私有属性只能够由对象的行为来修改和读取。
二是尽可能隐蔽对象的内部细节,与外界的联系只能够通过外部接口来实现。
通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:避免对封装数据的未授权访问、帮助保护数据的完整性、当类的私有方法必须修改时,限制了在整个应用程序内的影响。
软件⼯程习题解答(含基本章节应试例⼦以及⼀个UML案例)软件⼯程习题解答⼀、软件⽣存周期各阶段的基本任务?1. 问题定义:(1)回答要解决的问题是什么。
(2)系统分析员应该提出关于问题性质、⼯程⽬标和规模的书⾯报告。
(3)经过和⽤户讨论,澄清含糊不清的地⽅,改正理解不正确的地⽅,得出⼀份双⽅都满意的⽂档。
(4)问题定义是软件⽣命周期中最简短的阶段。
2.可⾏性研究:(1)前⼀阶段定义的问题有可⾏的解决办法吗?(2)系统分析员要进⾏⼀次⼤⼤压缩和简化了的系统分析和设计。
导出⾼层逻辑模型(⽤数据流图表⽰)。
确定⼯程规模和⽬标,准确估计系统的成本和效益。
(3)使⽤部门的负责⼈根据可⾏性研究的结果决定是否继续进⾏该⼯程的开发⼯作。
3.需求分析:(1)主要确定⽬标系统必须具备哪些功能。
(2)系统分析员和⽤户密切配合,充分交流,得出经⽤户确认的系统逻辑模型(数据流图、数据字典、算法描述)。
4.总体设计:(1)回答如何解决问题。
(2)系统分析员应使⽤系统流程图或其他⼯具描述每种可能系统;估计每种⽅案的成本和效益。
推荐⼀较好的系统──有其详细计划。
设计软件的结构(⽤层次图或结构图描述)。
5.详细设计:(1)回答应该怎样具体地实现这个系统。
(2)设计出程序的详细规格说明(⽤HIPO层次图加输⼊/处理/输出图)或PDL语⾔(过程设计语⾔)。
6.编码和单元测试:(1)写出正确的容易理解,容易维护的程序模块。
(2)程序员:选取⼀种适当的⽤⾼级语⾔书写程序(或汇编语⾔)。
仔细测试编写出的每⼀个模块。
7.综合测试:(1)通过各种类型的测试,使软件达到预定的要求。
(2)最基本的测试是集成测试和验收测试⽅法。
集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的过程中对程序进⾏必要的测试。
验收测试是按照需求规格说明书的规定,由⽤户对⽬标系统进⾏验收。
(3)⽤正式⽂档将测试计划、详细测试⽅案以及实际测试结果保存。
第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
软件工程(第四版)习题及解答1-7软件工程(第四版)习题及解答1-7软件工程一直是信息技术领域中一门重要的学科,它涉及到软件设计、开发、测试和维护等多个方面。
对于学习软件工程的学生来说,练习和解答一些相关习题是非常重要的。
本文将为大家提供《软件工程(第四版)》中的习题1-7的解答和详细讨论。
1. 习题1题目描述:什么是软件工程?为什么软件工程如此重要?解答:软件工程是一门学科,涵盖了软件开发的所有阶段,包括需求分析、软件设计、编码、测试和维护等。
软件工程关注如何以系统化的、规范的方法来开发高质量的软件。
软件工程之所以如此重要,原因有以下几点:首先,软件工程能够提供一个结构化的方法来开发软件,保证开发流程可控、可预测。
通过规范的过程和方法,可以减少软件开发过程中的风险和错误。
其次,软件工程将软件开发过程分解为不同的阶段,并引入了各种工具和技术来支持这些阶段的开发工作。
这些工具和技术能够提高开发效率,减少开发成本。
此外,软件工程还注重软件质量管理,包括软件测试、验证和验证等方面,以确保最终交付给用户的软件是高质量可靠的。
最后,软件工程也关注软件的维护和更新。
由于软件在使用过程中会面临各种问题和需求变化,软件工程可以帮助开发人员及时响应和解决这些问题,提供更好的用户体验。
2. 习题2题目描述:简要解释软件需求分析的目标和过程。
解答:软件需求分析的目标是识别和规范用户对软件系统的需求,确保开发人员和用户对软件系统的期望一致,并将这些需求转化为可行的系统规格说明。
软件需求分析的过程包括以下几个步骤:1) 需求收集:通过与用户沟通、调研等方式,收集用户对软件系统的需求。
可以采用面谈、问卷调查、观察等方法。
2) 需求分析和整理:对收集到的需求进行分析和整理,将其转化为可理解的形式。
可以使用需求建模工具和技术,如用例图、数据流图等。
3) 需求规格说明:在此阶段,将需求转化为详细的规格说明,包括功能需求、性能需求、质量需求等。
ATM建模1、浏览器和框图窗口之间有关系吗?如果有,是怎么样的关系?答:有。
我们可以用浏览器打开一个或几个UML框图。
改变框图中的元素时,Rose自动更新浏览器。
同样用浏览器改变元素时,Rose自动更新相应框图。
这样,Rose就可以保证模型的一致性。
2、用例图中的参与者和用例分别表示什么?答:从用例图中我们可以看到系统干什么,与谁交互。
用例是系统提供的功能(系统“干什么”),参与者是系统与谁交互,参与者可以是人、系统或其他实体。
3、ATM用例图中的箭头从参与者指向用例表示什么?从用例指向参与者又表示什么?答:箭头从参与者到用例表示由参与者启动用例。
箭头从用例到参与者表示用例产生一些参与者要使用的信息。
4、RUP有哪五个工作流程?我们在RUP的哪个工作流程中画用例图?答:RUP(统一软件开发过程)的五个核心工作流程包括:需求捕获、分析、设计、实现和测试。
在需求捕获时画用例图。
5、活动图中的泳道表示什么意思?答:泳道是活动图里的竖段,包含特定人员或组织要进行的所有活动。
可以把活动图分为多个泳道,每个泳道对应每个人员或组织,他们各自的活动都放在各自的泳道中。
6、活动图中的同步棒表示什么意思?答:表示并发控制流的分叉和汇合。
结合图中具体来说,同一段时间内这几个活动同时发生/这几个活动都结束之后才进入下个决策点的判断中。
7、活动图中的初始状态和终止状态分别用什么表示?数目上有什么限制?答:实心圆和牛眼。
初始状态必须有,而且只能有1个。
终止状态可以是0,1或多个。
8、活动图中决策点之后的[ ]里的内容是什么,有什么要求?答:保证条件,用来控制在决策之后采取什么路径。
保证条件应该是互斥的。
9、类由哪几部分组成,分别表示什么意思?答:类图中每个类都是用方框表示的,分成三个部分。
第一部分是类名;第二部分是类包含的属性,属性是类和相关的一些信息;最后一部分包含类的方法,方法是类提供的一些功能。
10、类的属性和方法左边有一些修饰,分别表示什么意思?答:若是一个小锁图标,表示这个属性和方法是private的(UML中用’-’表示),该属性和方法只在本类中可访问。
uMia件建模教程课后习题习题i一、简做题1,简述模型的作用.答:现实系统的复杂性和内隐性,使得人们难于直接熟悉和把握,为了使得人们能够直观和明了地熟悉和把握现实系统,就需要借助于模型.2,软件模型有什么特征答:建模对象特殊,复杂性,多样性3,软件建模技术有哪些因素答:软件建模方法,软件建模过程,软件建模语言,软件建模工具4.软件模型包括哪些方面的内容答:从模型所反映的侧面看:功能模型,非功能模型,数据模型,对象模型, 过程模型,状态模型,交互模型,架构模型,界面模型等;从软件开发工作看:业务模型,需求模型,分析模型,设计模型,测试模型等.5,软件建模工具应该具有哪些根本功能答:软件模型的生成和编辑,软件模型的质量保证,软件模型治理等二、填空题1、模型是对现实的〔抽象〕和模拟,是对现实系统〔本质〕特征的一种抽象、简化和直观的描述.2、模型具有〔反映性〕、直观性、〔简化性〕和抽象性等特征.3、从抽象程度,可以把模型分为〔概念模型〕、逻辑模型和〔物理模型〕三种类型.4、较之于其他模型,软件模型具有〔建模对象特殊〕、复杂性和〔多样性〕等特征.5、软件模型是软件开发人员交流的〔媒介〕,是软件升级和维护的〔依据〕.6、软件建模技术的要素包括软件建模方法、〔软件建模过程〕、软件建模语言和〔软件建模工具〕.7、从开发阶段看,软件建模有业务模型、〔需求模型〕、分析模型、〔设计模型〕和测试模型.8、软件语言有软件需求定义语言、〔软件设计语言〕、软件建模语言、〔软件结构描述语言〕、软件程序设计语言等.9、根据软件建模工具的独立性,把软件建模工具分为〔独立软件〕建模工具和〔插件式软件〕建模工具.10、OM阱〔1997 〕年把UML乍为软件建模的标准,UML2.0版本是〔2005 〕年公布的.三、选择题1、对软件模型而言,下面说法错误的选项是〔D 〕.A.是人员交流的媒介B.是软件的中间形态C.是软件升级和维护的依据D.是软件的标准文档2、下面说法错误的选项是〔B 〕.A.数据流图是面向功能软件建模方法提供的方法B.用例图是面向对象方法提供的建模方法C.类图是面向对象建模方法提供的建模方法D.ER图是面向数据建模方法提供的建模方法四、思考题1、软件为什么一定要建模2、谈谈对下面这句话的理解:〞软件是一种特殊的事物,它以一种可程式化和可动态复现的方式来反映人头脑中的可计算性意识,并通过这些意识的动态性外化,打到对客观以及人的主观意识的反映.〞习题2一、简单题1、简述UML勺开展过程.答:Rational公司在众多软件开发方法的根底上于1996年提出了UML0.9 版本,1997年把UML1.0版本提交给OMG 1997年被OMGE式批准成为标准,19 98 年UML1.2 版,1999 年UML1.3版,2001 年 1.4 版本,2003 年1.5 版本,200 5年2.0版本,2021年2.2版本,2021年2.3版本,现在已经上升为2.4版本.2、作为一种统一建模语言,UMLt哪些局部构成答:UML由模型元素、图、语义规那么和公共机制及局部构成3、元模型理论是UML勺根底,元本g型分为哪4个层次答:元元模型、元模型、模型、对象4、聚集关系和组合关系有什么区别答:聚合关系表示整体与局部之间是松散的组成关系,连接一个整体对象的另外一些局部的对象,也可以充当其他对象的局部对象;组合关系那么表示联系紧密的组成关系,整体对象和局部对象之间是同存同亡的关系,而且在组成关系中的局部对象不能和另一个整体对象再进行连接5、用例与协作有什么区别答:协作是对用例的实现6.模型元素的可见性含义是什么答:模型元素可被其他模型元素访问的程度,共分为公用,受限,私有,包四种.7. UML勺构造型有什么作用答:给UM3义的模型元素赋予新的含义,定义新的模型符号,改换模型元素的表示形式.二、填空题1、1995年,G.Booch和J.Rumbaughft众多方法根底上提出了〔Unified M ethod 0.8 〔统一方法0.8〕〕 , 2005 年UML隹出了其〔UML 2.0 〕版本.2、作为一种建模语言,UML虫立于软件建模〔方法〕和建模〔过程〕.3、给出UML勺两个特点:〔统一标准〕和〔体系标准〕.补充:〔方便实用和独立于建模方法和建模过程〕4、可以把UML2.0版本的13种图划分〔静态结构图〕和〔动态行为图〕两种类型.5、元模型划分为4个层次,上一层是对下一层的〔抽象〕,下一层是上一层的〔实例化〕.6、泛化关系等同于〔继承关系〕.7、接口可以被分为〔需求借口〕和〔供给接口〕两种类型.8、作用域是模型元素的〔作用空间〕,也被称为命名空间,一个模型在其命名空间中可以被〔唯一识别〕9、模型元素的可见性有:公开、〔私有〕、保护和包几种形式.10、UMU勺扩展机制包括〔构造型〕、标记值和〔约束〕.三、选择题1、对UM比法不正确的选项是〔D 〕.A.由Rational公司推出B.基于面向对象方法C.Jacobson参与了UNL的研制D.1996年正式成为国际标准2、下面不属于UML#点的是〔A 〕.A.基于建模过程B.统一标准C.体系标准D.方便实用3、下面说法不正确的选项是〔D 〕.A.元模型理论是UML勺根底B.元模型分为4个层次C.元元模型处在最顶层,用户对象处在最底层D.元模型是对用户对象的抽象4、下面说法不正确的选项是〔B 〕.A.元素是模型的要素B.元素是UML真型中最抽象的要素C.元素可以拥有自己的元素D.元素不能直接产生实例5、对关系来说,下面说法不正确的选项是〔 C 〕.A.关系也是UML勺兀素B.关系分为有向关系和无向关系C.关联关系是一种有向关系D.泛化关系是一种有向关系6、对命名空间来说,下面说法不正确的选项是〔 D 〕.A.命名空间可以拥有多个命名元素B.命名空间也是命名元素C.命名空间与所拥有的命名元素是组成关系D.命名元素必须隶属于一个命名空间7、下面概念不正确的选项是(D )A.类是一组对象的集合B.接口分为需求接口和供给接口两种类型C.构件是可以封装的软件局部D.结点是可以独立部署的软件部件四、思考题1、在软件工程领域,UMUfg够被广泛接受的原因是什么2、图在软件建模中的作用是什么习题3一、简做题1.什么叫参与者,参与者有哪些根本特性答:参与者也被称为活动者,是与系统发生交互的外部实体.参与者的特性有:(1)参与者位于系统的外部,不属于系统的内容;(2)参与者与系统发生交互关系,交互关系主要有:使用系统,启动系统, 获取系统信息或给系统提供信息;(3)参与者和系统之间存在交互信息的接口,系统提供接口让参与者使用系统,或者系统通过参与者的接口与参与者进行交互.2.用例有哪些特性答:概括起来,用例有以下特性:(1)用例描述用户对系统的期望,被用于软件需求建模,一个用例对应于软件能够为参与者提供的一项效劳.(2)用例反映参与者与系统一次完整的交互过程.这个交互过程总是要耗费一段时间,并执行一定的流程.流程的执行是参与者与系统的一段互动过程, 在这个过程中有输入到系统的信息,以及系统反应给参与者的信息.〔3〕用例的执行过程是系统为参与者的一次效劳过程,这个效劳就表达为系统提供给参与者的功能.一个用例执行的完成,需要有确定的评价结果,这个结果表现为系统提供给参与者的一项完整的功能.〔4〕用例是软件设计和测试的依据.3.用例之间有哪几种关系答:泛化关系,包含关系,扩展关系.4.用例表达应该包括哪些根本内容答:包括:用例编号,用例名,参与者,前置条件,事件流,后置条件.二、填空题1、用例图的要素包括〔参与者〕、用例和〔关系〕.2、参与者的英文名称是〔actor 〕,参与者也被称为〔活动者〕.3、参与者的类型可以是〔人〕、设备、〔其他系统〕和时间.4、用例的英文名称是〔usecase 〕,也被称为〔用况〕和〔用案〕.5、用例之间的关系有〔泛化〕、包含和〔扩展〕.6、执行用例之前系统所处的状态被称为〔前置条件〕,〔事件流程〕被称为用例执行的流程.三、选择题1、下面不属于用例图作用的是〔C 〕.A.展现软件的功能B.展现软件使用者和软件功能的关系C.展现软件的特性D.展现软件功能相互之间的关系2、下面〔B 〕不属于用例图的要素.A.参与者B.包含C.用例D.关系3、下面对参与者说法不正确的选项是〔A 〕.A.是系统的一个实体B.也叫活动者C.在系统外部D.与系统发生交互4、下面〔〕不属于参与者类型〔D 〕.A.人B.设备C.外部系统D.交互对象5、下面对用例说法不正确的选项是〔C 〕.ecaseB.用况C.使用情况D.用案6、下面不属于用例特点的是〔B 〕.A.用例描述用户可见的软件功能B.用例反映功能的不同抽象层次C.用例反映参与者与系统一次完整的交互过程D.用例是软件设计和测试的依据7、下面不属于用例之间关系的是〔A 〕.A.关联B.泛化C.包含D.扩展四、练习题1、根据自己的理解,把图3.30所示的用例图补充完整.2、找出图3.31中存在的问题,并修改正确.图 3.313、宾馆客房业务治理提供客房预订、预定变更、客房入住、退房结账、旅客信息查询几个方面的功能.订房人可以通过、短信、网络或面对面等方式预订客房.允许预订人根据自己情况的变化更改预订信息. 旅客入住客房前需要出示证件并登记,并要预交一定的押金.旅客提交押金后,柜台工作人员将在计算机上登记旅客信息、分配房间,并打印旅客入住单,旅客持入住单到指定客房入住.旅客离开宾馆前需要退房结账.旅客或宾馆治理人员可以随时查询旅客或客房的入住信息.建立该问题的用例模型.4、因业务开展的需求,需要开发一个超市治理系统.超市治理的根本业务需求是:(1)对超市的所有货品信息进行治理,并能够及时更新货品信息.(2)对供货商进行治理,提供供货商根本信息治理,供货商的货品治理, 并能够及时更新供货信息.(3)对订货进行治理,提供订货、取消订货、更新订货、付款、订货状态跟踪、订货信息查询等功能.(4)对销售进行治理,提供收款、打印收货单、结账、销售信息查询等功能.试分析以上问题,并通过用例图描述该系统的功能.5、某学校要开发一个网上选课系统.该系统提供以下根本功能:(1)建立课程,教务人员通过本系统建立课程信息.(2)课程维护,教务人员修改和删除课程信息.(3)安排课程,教务人员安排课程,课程的安排信息包括周学时、授课时问、授课老师、教师等信息.(4)调整课程,教务人员对已经安排的课程信息进行调整.(5)课程浏览,用户可以浏览和查询课程信息.(6)学生选课,学生登录本系统,选择自己要选修的课程.(7)选课浏览,学生浏览自己选修的课程.试分析以上问题,并通过用例图描述该系统的功能.习题4一、简做题1.什么叫对象答:对象的本意是指熟悉的指向物.在计算机软件中,对象用来表示客观事物的一个实体,它封装了一组属性和操作.从形式上看,对象是一段具有特定语法规那么的程序单元,它能够作为软件系统的一个相对独立的根本单位, 在软件中承当确定的效劳职能.2.简述实例的概念.答:实例是类元中的一个元素.3.简述类元的概念.答:类元是对聚集一组具有共同特征的实例的模型元素的通称,类、接口、用例、参与者、关联等都属于类元.类元的名字用标识符来表示,首字母要大写. 类元会包括一组实例.4.什么叫类答:类是具有相同性质的一组对象的集合,这组对象具有相同的特征、约束和语义.5.类有哪几种类型答:按阶段分:业务对象,PIM类,PSMfe;按作用分:实体类,限制类, 界面类.6.简述接口的概念.答:接口是一种类元,聚集了一组需要通过其他类元实现的公共的操作和属性二、填空题1.熟悉的对象可以是客观中一种具体的〔事物〕,也可以是主观中的一个抽象〔观念〕.2.软件中的对象是一段具有特定语法规那么的〔程序单元〕,它能够作为软件系统的一个相对独立的根本单位,在软件中承当确定的〔效劳职能〕.3.类描述具有相同性质的一组对象的〔集合〕,类用〔矩形〕来表示.4.按作用,可以把类分为〔实体类〕,边界类和〔限制类〕几种类型.5.接口可以分为〔需求接口〔需口〕〕和〔供给接口〔供口〕〕两种类型.三、选择题1.在熟悉过程中,下面哪个不是对象的要素〔 D 〕.A.熟悉的指向物B.熟悉者C.熟悉指向物在熟悉者主观中的反映D.熟悉的背景2、下面哪一个对对象的说法不正确〔B 〕.A.客观实体B.事物的对立面C.熟悉的指向物D.软件的一个根本单位3、下面属性命名不正确的选项是〔A 〕.A.*Birthday : DataB.#studentBirthday : Data=1999-10-21C.-price : float=12.01{R/W}D.+studentName : String= "张敏〞4、指出下面不适宜的类名〔B 〕.A.材料B.事物C.订单D.会员5、下面不是对象图作用的是〔A 〕.A.功能逻辑建模B.初期分析工具C.描述业务场景D.模拟运行场景四、练习题1.在一个订货系统中,采购员从供货商处订货,双方需要签订订单,一个采购员可以订多个供货商的货品,一个供货商也可以给多个采购员供货. 分析这个问题,并用类图对这个问题进行建模.2.一个企业可以雇佣多个人员.企业的性质包括名称、地址、、简况.人员的情况包括姓名、年龄、性别、住址、、简历等.雇佣的信息包括雇佣的开始日期、截止日期,简要说明等.双方要签订雇佣合同.雇佣还涉及被雇用人员所聘请的工作岗位.分析这个问题,提取这个问题所涉及的类,定义各个类之间的关系,并画出类图.3.分析第3章练习题第3题描述的宾馆客房业务治理问题,提取涉及的类, 并画出类图.4.根据自己的理解,对图4.79中不合理之处进行修改.图 4.79图 4.805.修改图4.80中不合理之处.6.某高校中有以下事物:学校、教师、教室、教材、课程、课桌、学生、班级、学院、讲台、机房、计算机、交换机、社团,试绘制反映这些事物联系的类图.7.分析书店图书销售治理业务,提取相关的类,并画出类图.8.分析超市购物治理业务,提取相关的类,并画出类图.习题5一、简单题1,什么叫包答:包是对模型元素进行分组的模型元素,可以把包比作一个存放模型元素的箱子或容器,在它里面可以存放多个模型元素.2.包之间存在哪几种关系答:依赖,导入,合并,包含3.3,包图有什么作用答:分类组织模型元素,模型结构建模,命名空间建模4.在软件建模中,复合结构图有什么作用答:可以直观反映类及其成员的组成结构,并可以描述成员的多重性,成员的连接,以及类的端口等5,协作在建模中的作用是什么答:用例分析与设计建模,设计模式建模二、填空题1.包是对模型元素进行〔分组〕的模型元素,包的英文名是〔package 〕 ,2.包的可见性有〔公开〕、私有和〔保护〕几种.3.包的依赖关系可以分为〔使用〕、抽象和〔跟踪〕几种形式.4,包导入可以分为〔元素导入〕和〔包导入〕两种类型.5.包的包含关系是指一个包可以〔嵌套〕另外一个包作为自己的〔子包〕6,复合结构图也被称为〔组合结构图〕,它用来描述类及其成员的〔组成结构〕及成员之间的连接关系.7.协作的用途有〔用例分析与设计建模〕和〔设计模式建模〕.三、选择题1.下面不属于包关系的是〔C 〕.A.导入关系B.合并关系C.关联关系D.依赖关系2.下面说法错误的选项是〔B 〕.A.共同重用是为了提升包的独立性B.子类的稳定性比父类的稳定性好C.共同封闭是为了提升包的聚合性D.包不应该存在循环依赖四、思考题谈谈包在软件结构建模中的作用.习题6一、简做题1.活动的含义是什么答:活动的一般含义是指在过程中能够完成确定任务的一组相关动作的集合.2.动作与活动存在什么关系答:动作是活动的一个根本执行单位,假设干个动作根据一定的流程联系起来,就构成一个活动.活动可以分解为多个动作,但动作一般不再分解.3.什么叫令牌它有什么作用答:令牌被定义为一个可以赋予结点执行权力的数据结构,这个数据结构可以在活动图的各个结点之间进行传递,一个结点只有获得令牌才可以执行.4.什么叫引脚答:引脚是用来作为动作参数的对象结点,因此引脚也被称为动作参数结点.由于在动作的两边通过小插脚来表示动作参数结点,这种小插脚和集成电路芯片的引脚很相像,因此被称为引脚.5.活动图的作用是什么答:在软件建模中,活动图可以用于业务流程、工作流和算法流程建模.二、填空题1.动作是活动的根本〔执行〕单位,活动可以分解,动作一般不再〔分解〕.2.令牌被分为〔限制令牌〕和〔对象令牌〕两种类型.3.活动结点分为〔动作结点〕、对象结点和〔限制结点〕三种类型.4.动作参数结点被形象地称为〔引脚〕,它属于一种特殊的〔对象〕结点.5.异常处理器包括〔被保护结点〕、异常处理结点和〔异常对象结点〕三个要素.三、选择题1.下面说法不正确的选项是〔D 〕.A. 一个过程包括多个活动B. 一个活动包括一组动作C.一个动作包括多个操作D. 一个操作包括多个引脚2.下面哪一个不属于活动图建模的作用〔A 〕.A.消息流程建模B.工作流程建模C.业务流程建模D.操作流程建模3.对限制节点,下面说法正确的选项是〔B 〕.A. 一个活动只有一个起始结点B. 一个活动可以有多个起始结点C.一个活动只有一个活动终止结点D. 一个活动有活动终止结点就不能有流终止结点4.下面哪一个不属于对象结点〔C 〕A.活动参数结点B.引脚C.队列D.中央缓冲结点5.下面说法不正确的选项是〔A 〕A. 一条活动的边权重规定同时通过该边令牌的最大数目B.限制流不能连接对象结点C.对象流至少要连接一个对象结点D.对象流传递对象令牌四、练习题1.小蓝周末休息,到附近超市购物.进入超市后,先找到一辆购物车,然后在超市的各层选择自己所要的商品. 选购好后,小蓝到收银队排队,排到自己时收银员一件件地扫描小蓝选购的商品,在收银机的计价器上动态显示商品的累计金额.扫描完后,收银员问小蓝有没有会员卡,小蓝把自己的会员卡交给收银员, 收银员扫面小蓝的会员卡,计价器上显示小蓝的总钱数是60.5元.小蓝如数交了货款,收款机打印出小蓝的购物单,小蓝提供自己采购的物品回家.分析这个问题,并用活动图描述小蓝购物的过程.2.下面是书店售书处理的用例表达,分析用例表达中的事件流程,并用活动图描述出这个流程.售书处理用例编号:02-03用例名:售书处理参与者:售书员前置条件:售书员登录系统事件流程:1.当售书员选择“售书处理〞功能时,启动该用例.2.售书员扫描要销售图书的图书编号.3.系统显示该图书的图书信息以及当前的库存数量.4.如果该图书的购置册数多于1本,输入购置册数.5.如果购置者不是会员,直接进入第7步;是会员,输入会员编号.6.系统显示会员信息.7.系统显示图书总价.8.售书员收取图书书款.9.售书员选择“确认收款〞按钮.10.系统打印售书单.11.售书员撕下售书单,连同图书一并交给读者.12.本次售书结束.3.某教学系统操作员登录过程是:启动该系统,系统给出登录窗口.在登录窗口中输入用户名和密码.如果用户名或密码有误,那么系统提示错误,操作员重新输入;假设连续3次用户名或密码均没有输入正确,那么系统拒绝登录.如果输入正确,那么进入系统.用活动图描述操作员的登录过程.4.李晓在大学二年级时参加计算机等级测试, 他持自己的身份证和学生证到学校的计算机等级测试治理办公室报名.工作人员首先检查李晓的证件,在检查合格后交给李晓一份登记表, 让李晓填写.李晓填好登记表,交给工作人员.工作人员把他的登记表信息录入计算机系统,并用数码相机给李晓拍照,然后打印计算机等级测试证,要求李晓缴纳报名费.李晓缴纳报名费后,工作人员把测试证和缴费收据交给李晓. 分析计算机等级测试的报名过程,并用活动图描述报名过程.5.分析银行储蓄的业务过程,用活动图描述储户在银行取款的业务过程.6.分析医院挂号的业务过程,用活动图描述医院挂号的业务过程.习题7一、简单题1.什么是状态,对象的状态和对象的属性有什么区别答:状态指事物在其生命周期中满足某些条件、执行某些操作或等待某些事件而持续的一种稳定的状况.对象的属性是对象所表示事物的静态性质,它与对象的状态有不同的含义.2.状态机图通常由哪几局部组成状态转换的要素有哪些答:状态机图由状态结点,限制结点和转换边构成.状态转换有触发条件、监护条件和转换动作等局部.3.复合状态的状态转换的外部转换和局部转换的区别是什么请举例说明.答:外部转换是复合状态与其他状态之间发生的状态转换,内部转换是在复合状态内部的子状态之间发生的转换.例子省略.4.历史状态的含义是什么答:历史状态为一个状态机或复合状态提供了一种在退出状态时记忆当前活动所处的子状态,并能够返回到该子状态的机制.二、填空题1.一个状态转换包括〔触发事件〕、监护条件和〔转换动作〕三要素.2.无触发转换指〔源状态执行完成后,不需要事件触发而自动转换到目标状态〕.3.状态机图描述一个对象在不同〔事件〕的驱动下发生的状态转移.、选择题1.状态机图可以表现(B )在生存周期的行为、所经历的状态序列、引起状态转换的事件以及因状态转换引起的动作.A. 一组对象B. 一个对象C.多个执行者D.几个子系统2.下面(D )不属于状态的类型.A.子机状态B.复合状态C.简单状态D.激活状态3. ( B )不属于状态转换的要素.A.事件B.活动C.条件D.动作四、练习题1.假设有一车库电动门由电机驱动进行上下移动, 向上移动开门,向下关门, 当门完全翻开或者完全关闭时,点击自动停转.绘制一个电动门( ElectDoor ) 的状态机图.2.某销售POSL的工作流程是:当客户到收银台后,收银员逐一扫描用户购买的商品的条码,扫描完成后,计算出商品总金额,然后等待用户付款.收款并确定支付成功后,完成一个客户的售货,等待下一个客户.请为其绘制出相应的状态机图.3.简单的数字手表外表上有一个显示屏和两个设置按钮A和B,有两种操作模式:显示时间和设定时间.在显示时间模式下,手表会显示小时和分钟,小时和分钟由闪烁的冒号分割.设定时间模式有两种子模式:设定小时和设定分钟;4、假设某人有三位QQ子友,启动QQt,可以处于;习题8; 一、简做题;1.什么叫交互;答:交互表示一组相关的对象在动作执行中,通过相互;2.什么叫生命线;答:生命线表示参与交互的一个实体及实体集合;3.消息有哪几种类型;答:同步调用消息,异步调用消息,异步信号,应答消;4.交互图有哪几种形式;答:顺序图,通信图,交互概览图,时式:设定小时和设定分钟.按钮A选择模式,每次按下此按钮时,模式会连续前进:显示小时、设定小时、设定分钟和显示分钟等.在子模式内,每次只要按下按钮。
一、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A)可行性研究,问题定义,需求分析。
B)问题定义,可行性研究,需求分析。
C)可行性研究,需求分析,问题定义。
D)以上顺序都不对。
(软件开发时期:概要设计、详细设计、软件实现、软件测试)2.可行性研究主要从以下几个方面进行研究:(A)A)技术可行性,经济可行性,操作可行性。
B)技术可行性,经济可行性,系统可行性。
C)经济可行性,系统可行性,操作可行性。
D)经济可行性,系统可行性,时间可行性。
3.耦合是对软件不同模块之间互连程度的度量。
各种耦合按从强到弱排列如下:(C)A)内容耦合,控制耦合,数据耦合,公共环境耦合。
B)内容耦合,控制耦合,公共环境耦合,数据耦合。
C)内容耦合,公共环境耦合,控制耦合,数据耦合。
(内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合)D)控制耦合,内容耦合,数据耦合,公共环境耦合。
4.在详细设计阶段所使用到的设计工具是:(C )A)程序流程图,PAD 图,N-S 图,HIPO 图,判定表,判定树.B)数据流程图,Yourdon 图,程序流程图,PAD 图,N-S 图,HIPO 图。
C)判定表,判定树,PDL,程序流程图,PAD 图,N-S 图。
D)判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。
详细设计阶段工具:判定表、判定树、数据流程图、系统流程图、程序流程图、PAD 图、N-S 图、PDL在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS 图)和问题分析图(PAD) .常用的语言描述工具为 PDL(程序设计语言) ,常用的表格描述工具有判定表和判定树.DFD 数据流图:总体设计阶段5.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A)A)模块的作用域应在模块的控制域之内。
B)模块的控制域应在模块的作用域之内。
C)模块的控制域与模块的作用域互相独立。
D)以上说法都不对。
第一章软件工程概述软件是计算机程序及其有关旳数据和文档旳结合。
软件危机是指在计算机软件开发和维护时所碰到旳一系列问题。
软件危机重要包括两方面旳问题: 一是怎样开发软件以满足对软件日益增长旳需求;二是怎样维护数量不停增长旳已经有软件。
软件工程是软件开发、运行、维护和引退旳系统措施。
软件工程是指导计算机软件开发和维护旳工程学科。
软件工程采用工程旳概念、原理、技术和措施来开发与维护软件。
软件工程旳目旳是实现软件旳优质高产。
软件工程学旳重要内容是软件开发技术和软件工程管理。
软件开发措施学是编制软件旳系统措施, 它确定软件开发旳各个阶段, 规定每一阶段旳活动、产品、验收旳环节和完毕准则。
常用旳软件开发措施有构造化措施、面向数据构造措施和面向对象措施等。
习题参照答案:1) 1. 什么是软件危机?为何会出现软件危机?2)答: 软件危机是指在计算机旳开发和维护过程中所碰到旳一系列严重问题。
这些问题决不仅仅是不能正常运行旳软件才具有旳, 实际上, 几乎所有软件都不一样程度地存在这些问题。
3)出现软件危机旳原因:首先与软件自身旳特点有关, 另首先也和软件开发与维护旳措施不对旳有关。
软件不一样于硬件, 它是计算机系统中逻辑件而不是物理部件。
管理和控制软件开发过程相称困难。
软件是规模庞大, 并且程序复杂性将伴随程序规模旳增长而呈指数上升。
目前相称多旳软件专业人员对软件开发和维护尚有不少糊涂观念, 在实践过程中或多或少地采用了错误旳措施和技术, 这是使软件问题发展成软件危机旳重要原因。
总结如下:4)获得对旳旳顾客需求和对旳地描述需求很困难5)开发人员对需求旳对旳理解也有困难6)常常在没有对旳理解之前就仓促开始编程7)软件项目缺乏有效旳组织、管理和内部交流8)缺乏软件开发措施、模型和工具旳支持9)软件维护旳困难性2. 假设你是一家软件企业旳总工程师, 当你把图1.1给手下旳软件工程师们观看, 告诉他们及早发现并改正错误旳重要性时, 有人不一样意你旳观点, 认为规定在错误进入软件之前就清除它们是不现实旳, 并举例说: “假如一种故障是编码错误导致旳, 那么, 一种人怎么能在设计阶段清除它呢?”你怎么反驳他?答: 在软件开发旳不一样阶段进行修改付出旳代价是很不相似旳, 在初期引入变动, 波及旳面较少, 因而代价也比较低;在开发旳中期, 软件配置旳许多成分已经完毕, 引入一种变动要对所有已完毕旳配置成分都做对应旳修改, 不仅工作量大, 并且逻辑上也更复杂, 因此付出旳代价剧增;在软件已经完毕时再引入变动, 当然付出旳代价更高。
软件工程习题解答第一章概述3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
b.软件开发管理困难而复杂。
c.软件开发费用不断增加。
d.软件开发技术落后。
e.生产方式落后。
f.开发工具落后,生产率提高缓慢。
4.什么是软件工程?它的目标和内容是什么?软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:a.付出较低的开发成本;b.面到要求的软件功能;c.取得较好的软件性能;d.开发的软件易于移植;e.需要较低的维护费用;f.能按时完成开发任务,及时交付使用;g.开发的软件可靠性高;软件工程的内容:1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:软件管理学、软件经济学、软件心理学。
6.什么是软件生存周期?它有哪几个活动?软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.7.什么是软件生存周期模型?有哪些主要模型?软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
第一章课后参考答案1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机?“软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。
这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。
它们有以下表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。
出现软件危机的主要原因(1)与软件本身的特点有关(2)与软件开发和维护过程中使用的方法不正确有关2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他?答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。
一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。
3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机?软件工程是指导知道计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
UML课后习题答案UML习题答案第⼀章⾯向对象设计与UML1.填空题(1)基本构造块UML规则公共机制(2)名字属性操作(3)封装继承多态(4)继承(5)瀑布模型喷泉模型基于组件的开发模型XP开发模型2. 选择题(1)C(2)A B C D(3)A B C D(4)A B C(5)A3.简答题(1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,⽽对象是某⼀类的具体化实例,每⼀个类都是具有某些共同特征的对象的抽象。
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,⽽对⼀类对象的抽象就是类.类描述了⼀组有相同特性和相同⾏为的对象。
(2)1.UML是⼀种语⾔。
2. UML是⽤来建模的。
3.UML是统⼀的标准。
(3)建模能够帮助我们按照实际情况或按我们需要的形式对系统进⾏可视化;提供⼀种详细说明系统的结构或⾏为的⽅法;给出⼀个指导系统构造的模板;对我们所做出的决策进⾏⽂档化。
在建模时应遵循以下原则:选择要创建什么模型对如何动⼿解决问题和如何形成解决⽅案有着意义深远的影响;每⼀种模型可以在不同的精度级别上表⽰;最好的模型是与现实相联系的;单个模型不充分;对每个重要的系统最好⽤⼀组⼏乎独⽴的模型去处理。
(4)UML和⾯向对象软件开发之间有紧密的关系,可以说是⾯向对象软件开发促使了UML 的产⽣。
但是由于在UML标准化的过程中,吸收了业务建模、⼯作流建模和数据库建模等领域的标准规范,形成了适应性很强的标准。
(5)在软件设计过程中,使⽤UML建模是为了能够更好地理解正在开发的系统。
通过UML 建模,可以达到以下⽬的:有助于按照实际情况或按照所需要的样式对系统进⾏可视化;能够规约系统的结构或⾏为;给出了指导构造系统的模板;对做出的决策进⾏⽂档化。
第⼆章UML通⽤知识点综述1.填空题(1)依赖泛化关联实现(2)视图图模型元素(3)实现视图部署视图(4)构造型标记值约束(5)规格说明修饰通⽤划分2. 选择题(2)C(3)A(4)A B(5)D3.简答题(1)在UML中,定义了四种基本的⾯向对象的事物,分别是结构事物、⾏为事物、分组事物和注释事物等。
软件工程习题解答一、软件生存周期各阶段的基本任务?1. 问题定义:(1)回答要解决的问题是什么。
(2)系统分析员应该提出关于问题性质、工程目标和规模的书面报告。
(3)经过和用户讨论,澄清含糊不清的地方,改正理解不正确的地方,得出一份双方都满意的文档。
(4)问题定义是软件生命周期中最简短的阶段。
2.可行性研究:(1)前一阶段定义的问题有可行的解决办法吗?(2)系统分析员要进行一次大大压缩和简化了的系统分析和设计。
导出高层逻辑模型(用数据流图表示)。
确定工程规模和目标,准确估计系统的成本和效益。
(3)使用部门的负责人根据可行性研究的结果决定是否继续进行该工程的开发工作。
3.需求分析:(1)主要确定目标系统必须具备哪些功能。
(2)系统分析员和用户密切配合,充分交流,得出经用户确认的系统逻辑模型(数据流图、数据字典、算法描述)。
4.总体设计:(1)回答如何解决问题。
(2)系统分析员应使用系统流程图或其他工具描述每种可能系统;估计每种方案的成本和效益。
推荐一较好的系统──有其详细计划。
设计软件的结构(用层次图或结构图描述)。
5.详细设计:(1)回答应该怎样具体地实现这个系统。
(2)设计出程序的详细规格说明(用HIPO层次图加输入/处理/输出图)或PDL语言(过程设计语言)。
6.编码和单元测试:(1)写出正确的容易理解,容易维护的程序模块。
(2)程序员:选取一种适当的用高级语言书写程序(或汇编语言)。
仔细测试编写出的每一个模块。
7.综合测试:(1)通过各种类型的测试,使软件达到预定的要求。
(2)最基本的测试是集成测试和验收测试方法。
集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配的过程中对程序进行必要的测试。
验收测试是按照需求规格说明书的规定,由用户对目标系统进行验收。
(3)用正式文档将测试计划、详细测试方案以及实际测试结果保存。
(4)以正式或非正式的方式对用户进行培训。
8.软件维护:(1)使系统持久地满足用户的需要。
(2)四类维护:改正性维护:诊断和改正使用过程中发现的软件错误。
适应性维护:修改软件以适应环境变化。
完善性维护:根据用户要求,改进或扩充软件。
预防性维护:修改软件为将来的维护预先准备。
第二章可行性研究1.已知某软件包具有三个主要功能:输入数据、更新数据、产生报表。
根据历史资料记载,实现每个功能所需源代码行数估算如下:①输入数据:a=l00 m=200 b=300②更新数据:a=200 m=300 b=400③产生报表:a=300 m=400 b=500三个功能的软件生产率都是200行/人月,每行成本lO元/行,请用LOC技术估算出该软件包的成本和工作量。
解:2.某计算机系统投入使用后、5年内每年可节省人民币2 O0O元,假设系统的投资额为5 000元,年利率为12%。
试计算投资回收期和纯收入。
解:1、投资回收期最初投资额为5000元,经过3年后可以节省4814.28元,比最初投资还少185.72元,第4年一年再次节省1273.89元,则185.72÷1273.89=0.153 + 0.15=3.15因此这项工程的投资回收期是3.15年。
2、纯收入7224.53 - 5000=2224.53元> 0,值得投资。
第三章需求分析1.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。
作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.基本符号有四种:→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.2.某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。
请用DFD 和IDEF0描绘该功能的需求,并建立相应的数据字典。
(1)数据流条目:数据流名称:存款单别名:无简述:储户存款时填写的项目来源:储户去向:记帐数据流量:未知组成:姓名+住址+存款类型+存款日期+利率数据流名称:取款单别名:无简述:储户取款时填写的项目来源:储户去向:统计数据流量:未知组成:姓名+住址+取款类型+取款日期+利率数据流名称:清单别名:无简述:储户取款后得到的项目来源:记录去向:储户数据流量:未知组成:姓名+住址+取款类型+取款日期+利率+余额(2)数据存储条目:数据存储名称:账单别名:无简述:存放储户信息及其账目组成:姓名+住址+余额+存款类型+最后修改日期+利率组织方式:未知查询要求:能立即查询(3)数据项条目:未知(4)加工条目:加工名:分类检查编号:无激发条件:接收到存/取款单优先级:优先输入:存/取款单输出:存/取款单加工逻辑:IF 存款单THEN 把存款单输出到统计ELSE把取款单输出到统计ENDIF加工名:统计编号:无激发条件:取款单优先级:无输入:取款单输出:清单加工逻辑:根据账单检查此储户是否存在,不存在输出错误{IF 取款数<余额THEN 余额=余额-取款数输出清单到储户,输出现金到储户ELSE输出错误清单到储户ENDIF}加工名:记录编号:无激发条件:存款单优先级:无输入:存款单输出:存款单加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{余额=余额+存款数输出存款单到储户}3.某公司承担空中和地面运输业务。
计算货物托运费的比率规定如下:空运,如果货物重量小于等于2kg.则一律收费6元;如果货物重量大于2 kg而又小于等于20 kg,则收费3元/kg;如果货物重量大于20 kg,则收费4元/kg。
地运,若为慢件每kg收费为l元,若为快件,当重量小于等于 20 kg时,收费为 2元/kg,当货物重量大于 20 kg时,则收费为 3元/kg。
请画出对应于计算托运费比率的判定树和判定表。
解:判定表:4.选择一个系统(例如人事档案管理系统、图书管理系统、医院监护系统、足球俱乐部管理系统、财务管理系统、学生选课系统、飞机订票系统等),用 SA方法对它进行分析,画出系统的分层 DFD图。
解: 下面是一个学生选课系统的DFD 。
新补充:1、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。
客户可在其收到的目录上圈定自己要买的书。
出版公司按照客户的反馈信息邮寄图书。
要求为出版公司设计软件,以实现以下功能:(1)自动生成图书分类目录;(2)自动处理客户反馈信息。
试用面向数据流的方法给出系统的数据流图,并设计出软件结构图。
第四章概要设计3.衡量模块独立性的两个标准是什么?它们各表示什么含义?两个定性的度量标准:耦合与内聚性耦合性:也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
内聚性:也称块内联系。
指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
模块内元素联系越紧密,内聚性越高。
6.什么是软件结构?简述软件结构设计优化准则。
软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。
软件结构设计优化准则:a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。
b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近c.软件的深度、宽度、扇入、扇出应适当。
D.模块的大小要适中。
E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。
2、已知模块C中的一个判定影响到模块B,如图所示,它违反了SD的设计原则。
试问: 可以采用哪些手段对结构图作改进,请说明改进办法并画出改进的结构图。
3、已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。
答:4、高考录取统分子系统有如下功能:(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
答:(1) 数据流图:(2) 软件结构图:5、图书馆的预定图书子系统有如下功能:(1) 由供书部门提供书目给订购组。
(2) 订书组从各单位取得要订的书目。
(3) 根据供书目录和订书书目产生订书文档留底。
(4) 将订书信息(包括数目,数量等)反馈给供书单位。
(5) 将未订书目通知订书者。
(6) 对于重复订购的书目由系统自动检查,并把结果反馈给订书者。
试根据要求画出该问题的数据流程图,并把其转换为软件结构图。
答:(1) 数据流图:(2) 软件结构图:第五章详细设计1.给出一组数从小到大的排序算法,分别用下列工具描述其详细过程:(1)第六章 实现第七章 软件测试1、对下列子程序进行调试: procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if(y=2) or (x=l) then x:=x+l;end.该子程序接受x, y, z 的值,并将计算结果x 的值返回给调用程序。
答题要求: (1)画出流程图。
(2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。
N-S 图答:(1)流程图(2)用白盒法中条件组合覆盖设计测试用例:①y=2, z=0, x=4;②y=2, z=1, x=1;③y=1, z=0, x=2;④y=1, z=1, x=1.2、某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。
系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。
现要求用黑盒测试法中的边界值法写出测试用例。
答:输入条件测试用例说明测试数据报表日期的1个数字字符 5类型及长度5个数字字符200357个数字字符2003005有1个非数字字符2003.5全部是非数字字符MAY---6个数字字符200305日期范围在有效范围200301边界上选取200812数据200300200813月份范围月份为1月200301月份为12月200312月份<1 200300月份>12 2003133、对以下程序进行测试:PROCEDURE EX(A,B:REAL;VAR X:REAL);BEGINIF(A=3)OR(B> 1)THEN X:=A×BIF(A>2)AND(B=0)THEN X:=A-3END先画出程序流程图。