软件工程课程复习资料doc

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共28页《需求分析习题》21软件需求分功能需求、非功能需求、领域需求的定义。1)功能需求:定义了软件必须实现的功能,包括对系统应该提供的服务、如何对输入做出反映以及系统在特定条件下的行为的描述。2)非功能需求:非功能需求是对功能需求的补充,是对系统提供的服务或功能给出的约束。包括时间约束、开发过程的约束、标准等、长应用于“整个系统”。3)领域需求:来至系统的应用领域的需求,反映了该领域的特点。他们也可能是功能需求或非功能需求。2用户需求和系统需求定义。1)用户需求:是用自然语言加图表的形式给出的关于系统需要提供哪些服务以及系统操作受到哪些约束的声明。2)系统需求:是详细地给出系统将要提供的服务以及系统所要受到的约束。3用户需求描述什么需求,容易产生什么问题?如何解决?1)用户需求是从用户的角度来描述系统功能和非功能需求。2)容易产生的问题(1)描述不够清楚使用自然语言描述,很难做到既精确无二义性,又不至于描述晦涩难懂。(2)需求混乱功能需求、非功能需求、系统目标和设计信息无法清晰地区分。(3)需求混合多个不同的需求可能被搅在了一起,以一个需求的形式给出。3)解决方案(1)设计一个标准的格式,保证所有的需求定义都按照改格式书写。(2)使用一致的语言。(3)对文本加亮(使用黑体或斜体)来突出显示关键的需求。(4)尽量避免使用计算机专业术语。4需求描述所使用的符号有哪些?他们确定的含义是什么?自然语言,结构化语言描述,PDL描述(设计描述语言),形式化描述,图形化描述(usecase)书上P79页,表6-2所示5软件需求分析的目的、任务?(1)建立系统模型。(2)深入描述功能确定的系统的接口特性和设计约束。(3)写出规格说明书。(4)进行复审和确认。6软件需求分析包含哪几个阶段?包括可行性的研究、需求导出和分析、需求的描述、需求有效性验证及需求管理。7结构化分析方法中,数据字典的作用是什么?(1)严格的数据定义可以减少分析人员的和用户之间的通信,消除误解。(2)为以后进行系统设计及维护提供重要的依据。8试述结构化分析过程和面向对象分析过程,并比较(1)结构化分析过程实质上就是创建数据模型、功能模型和行为模型,其中数据建模的工具是实体关系图,功能建模的工具是数据流图,行为建模的工具是状态转换图,另外使用数据字典定义系统的所有数据项。第2页共28页(2)面向对象分析过程是了解并定义上下文和系统的使用模型、设计系统体系结构、识别出系统中的主要对象、开发设计模型及描述对象接口。(3)二者之间的比较结构化方法首先关心的是功能,强调以模块(即过程)为中心,采用模块化、自顶向下、逐步求精设计过程,系统是实现模块功能的函数和过程的集合,结构清晰、可读性好,的确是提高软件开发质量的一种有效手段。结构化设计从系统的功能入手,按照工程标准和严格规范将系统分解为若干功能模块。然而,由于用户的需求和软、硬件技术的不断发展变化,作为系统基本成分的功能模块很容易受到影响,局部修改甚至会引起系统的根本性变化。开发过程前期入手快而后期频繁改动的现象比较常见。面向对象方法则从所处理的数据入手,以数据为中心来描述系统,数据相对于功能而言,具有更强的稳定性,这样设计出的系统模型往往能较好地映射问题域模型。对象、类,、继承性、多态性、动态定连概念和设施的引入使用,显然令面向对象的设计方法具有一定的优势,能为生产可重用的软件构件和解决软件的复杂性问题提供一条有效的途径。面向对象的设计过程就是指通过建立一些类以及它们之间的关系来解决实际问题,这就需要对问题域中的对象作整体分析,类和类间关系的设计要求较高,否则设计出的并不是真正意义上的面向对象的软件系统,而只是一些类的堆砌而已,不能体现出面向对象设计方法的优势之处。9模块的独立性如何度量?根据模块的外部特征和内部特征,提出了两个定性的度量标准--耦合性和内聚性。耦合是模块之间相对独立性的量度,而内聚则是模块功能相对强度的量度。如果说,一个模块在不需要另一个模块的情况下,能够完整地执行其功能,我们就称这两个模块是完全独立的。模块独立性的概念是模块化、抽象和信息隐藏概念的直接产物,模块独立性是通过开发具有单一功能和与其他模块没有过多交互作用的模块来达到的。10什么是耦合性和内聚性,都有哪些种?1.耦合性也称快间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。模块的耦合性有以下几种类型,分为:(1)无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此模块间耦合性最弱,模块独立性最高。(2)数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。(3)标记耦合指两个模块传递的是数据结构,如:高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址。(4)控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某些功能。(5)公共耦合指通过一个公共数据环境相互作用的那些模块间的耦合。公共数据环境可以是全程变量或数据结构、共享的通信区、内存的公共覆盖区及任何存储介质上的文件、物理设备等。第3页共28页(6)内容耦合这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部,这种模块之间的耦合为内容耦合,这种情况往往出现在汇编程序设计中。2内聚性又称块内联系,指模块的功能强度的度量。若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越高,内聚性有以下几种类型:(1)偶然内聚指一个模块内的各处理元素之间没有任何联系。(2)逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。(3)时间内聚把需要同时执行的动作组合在一起形成的模块为时间内聚模块。(4)通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输人数据或者产生相同的输出数据。(5)顺序内聚指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。(6)功能内聚这是最强的内聚;指模块内所有元素共同完成一个功能,缺一不可。耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。11理解场景的作用,掌握利用场景获取需求的方法。场景描述法是采用把系统交互放到一个真实的生活片段中,这样比采用抽象的形式描述要容易理解,容易导出需求细节。常用的方法,自然语言和用例。书中P93页12理解视点方法,掌握通过视点,导出需求的方法书中P91页13用结构化分析方法进行需求分析,需要建立哪些模型?ERD用于数据建模,DFD用于功能建模,STD用于行为建模。14如何描述给定系统的数据流图(DFD)、E_R图,DFD中的符号都有哪些?含义是什么?1)数据流图(1)可以表示任何一个系统(人工的、自动的、或混合的)中的数据流程;(2)每个表示加工的圆圈可能需要进一步分解以求得对问题的全面理解;(3)着重强调的是数据流程而不是控制流程。2)E_R图(1)数据对象(2)描述对象的属性(3)描述对象间相互连接的关系3)DFD中的符号(1)□:(方框)表示外部实体,代表数据源和数据池(终点)。第4页共28页(2)○:(圆框)表示加工,代表接收输入,经过变换,继而产生输出的处理过程。(3)→:(箭头)表示数据流,代表数据的流向和路径。(4)〓:(双杠)表示数据存储,代表系统加工的数据所存储的地方。15数据流图中的加工逻辑说明工具有哪些,如何表示?1)工具目前用于写加工规格说明的工具有结构化语言、判定表和判定树。2)表示(1)结构化语言:类型:加工说明条目编号:2.1名字:询价别名:加工逻辑:首先根据购书通知逐个进行多方询价然后比较各种报价比较其他情况(有无现货,付款方式,是否送货等)综合评定供应商,确定订货价格输入数据:购书通知输出数据:订货价格触发条件:每当书库管理员发出购书通知执行发生频度:一般每周一次,最多每天一次(2)判定树和判定表判定树和判定表适于描述多个逻辑条件的组合描述。判定树根据判定条件的关系构造,内部节点为判定条件,叶子节点为判定结果。判定表的基本结构为:基本条件条件项基本动作动作项17UML中用于描述系统的静态模型的有哪些图?描述系统的动态模型的有哪些图。UML主要提供了九种不同的图,可以分成两大类,一类是描述系统静态结构的图,包括用例图、类图、对象图、组件图、配置图;另一类是反映系统动态特性的图,包括序列图、协作图、状态图和活动图。18什么是类对象的泛化关系,聚合关系?举例说明。1)泛化(Generalization)泛化是一种一般事物(父类)和特殊事物(子类)之间的关系。举例:学生与研究生之间是泛化关系,研究生是一类特殊的学生。2)聚合(Aggregation)聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。举例:学校和系之间存在聚合关系,系是学校的一个组成部分。19什么是顺序图、用例图,活动图和状态图?1)顺序图用于描述系统内各类和对象之间的动态协作关系以及系统外与系统内的交互情况,即系统执行各种功能时各个角色、类与对象之间相互传递消息的顺序关系。第5页共28页2)用例图用例图就是从用户的角度出发对如何使用系统地描述的模型。3)状态图状态图描述一个类对象在整个生命周期所可能经历的所有状态变化过程。20类和对象是什么关系?1)对象(Object)对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。举例:中国就是一个对象。2)类(Class)类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,包括属性和服务两个主要部分。举例:学生、人、树木等都是类。3)关系所谓类(Class)是对一类具有相同特征的对象的描述。而对象是类的实例(Instance)。21如何绘制活动图、用例图、状态图、顺序图、类图和对象图。老师课件上有,书上P169页。22结构化方法的基本原则?1)使每个模块执行一个功能(坚持功能性内聚)2)每个模块用过程语句(或函数方式等)调用其他模块3)模块间传送的参数作数据用4)模块间共用的信息(如参数等)尽量少23什么是信息隐蔽原理,其带来的好处是什么?1)信息隐蔽原理(信息隐藏是把机密信息隐藏在大量信息中不让对手发觉的一种方法。)信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块来说不可访问;每个模块只完成一个相对独立的特定功能;模块之间仅交换那些为完成系统功能必须交换的信息,即模块应该独立。2)带来的好处(1)它支持模块的并行开发;(2)减少测试和后期维护的工作量。因为测试和维护阶段不可避免地要修改设计和代码,模块对大多数数据和过程处理细节的隐藏可以减少错误向外传播。(3)整个系统扩充功能只需“插入”新模块,原有的多数模块无须改动。《软件体系架构及界面设计》1软件体系结构是系统的组成模式。系统的组成反映的是系统组织所采用的基本策略。系统组成的类型有哪些?三种应用广泛的组成类型:1、共享数据容器类型;2、共享服务和服务器类型;3、抽象机或分层类型。2什么是容器模型?其特点?1)优点第6页共28页(1)共享大量数据的有效方式,不同子系统间无需数据转换;(2)子系统无需去考虑数据如何被集中管理的;(3)共享数据模型是以容器模式发布的。2)缺点(1)子系统必须与容器数据模型相一致才能共享数据;(2)数据进化会比较困难而

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功