《安徽大学软件工程导论期末复习考点试卷汇总11617.docx》由会员分享,可在线阅读,更多相关《安徽大学软件工程导论期末复习考点试卷汇总11617.docx(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章 软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是: 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究中提到的途径。软件工作者在220世纪600年代后期开开始认真研究究消除软件危危机的途径,从从而逐渐形成成了一门新兴兴的工程学科科计算机机软件工程学学(通常简称称为软件工程程)。2、什么是软件件工程方法学学?软件工程程的3要素(软件工程方方法学的3要要素)是什么么?分别包含含什么内容?软件工程方法学学:软件生命命周期全过程程中使用的一一整套技术方方法的集合软件工程方法学学包含3个要素:方方法、工具和和过程。方法是完成软件件开发的各
2、项项任务的技术术方法,回答答“怎样做”的问题;工具是为运用方方法而提供的的自动的或半半自动的软件件工程支撑环环境;过程是为了获得得高质量的软软件所需要完完成的一系列列任务的框架架,它规定了了完成各项任任务的工作步步骤。目前使用得最广广泛的软件工工程方法学,分分别是传统方方法学和面向向对象方法学学。3、什么是软件件过程?什么么是软件周期期?常见软件件生命周期模模型(课件中中的前5类)的特点有哪哪些?软件过程:它是是为了获得高高质量软件所所需要完成的的一系列任务务的框架,它它规定了完成成各项任务的的工作步骤。软件生命周期:由软件定义义、软件开发发和运行维护护(也称之为为软件维护)3个时期组成瀑布模
3、型定义:传统软件件工程方法学学的软件过程程,基本上可以以用瀑布模型型来描述。瀑布模型的特点点:1.阶段间间具有顺序性性和依赖性;2.推迟实实现的观点;3.质量保保证的观点。瀑瀑布模型的成成功在很大程程序上是由于于它基本上是是一种文档驱驱动的模型。瀑布模型的主要要优点:a.可强迫开发人人员采用规范范的技术方法法 ;b.严格地规定定了每个阶段段必须提交的的文档 ;c.每个阶段结结束前必须正正式进行严格格的技术审查查和管理复审审 。瀑布模型的主要要缺点 :在在可运行的软软件产品交付付给用户之前前,用户只能能通过文档来来了解未来的的产品是什么么样的。开发发人员和用户户之间缺乏有有效的沟通,很很可能导致
4、最最终开发出的的软件产品不不能真正满足足用户的需求求 。快速原型模型型定义:所谓“快快速原型”, 是快速建立立起来的、可可在计算机上上运行的程序序,它所能完完成的功能往往往是最终的的软件产品所所能完成的功功能的子集。 原型是软件件开发人员与与用户沟通的的强有力工具具,因此有助助于所开发出出的软件产品品满足用户的的真实需求。快速原型模型的的主要优点是是:A使用用这种软件过过程开发出的的软件产品通通常能满足用用户的真实需需求;B软件产品的的开发过程基基本上是线性性顺序过程。增量模型 定义:增量模型型也称为渐增增模型增量模型的主要要优点:A能在较短时时间内向用户户提交可完成成部分工作的的产品 ;B逐
5、步增加产产品功能,从从而使用户有有较充裕的时时间学习和适适应新产品,减减少一个全新新的软件给客客户组织带来来的冲击 。螺旋模型定义:螺旋模型型的基本思想想是, 使用用原型及其他他方法尽量降降低风险。理理解这种模型型的一个简便便方法,是把把它看作在每每个阶段之前前都增加了风风险分析过程程的快速原型型模型 。螺旋模型所描述述的软件过程程主要适用于于内部开发的的大型软件项项目 。使用螺旋模型开开发软件,要求软件开开发人员具有有丰富的风险险评估知识和和经验 。螺旋模型主要有有下述优点 :A有利利于已有软件件的重用 ;B有助于把软软件质量作为为软件开发的的一个重要目目标 ;C减少了过多多测试或测试试不足
6、所带来来的风险 ;D软件维护与与软件开发没没有本质区别别 。喷泉模型定义:迭代是软软件开发过程程中普遍存在在的一种内在在属性。在面面向对象范型型中,软件开开发过程各阶阶段之间的迭迭代或同一阶阶段内各个工工作步骤之间间的迭代,比比在结构化范范型中更常见见。喷泉模型,是典典型的面向对对象生命周期期模型,它充充分体现了面面向对象软件件开发过程迭迭代和平滑过过渡的特性。5、1. 软件件生命周期概概念 软件产品品从提出、实实现、使用维维护到停止使使用退役的过过程称为软件件生命周期。 软件生命命周期分为33个时期共88个阶段, 软件定义义期:包括问问题定义、可可行性研究和和需求分析33个阶段; 软件开发发
7、期:包括概概要设计、详详细设计、实实现和测试44个阶段; 运行维护护期:即运行行维护阶段。表3-3 软件件生命周期各各阶段的主要要任务任务描述问题定义确定要求解决的的问题是什么么可行性研究与计计划制定决定该问题是否否存在一个可可行的解决办办法,指定完完成开发任务务的实施计划划需求分析对待开发软件提提出需求进行行分析并给出出详细定义。编编写软件规格格说明书及初初步的用户手手册,提交评评审软件设计通常又分为概要要设计和详细细设计两个阶阶段,给出软软件的结构、模模块的划分、功功能的分配以以及处理流程程。这阶段提提交评审的文文档有概要设设计说明书、详详细设计说明明书和测试计计划初稿软件实现在软件设计的
8、基基础上编写程程序。这阶段段完成的文档档有用户手册册、操作手册册等面向用户户的文档,以以及为下一步步作准备而编编写的单元测测试计划软件测试在设计测试用例例的基础上,检检验软件的各各个组成部分分。编写测试试分析报告运行维护将已交付的软件件投入运行,同同时不断的维维护,进行必必要而且可行行的扩充和删删改第2章 可行行性研究1、可行性研究究包括哪几方方面(每方面面解决什么问问题),研究究得到的文档档和结论是什什么?技术可靠性:使使用现有的技技术能否实现现这个系统吗吗?经济可行性:这这个系统的经经济效益能否否超过它的开开发成本?操作可行性:系系统的操作方方式在这个用用户组织内是是否行得通?研究的结果:
9、是是一份可行性性研究的各个个步骤的工作作结果的文档档,它包含了了工程是否能能继续进行下下去和分析员员的推荐方案案;2、主要描述工工具的概念和和使用:系统流程图:是是什么,成份份和基本符号号,描述什么么模型,画法法;数据流图:是什什么,成份和和基本符号,系系统级和功能能级、简单细细化数据流图图的区别,画画法;数据字典:是什什么,内容、定定义数据的方方法。(1)系统流程程图的定义:是概括地描描绘物理系统统的传统工具具。它用图形形符号以黑盒盒子形式描绘绘组成系统的的每个部件。系统流程图表达达的是数据在在系统各部件件之间流动的的情况,而不不是对数据进进行加工处理理的控制过程程,是物理数数据流图而不不是
10、程序流程程图。系统流程图的基基本符号:(2)数据流图图的定义:它它是一种图形形化技术,它它描述信息和和数据从输入入移动到输出出过程中所经经历的变换。在在数据流图中中没有任何具具体的物理部部件,它只是是描绘数据在在软件中流动动和被处理的的逻辑过程。数据流图的基本本符号:正方方形(或立方方体) 表示数据据的源点或终终点;圆角矩形(或圆圆形) 代表变换数数据的处理;开口矩形(或两两条平行横线线) 代表数数据存储;箭头线 表示数据据流,即特定定数据的流动动方向。(3)数据字典典的定义:是关关于数据的信信息的集合,也也就是对数据据流图中包含含的所有元素素的定义的集集合。数据字典的的作用也正是是在软件分析
11、析和设计的过过程中给人提提供关于数据据的描述信息息。数据字典的内容容:数据流、数数据流分量、数数据存储、处处理 定义数据据的方法:用用被定义的事事物的成分的的某种组合表表示这个事物物,这些组成成成分又由更更低的成分组组合来定义。 3、 数据字典和数据据流图的关系系。数据流图和数据据字典共同构构成系统的逻逻辑模型。没没有数据字典典,数据流图图就不严格,然然而没有数据据流图,数据据字典也难于于发挥作用。只只有数据流图图和对数据流流图中每个元元素的精确定定义放在一起起,才能共同同构成系统的的规格说明。第3章 需求求分析需求规格说明书书1、需求分析的的任务是什么么?分析得到到的成果(文文档)是什么么?
12、包含哪些些内容?1、需求分析的的任务:(11)确定对系系统的综合要要求:功能需需求、性能需需求、可靠性性和可用性需需求、出错处处理需求、接接口需求、约约束、逆向需需求、将来可可能提出的要要求(2)分分析系统的数数据要求:(33)导出系统统的逻辑模型型(4)修正正系统开发计计划;2、需求分析得得到的结果:是通过需求求分析得到的的除了分析模模型之外,还还应该写出软软件需求规格格说明书,它它是需求分析析阶段得出的的最主要的文文档。2、软件需求通通常包括哪些些方面?各类类需求一般包包含内容有哪哪些?(1)功能需求求 :这方面面的需求指定定系统必须提提供的服务。通通过需求分析析应该划分出出系统必须完完成
13、的所有功功能。(2)性能需求求:性能需求求指定系统必必须满足的定定时约束或容容量约束,通通常包括速度度(响应时间间)、信息量量速率、主存存容量、磁盘盘容量、安全全性等方面的的需求。(3)可靠性和和可用性需求求:可靠性需需求定量地指指定系统的可可靠性。可用用性与可靠性性密切相关,它它量化了用户户可以使用系系统的程度。(4)出错处理理需求:这类类需求说明系系统对环境错错误应该怎样样响应。(5)接口需求求:接口需求求描述应用系系统与它的环环境通信的格格式。常见的的接口需求有有:用户接口口需求;硬件件接口需求;软件接口需需求;通信接接口需求。(6)约束:设设计约束或实实现约束描述述在设计或实实现应用系
14、统统时应遵守的的限制条件。(7)逆向需求求:逆向需求求说明软件系系统不应该做做什么。(8)将来可能能提出的要求求:应该明确确地列出那些些虽然不属于于当前系统开开发范畴,但但是据分析将将来很可能会会提出来的要要求。这样做做的目的是,在在设计过程中中对系统将来来可能的扩充充和修改预做做准备,以便便一旦确实需需要时能比较较容易地进行行这种扩充和和修改。3、追加的主要要描述工具的的概念和使用用:E-R图:是什什么,成份和和基本符号,描描述什么模型型;状态转换图:是是什么,描述述什么模型(1)E-R图图的定义:即实实体-联系系图,是表示示数据对象及及其之间关系系的图形语言言机制,是建建立数据模型型的图形
15、工具具。E-R图的基本本成份和使用用的符号 :实体(即数数据对象)-矩形形框,关系-菱形形框,属性-椭椭圆形或圆角角矩形。E-R图描述的的模型:用来来建立数据模模型,ER模模型使用简单单的图形符号号表达系统分分析员对问题题域的理解(2)状态转换换图的定义:通过描绘系系统的状态及引起系系统状态转换换的事件,来表示示系统的行为为。状态转换图的基基本成份和使使用的符号:基本成分是是状态、事件件、状态转换换。状态转换图描述述的模型:用用来建立系统统的行为模型型。4、在结构化分分析中,建模模的核心是什什么?3种模模型分别是什什么,分别用用什么工具来来描述?建模的核心是数数据字典,它它描述了所有有的在目标
16、系系统中使用的的和生成的数数据对象。(1)、数据模模型,用实体体-联系图描描述;(2)、功能模模型,用数据据流图描述;(3)、行为模模型,用状态态转换图描述述。第5章 总体体设计1、什么是总体体设计?将软件需求转化化为软件的数数据结构和系系统结构,确确定各组成成成分(子系统统或模块)之之间的相互关关系2、模块化设计计的原理包括括什么?为了了提高软件的的可维护性,其其中,模块独独立性最重要要的,是评价价软件结构质质量的首要标标准。模块化设计的原原理包括:模块化、抽象、逐步求精、信息隐藏和和局部化、模块独立。为了提高软软件的可维护护性,其中,模模块独立性最最重要的,是是评价软件结结构质量的首首要标
17、准。3、模块独立性性度量(描述述)的两个指指标:内聚、耦耦合;什么是是内聚,什么么是耦合;耦耦合和内聚的的具体分类及及使用原则;在面向数据据流的方法中中,内聚、耦耦合各分为哪哪几级,每级级的具体含义义分别是什么么?强度从弱弱到强如何排排列?耦合和和内聚两者关关系?(1)耦合定义义:它是对一一个软件结构构内不同模块块之间互连程程度的度量;耦合分类:耦合使用原则:尽量使用数数据耦合,小小用控制耦合合和特征耦合合,限制公共共环境耦合的的范围,完全全不用内容耦耦合,最终降降低模块间接接口的复杂性性。(2)内聚定义义:它标志着着一个模块内内各个元素彼彼此结合的紧紧密程度,它它是信息隐藏藏和局部化概概念的
18、自然扩扩展。内聚分类:内聚使用原则:设计时力求求高内聚,设设计时应该力力求做到高内内聚,通常中中等程度的内内聚也是可以以采用的,而而且效果和高高内聚相差不不多;但是,低低内聚很坏,不不要使用。(3)耦合和内内聚两者关系系:耦合与内内聚都是模块块独立性的定定性标准,都都反映模块独独立性的良好好程度。其中中内聚更重要要。内聚与耦耦合密切相关关。同其它模模块强耦合的的模块意味着着它自己是弱弱内聚的;强强内聚模块意意味着与其它它模块间松散散耦合。所以以设计的目标标应该是力争争高内聚、低低耦合。第6章 详细细设计1结构化程序设设计1结构化程序序设计的原则则 结构化程序序设计方法的的主要原则可可以概括为自
19、自顶向下,逐逐步求精,模模块化,限制制使用gotto语句。2结构化程序序的基本结构构与特点 1. 顺序序结构2. 选择择结构:选择择结构又称为为分支结构。3. 重复复结构:重复复结构又称为为循环结构。2、什么是过程程设计的工具具?分类?基基本要求?过程设计工具的的定义:描述述程序处理过过程的工具过程设计工具的的分类:它们们可以分为图图形、表格、和和语言3类。过程设计工具的的基本要求:不论是哪类类工具,对它它们的基本要要求都是能提提供对设计的的无歧义的描描述。3、软件详细设设计描述工具具的概念和使使用:程序流流程图、N-S图、PAAD图、PDDL语言:是是什么,基本本符号和表示示的意义,画画法;
20、各种工工具描述结果果间的转换。(1)程序流程程图的定义:又称为程序序框图,它是是历史最悠久久、使用最广广泛的描述过过程设计的方方法,然而它它也是用得最最混乱的一种种方法。程序流程图的基基本符号:(2)盒图(NN-S图)的的定义:出于于要有一种不不允许违背结结构程序设计计精神的图形形工具的考虑虑,Nasssi和Shnneiderrman提出出了盒图。它有下述特点:(1) 功能域域(即,一个个特定控制结结构的作用域域)明确,可可以从盒图上上一眼就看出出来。(2) 没有箭箭头,不可能能任意转移控控制。(3) 很容易易确定局部和和全程数据的的作用域。(4) 很容易易表现嵌套关关系,也可以以表示模块的的
21、层次结构。盒图(N-S图图)的基本符符号:(a)顺序;(bb)IF_TTHEB_EELSE型分分支;(c)CCASE型多多分支;(dd)循环;(ee)调用子程程序(3)PAD(问题分析图图)的定义: 19733年由日本日日立公司发明明。它用二维维树形结构的的图来表示程程序的控制流流,将这种图图翻译成程序序代码比较容容易。PAD(问题分分析图)的基基本符号:(a)顺序;(bb)选择(IIF C TTHEN PP1 ELSSE P2);(c)CCASE型多多分支;(dd)WHILLE型循环(WWHILE C DO P);(e)UUNTIL型型循环(REEPEAT P UNTTIL C);(f)语语
22、句标号;(gg)定义(3)过程设计计语言(PDDL)的定义义:也称为伪伪码,PDLL是一种“混杂”语言,它使使用一种语言言的词汇,同同时却使用另另一种语言(某种结构化化的程序设计计语言)的语法。过程设计语言(PDL)的的举例:第7章 实现现1、软件测试的的目的是什么么?软件测试试方法的种类类?为了发现程序中中的错误而执执行程序的过过程,测试阶阶段的根本目目标是尽可能能多地发现并并排除软件中中潜藏的错误误,最终把一一个高质量的的软件系统交交给用户使用用。2、软件测试与与软件开发阶阶段的关系?软件开发过程是是一个自顶向向下、逐步细细化的过程,而而测试则是依依相反的顺序序安排的,自自底向上、逐逐步集
23、成的过过程。低一级级为上一级测测试准备条件件。3、软件测试的的步骤,过程程。模块测试-单元、子子系统测试-局部部、系统测试试-全全局、验收测测试-用户参与、平平行运行-新旧共共存4、软件测试的的三大阶段:单元测试、集集成测试(组组装测试)、确确认测试(验验收测试)的的主要任务(目的)是什什么?测试的的内容主要有有哪些?测试试计划分别在在什么时候制制定?测试计计划的内容有有哪些?模块测试(单元元测试)目的:是保证每每个模块作为为一个单元能能正确运行。在编写出源源程序代码并并通过了编译译程序的语法法检查之后,就就可以用详细细设计描述作作指南,对重重要的执行通通路进行测试试,以便发现现模块内部的的错
24、误。内容:1.模块接口口测试-检测数据据能否正确无无误地进入和和流出模块2.路径测试3.出错处理测测试-测试程序中中包含的出错错处理是否有有效4.边界条件测测试-检测在数据据边界处,模模块能否正常常工作单元测试计划的的时间:在详详细设计结束束时制定,主主要使用白盒盒测试技术集成测试任务:在单元测测试的基础上上,需要将所所有模块按照照设计要求组组装成为系统统,发现并排排除在模块连连接的接口中中可能出现的的问题,最终终构成所要求求的软件系统统。内容:(1)把各个模模块连接起来来后,考察穿穿越模块接口口的数据是否否会丢失或产产生错误(2)各个子功功能组合起来来,能否达到到预期要求的的主要功能(3)一
25、个模块块的功能是否否会对另一个个模块的功能能产生不利的的影响(4)全局数据据结构是否有有错误(5)单个模块块的误差累积积起来,是否否会被放大,从从而达到不能能被接受的程程度集成测试计划的的时间:在总总体设计结束束时制定,详详细设计结束束时补充确认测试目的:也称为称称验收测试。它它的主要目标标是验证软件件的有效性。证证实软件功能能与用户需求求是否一致,即即测试软件能能否按照软件件需求规格说说明书(合同同)的要求运运行。内容:有效性测测试、软件配配置复查、验验收测试确认测试计划的的时间:在需需求分析时制制定,后续阶阶段补充,通通过黑盒测试试技术。5、什么是白盒盒测试?典型型的白盒测试试技术有哪几几
26、个,含义如如何?简单的的逻辑覆盖测测试用例设计计。白盒测试的定义义:也称结构构测试或逻辑辑驱动测试,它它是按照程序序内部的结构构测试程序,通通过测试来检检测产品内部部动作是否按按照设计规格格说明书的规规定正常进行行,检验程序序中的每条通通路是否都能能按预定要求求正确工作。应用时间:白盒盒测试在测试试过程的早期期阶段进行白盒测试技术:1、逻辑覆覆盖:语句覆覆盖、判定覆覆盖、条件覆覆盖、判定/条件覆盖、条条件组合覆盖盖、点覆盖、边边覆盖、路径径覆盖;2、控制结构测测试:基本路路径测试、条条件测试、循循环测试。逻辑覆盖测试的的5种标准 发现错误的能力力标准含义1(弱)语句覆盖每条语句至少执执行一次
27、A=2,B=0,X=42判定覆盖每一判定的每个个分支至少执执行一次 AA=3,B=0,X=33 A=22,B=1,XX=13条件覆盖每一判定中的每每个条件,分分别按“真”、“假假”至少各执执行一次A=2,B=00,X=4 A=1,BB=1,X=14判定/条件覆盖盖同时满足判定覆覆盖和条件覆覆盖的要求AA=2,B=0,X=44 A=11,B=1,XX=15(强)条件组合覆盖求出判定中所有有条件的各种种可能组合值值,每一可能能的条件组合合至少执行一一次条件覆盖不一一定包含判定定覆盖;判定覆盖也也不一定包含含条件覆盖。条件组合覆盖盖是前述几种种覆盖标准中中最强的。但但是,满足条条件组合覆盖盖标准的测
28、试试数据并不一一定能使程序序中的每条路路径都执行到到。例子:第8章 维护护1、什么是软件件维护、维护护分哪四种类类型、其含义义分别是什么么、在维护工工作中占得比比例如何?软件维护定义:就是在软件件已经交付使使用之后,为为了改正错误误或满足新的的需要而修正正软件的过程程。维护分为四种类类型:(1)改改正性维护:把整断和改改正错误的过过程称为改正正性维护(22)适应性维维护:为了和和变化的环境境适当的配合合而进行的修修改软件的活活动,(3)完完善性维护:在使用软件件的过程中用用户常常提出出新增功能或或修改已有功功能的建议,为为了满足这类类要求的活动动(4)预防防性维护:为为了改进将来来的可维护性性
29、或可靠性;所占比例:完善善性维护:550%666% 改正正性维护:117%211% 适应应性维护:118%255% 其他他维护:4%2、什么是软件件的可维护性性?决定软件件可维护性的的因素有哪些些?造成软件件难以维护的的原因有哪些些?软件的可维护性性:是指软件件维护人员理理解、纠正软软件系统出现现的错误和缺缺陷,以及为为满足新的要要求进行修改改、扩充或压压缩软件的难难易程度决定软件可维护护性的五个因因素:(1)可可理解性(22)可测试性性(3)可修修改性(4)可可移植性(55)可重用性性难以维护的原因因:在于这些些软件的文档档不全、质量量差、开发过过程不注意采采用好的方法法,忽视程序序设计风格
30、等等。难以维护的根本本原因:软件件定义和软件件开发的方法法有缺点,在在软件生命周周期的头两个个时期没有严严格而又科学学的管理和规规划,没有采采用软件工程程思想开发软软件。3、文档和可维维护性之间的的关系?文档是影响软件件可维护性的的决定因素,文文档往往比代代码更加重要要;软件系统的文档档可以分为用用户文档和系系统文档两类类.软件系统的文文档可以分为为用户文档和和系统文档两两类.用户文文档主要描述述系统功能和和使用 方法法,并不关心心这些功能是是怎样实现的的;系统文档档描述系统发发设计,实现现和测试等各各方面的 内内容 8.4.2 文档分类用户文档:主要要描述系统功功能和使用方方法,并不关关心这
31、些功能能是怎样实现现的系统文档:描述述系统设计、实实现和测试等等各方面的内内容 文档要求 必须描述如何何使用这个系系统,没有这这种描述时即即使是最简单单的系统也无无法使用; 必须描述怎样样安装和管理理这个系统; 必须描述系统统需求和设计计; 必须描述系统统的实现和测测试,以便使使系统成为可可维护的 用户文档功能描述 ,说说明系统能做做什么; 安装文档 ,说说明怎样安装装这个系统以以及怎样使系系统适应特定定的硬件配置置; 使用手册 ,简简要说明如何何着手使用这这个系统( 应该通过丰丰富例子说明明怎样使用常常用的系统功功能,还应该该说明用户操操作错误时怎怎样恢复和重重新启动) ; 参考手册 ,详详
32、尽描述用户户可以使用的的所有系统设设施以及它们们的使用方法法,还应该解解释系统可能能产生的各种种出错信息的的含义( 对参考手手册最主要的的要求是完整整,因此通常常使用形式化化的描述技术术) ; 操作员指南( 如果需要有有系统操作员员的话) ,说明操操作员应该如如何处理使用用中出现的各各种情况。 8.4.2 文档系统文档问题定义、需求求说明到验收收测试计划这这样一系列和和系统实现有有关的文档4、衡量软件质质量的主要指指标?可维护性、可使使用性、可靠靠性是衡量软软件质量的主主要指标9.面向对象的的概念9.2.1 对对象是客观事物物或概念的抽抽象表述,即即对客观存在在的事物的描描述统称为对对象对象可
33、以是是事、物、或或抽象概念 ,是将一组组数据和使用用该数据的一一组基本操作作或过程封装装在一起的实实体。对象的特点(1) 以数据据为中心。 (2) 对象是是主动的。(3) 实现了了数据封装。(4) 本质上上具有并行性性。(5) 模块独独立性好。9.2.2 类类 类又称对对象类(Obbject Classs ), 是一组具有有相同属性和和相同操作的的对象的集合合。在一个类类中,每个对对象都是类的的实例(innstancce) , 它们都可以以使用类中提提供的函数。 9.2.3 实实例实例就是由由某个特定的的类所描述的的一个具体的的对象。类是是对具有相同同属性和行为为的一组相似似的对象的抽抽象,类
34、在现现实世界中并并不能真正存存在。9.2.4 消消息 消息就是是向对象发出出的服务请求求(互相联系系、协同工作作等)。一个个消息包含33 个部分:接收消息的的对象,消息息名,消息变变元。 例如,MMyCirccle 是Circlle 类的一一个实例,发发送消息如下下: MyCCirclee.showw (GREENN ); 9.2.5 方方法方法就是对对象所能执行行的操作,也也就是类中所所定义的服务务。方法描述了了对象执行操操作的算法,响响应消息的方方法。在C+语言中把把方法称为成成员函数。9.2.6 属属性属性就是类类中所定义的的数据,它是是对客观世界界实体所具有有的性质的抽抽象。9.2.7
35、 封封装对象封装了了对象的数据据以及对这些些数据的操作作。9.2.8 继继承继承是指能能够直接获得得已有的性质质和特征,而而不必重复定定义它们。在在面向对象的的软件技术中中,继承是子子类自动地共共享基类中定定义的数据和和方法的机制制。单重继承: 子类仅从一一个父类继承承属性和方法法 多重继承承:子类可从从多个父类继继承属性和方方法9.2.9 多多态性在类等级的的不同层次中中可以共享(公用)一个行为(方法)的名字,然然而不同层次次中的每个类类却各自按自自己的需要来来实现这个行行为。当对象接收收到发送给它它的消息时,根根据该对象所所属于的类动动态选用在该该类中定义的的实现算法有两种重载:函函数重载
36、是指指在同一作用用域内的若干干个参数特征征不同的函数数可以使用相相同的函数名名字;运算符符重载是指同同一个运算符符可以施加于于不同类型的的操作数上面面。当然,当当参数特征不不同或被操作作数的类型不不同时,实现现函数的算法法或运算符的的语义是不相相同的。重载载进一步提高高了面向对象象系统的灵活活性和可读性性。9.4.2 表示关系的的符号类与类之间间关系有:关关联,聚集,泛化(继承承),依赖,细化9.4.2.11 关联关联表示两两个类的对象象之间存在某某种语义上的的联系。(1) 普普通关联普通关联示例在表示关联联的直线两端端可以写上重重数(mulltipliicity),它它表示该类有有多少个对象
37、象与对方的一一个对象连接接。重数的表表示方法通常常有:01表示0到1个对象0*或*表示0到多个对象象1+或1*表示1到多个对象象115表示1到15个对象3表表示3个对象如果图中未未明确标出关关联的重数,则则默认重数是是1。(2) 关关联的角色在任何关联联中都会涉及及到参与此关关联的对象所所扮演的角色色(即起的作作用),在某某些情况下显显式标明角色色名有助于别别人理解类图图。如果没有有显式标出角角色名,则意意味着用类名名作为角色名名。(3) 限限定关联限定关联通通常用在一对对多或多对多多的关联关系系中,可以把把模型中的重重数从一对多多变成一对一一,或从多对对多简化成多多对一。在类类图中把限定定词
38、放在关联联关系末端的的一个小方框框内。(4) 关关联类为了说明关关联的性质可可能需要一些些附加信息。可可以引入一个个关联类来记记录这些信息息。关联中的的每个连接与与关联类的一一个对象相联联系。关联类类通过一条虚虚线与关联连连接。9.4.2.22 聚集 聚集是一一种特殊的关关联,它指出出类间的“ 整体- 部分” 关系。 (1) 共共享聚集如果在聚集集关系中处于于部分方的对对象可同时参参与多个处于于整体方对象象的构成,则则该聚集称为为共享聚集。(2) 组组合聚集如果部分类类完全隶属于于整体类,部部分与整体共共存,整体不不存在了部分分也会随之消消失,则该聚聚集称为组合合聚集。9.4.2.33 泛化U
39、ML中的的泛化关系就就是通常所说说的继承关系系。(1) 普通泛泛化(2) 受限限泛化可以给泛化化关系附加约约束条件,以以进一步说明明该泛化关系系的使用方法法或扩充方法法,这样的泛泛化关系称为为受限泛化。预预定义的约束束有4种: 多重、不相相交、完全和和不完全。下下图:多重继继承9.4.2.33 泛化(IIII)完全继承指指的是父类的的所有子类都都已在类图中中穷举出来了了,图示符号号是指定完全约束。不完全继承承与完全继承承恰好相反,父父类的子类并并没有都穷举举出来,不完完全继承是一一般情况下默默认的继承关关系9.4.2.4 依依赖依赖关系表表示: 其中一个模模型元素是独独立的,另一一个模型元素素
40、不是独立的的,它依赖于于独立的模型型元素,如果果独立的模型型元素改变了了,将影响依依赖于它的模模型元素。9.4.2.55 细化当对同一个个事物在不同同抽象层次上上描述时,这这些描述之间间具有细化关关系。假设两两个模型元素素A和B描述同一个个事物,它们们的区别是抽抽象层次不同同,如果B是在A的基础上的的更详细的描描述,则称BB细化了A,或称A细化成了B。9.3 面向对对象建模面向对象开开发软件,需需要建立3种形式的模模型。对象模型。描描述系统数据据结构数据结构。动态模型。描描述系统控制制结构执行操作。功能模型。描描述系统功能能数值变化。这三种模型型从不同侧面面描述了对系系统的需求。在在面向对象的
41、的分析(OOOA)阶段,这这三种模型是是必不可少的的。9.4 对象模模型对象模型描描述了系统的的静态结构。OO方法强调围绕对象而不是功能来构造系统。使用统一建建模语言UMML (Unifiied Moodelinng Lannguagee )提供的的类图来建立立对象模型。UML用例例图是建立功功能模型的有有力工具。动态模型描述系系统控制结构构。通常用状状态图表示。下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层功能模型表示变变化的系统的的“功能”性质,它指指明了系统应应该“做什么”,通常,功功能模型由一一组数据流图图组成。UMML提供的用用例图也是进进行需求分析析
42、和建立功能能模型的强有有力工具。对象模型动态模型功能模型对象的静态结构构及相互关系系与时间和顺序有有关的系统性性质与值的变化有关关的系统性质质描述系统的数据据结构控制结构系统的功能“干事的主体”“什么时候干”“干什么”第13章 软软件项目管理理1、什么是软件件项目管理?目的是什么么?软件项目目管理的主要要内容是什么么?主要职能能是什么?软件项目管理的的定义:是为为了实现项目目目标,运用用相关的知识识、技能、方方法、工具,对对项目的计划划、进度、质质量、成本、资资源进行管理理和控制的活活动。目的:通过计划划、组织和控控制等一系列列活动,合理理地配置和使使用各种资源源,以达到既既定目标的过过程。项
43、目管管理不仅是为为了节约金钱钱,而且是为为了节省时间间,缩短产品品的开发周期期。内容:(1) 人员的的管理与组织织(2) 软件度度量(3) 软件项项目计划(4) 风险管管理(5) 软件质质量保证(6) 软件过过程能力评估估(7) 软件配配置管理主要职能:制定定计划、建立立组织、配备备人员、指导导2、软件规模估估算的两种典典型方法是什什么?含义分分别是什么?代码行技术含义义:这种方法法依据以往开开发类似产品品的经验和历历史数据,估估计实现一个个功能所需要要的源程序行行数代码行技术估算算方法:估计计该程序模块块的最小规模模(设为a)、最大规规模(设为b)和最可能能的规模(设为m),则计算算单元规模
44、的的估计值为:功能点技术含义义:依据对软软件信息域特特性和软件复复杂性的评估估结果,估算算软件规模3、软件开发小小组人员如何何确定,人员员个数怎么确确定?根据软件规模估估算出完成项项目所需的工工作量,确定定开发人员的的个数,并合合理地组织项项目组结构。4、根据什么、如如何确定软件件项目组的最最佳规模,为为什么存在项项目组的最佳佳规模?对于某一个组员员来说,他与与其他组员通通信的路径数数在1(P-1)的范范围内变化。如如果不与任何何人通信时个个人生产率为为L,而且每条条通信路径导导致生产率减减少l,则组员个个人平均生产产率为Lr=L-l(P-1)rr(13.55)其中,r是对通通信路径数的的度量
45、,00)。对于一个规模为为P的项目组,从从(13.55)式导出项项目组的总生生产率为Ltot=P(L-l(P-1)r)(13.66)对于给定的一组组L、l和r的值,总生生产率Ltoot是项目组组规模P的函数。随随着P值增加,Lttot将从0增大到某个个最大值,然然后再下降。因因此,存在一一个最佳的项项目组规模PPopt,这这个规模的项项目组其总生生产率最高。4、以工程网络络图为工具,如如何估算工程程进度(工程程网络图如何何画)?5、什么是软件件质量?它主主要包括哪三三方面的内容容?软件质量量保证的三个个措施及其具具体内容?软件质量的定义义:就是“软件与明确确地和隐含地地定义的需求求向一致的程程度”。更具体地地说,软件质质量是软件与与明确地叙述述的功能和性性能需求、文文档中明确描描述的开发标标准以及任何何专业开发的的软件产品但但都应该具有有的隐含特征征相一致的程程度。它包括三方面含含义:(1)软软件需求是度度量软件质量量的基础,与与需求不一致致就是质量不不高;(2)指定的开开发标准定义义了一组指导导软件开发的的准则,如果果没有遵守这这些准则,肯肯定会导致软软件质量不高高;(3)通常,有有一组没有显显式描述的隐隐含需求(例例如,软件应应该是容易维维护的)。如如果软件满足足明确描述的的需求,但却却不满足隐含含的需求,那那么软件的质质量仍然是值值得怀疑的;软件质量保证的的措施:(11)