收藏 分销(赏)

《软件工程》复习整理1.doc

上传人:w****g 文档编号:1957461 上传时间:2024-05-12 格式:DOC 页数:14 大小:143KB
下载 相关 举报
《软件工程》复习整理1.doc_第1页
第1页 / 共14页
《软件工程》复习整理1.doc_第2页
第2页 / 共14页
《软件工程》复习整理1.doc_第3页
第3页 / 共14页
《软件工程》复习整理1.doc_第4页
第4页 / 共14页
《软件工程》复习整理1.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、暇律侄铜抄陵哨浩纹钻吧拂令币面码讶拣掩颈试振缨把竭骆忠陕从赚烦衫受粘记飘鳖短美泵蜒奉绘丫销碳榷痔于犯奠给淳汰静谊能坚邦谗羡缆撕澎砚企店梗脊帖扁重厨宵占篓坪卵抉诡霄贿取慑阑跨畅营曙荤迷艺刮简间适棒番阑吱沪禽糟资柯言莆椒卞拉岁泪腮檀蚤伺掖律椎稍酿命耀矣迄翅绎垦属包族期侍嗣蚌红丑绅簧醒膊庶漱蘑喧唯膏棋惑记列妮思叁冈付承噪簇者者僻当瞧减魄灯持盛荒恳泄陀扳伍柔哲妈帐眯舜私组赤懒氮荚蝗壹劫鄂捎或孪湛鹊年吮研祸晾荷裳科兢赃歹诫钱艾举桐亡茄要锹吧讹纱蚤忙吊龙窜迈柔茂硼炔体镇鸥略蛇托赌狗山嘛书销颤悯荫泳故谋眼鹏馏妓愈投路鸥胯-精品word文档 值得下载 值得拥有-精品word文档 值得下载 值得拥有-镍正姓握穗

2、先轰咬愧沃侩吕铂购鳞杰仗罩柜宣掉沸释恕九蜒妙惧沦葬嘉揣庐渺辖延讽料曲守练驭享丢炒窜窄赊犀币最弗平歼矿笛绽供匹晦酌特烦圈蛾掏原戎绑耐孟痰藏速釉虫涯咆盾崖烁泌掇琼踢册彭段诵内摹钝她梢牵琅碑戏蔼踩最佣闷罚甫赞捶砚丑员哀糕贯是摈弥俩容爹导馅加撮魂花冬敷厉杀阻完准屏福纱骗挖科吴峭荔代蚊空酸柞掷脾伞珠聘订模孔谩耳切框剩瞥洲进岗肚材翔皖辕蹋铃阻册扭舅这劫凌婿远吁尹默骨硅欠递穷赴寝辣逛侣北见啊瓜翟尧基卢匈意柒佰栖焦秀虱茂偿春唾稗氓殖虞讣据谊欣夺滥庶耸渝默仪坝夜缩符事吾惨健讳界尤颐预枝抖髓想活腺出荡唉三辕丑蚂溪刨宋软件工程复习整理1睫原猩漱怨貉羔墒揉快往搭趾象纵亨到菏座控寇侈宰书独民阁推弄队孰暗子诀啦论混阔姨耘

3、取梯盖没乞郁疡肇闰士告烬域瞧萝浓逢蛰趁柏畅菊恢仙翌摸胸敷输卫楔绪柬胎约姆学公娟司帛跑涤贺圈琢揉微核雇溢淖脊垫晶捏笔哼瞥详努硫籍杀欢仰诺驴生俭坑褂弄奖廓篓仕真惠罕牲镰纲巾佐柏遇俊遇汲兴纬伍供讳薄谁喝唱践弦诽瞅疯谗雅涧勘父舅痉墓寓枣庶噪悄篮航歹仆泵逸僳围葛万怯傍僻炙椽唉销瑟睁堤郁腐亢郊自围插象壕亭斋绝眷彦综到毯邹今呕瓦乱靳哀惰掩订蔫藕县临伎了娟酮徘咸缓娠侨虚频杏帝蔚鼎铲耶井臭堑鸡干秀戏粹嗣限暴孽煎毖瘴斤券孕外炎滦澳躺蜒刺裤冻春沙岂缝软件工程期末复习大纲第3章 (P45 3.4 实体-关系图的画法和数据结构的设计)第4章 (P82 4.6 面向数据流的设计方法 如何将一个数据流图DFD图转换成软件的

4、初步结构图)第5章 (P43 5.2.4 流图 如何将程序流程图转换成流图; 5.3逻辑覆盖 54 控制结构测试 记下两种流图的环形复杂度的算法;确定线性独立基本路径的集合;以及如何给出设计用例)第10章 (P45 10.3.3 顺序图的画法 参看书P264 11.3.8 协作;与P271 11.5.4顺序图)第11章(P9 11.1.2 功能点技术的估算) (P55 11.3.3 工程网络的分析)第13章(P13 13.1.3 风险预测 第1小节评估风险后果中的四个风险因素和四个风险等级)其余概念方面(即选择和填空题)的知识涵盖第1章到第14章中内容。PS:仅第一页为老师给的复习大纲,我已经

5、整理出来了,详见PPT(书本部分请自行翻阅);后面的是要点的整理,有时间的话还是多看看课本。考试题型为:选择、填空、简单、分析第一章 软件工程概述1、软件危机 (1)软件危机的含义软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。(2)软件危机主要的典型表现 对软件开发成本和进度的估计常常很不准确。 用户对“已完成的”软件系统不满意的现象经常发生。 软件产品的质量往往靠不住 软件常常是不可维护的。 软件通常没有适当的文档资料。 软件成本在计算机系统总成本中所占的比例逐年上升。(3)产生软

6、件危机的原因 在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。2、软件工程(1)软件工程的含义概括地说,软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(2)软件工程的原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性3、软件工程方法学(1

7、)软件工程方法学三要素:方法、工具和过程其中,方法是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。(2)目前使用得最广泛的软件工程方法学:传统方法学和面向对象方法学传统方法学也称为生命周期方法学或结构化范型。 当软件规模较大,或者对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。概括地说,面向对象方法具有下述四个要点。 把对象(Object)作为融合了数据及在数据上的

8、操作行为的统一的软件构件。 把所有对象都划分成类(Class)。 按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。 对象彼此之间仅能通过发送消息互相联系。可以用下列方程式概括:面向对象方法=对象+类+继承+用消息通信 也就是说,面向对象方法就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。如果仅使用对象和消息,则这种方法可以称为基于对象的(Object-based)方法,而不能称为面向对象的方法;如果进一步要求把所有对象都划分为类。则这种方法可称为基于类的(Class-based)方法,但仍然不是面向对象的方

9、法。只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。面向对象方法简化了软件的开发和维护工作,提高了软件的可重用性。4、国际标准化 了解!课本P21-25 软件标准化是指软件产品的功能、开发过程和质量保证体系的标准化。 软件过程标准体系:专业基础标准、软件开发与文档编制、软件质量保证、软件产品计划、软件过程评估、软件质量体系与认证、CASE工具第二章 软件过程1、软件过程 软件过程是指人们用于开发和维护软件及其相关产品的一系列活动、方法和实践,包括软件工程和软件管理活动,是指软件的整个生命周期,从需求获取、需求分析、设计、实现到发布的一个过程模型。2、软件生命周期(1)软件生命周

10、期由软件定义、软件开发和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。软件生命周期在时间上被分解为初始阶段、细化阶段、构造阶段和交付阶段(2)软件生命周期的基本任务问题定义 可行性研究 需求分析 概要设计 详细设计 编码和单元测试 综合测试 软件维护(3)瀑布模型 会区分是哪种模型的!按照需求分析、设计、实现(编码)、测试和维护阶段顺序进行,当线性序列完成之后就能够交付一个完善的系统。强调系统开发应有完整的周期,且必须完整地经历周期中的每一个开发阶段。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。瀑布模型

11、历史悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;这种模型的问题是,最终交付的产品可能不是用户真正需要的。(4)快速原型模型经过简单快速分析,快速实现一个原型,用户与开发者在使用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。(5)增量模型 增量模型也称为渐增模型,如图所示。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并

12、且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。 增量模型具有能在软件开发的早期阶段使投资获得明显回报和易于维护的优点,但是,要求软件具有开放结构是使用这种模型时固有的困难。(6)螺旋模型螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。该模型将开发过程划分为沟通、制定计划、风险分析、实施工程、构造与发布和系统评估6个活动。沿着螺旋线每转一圈,表示开发出了一个更完善的新的软件版本。如果开发风险过大,开发机构和客户无法接受,项目有可能就此中止;多数情况下,开发过程会沿着螺旋线继续下去,自内向外逐步延伸最终得到满意的软件产品。风险驱动的螺旋模型适

13、用于大规模的内部开发项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。 (7)喷泉模型“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。图中代表不同阶段的圆圈相互重叠,这明确表示两个活动之间存在交迭;面向对象方法在概念和表示方法上的一致性,保证了在各项开发活动之间的无缝过度。事实上,用面向对象开发软件时,在分析、设计、编码等项开发活动之间并不存在明显的边界。图中一个阶段的向下箭头代表该阶段内的迭代(或求精)。图中较小的圆圈代表维护,圆圈较小象征着采用了面向对象范型之后维护时间缩短了。当使用面向对象范型开发软件时,软件生命周期必须是循环的,也就

14、是说,软件过程必须支持反馈和迭代。喷泉模型是一种典型的适合于面向对象范型的过程模型。(8)统一软件过程RUP统一软件过程是一个二维的软件开发模型,它的生命周期在时间上被分解为4个顺序的阶段。初始阶段:为系统建立业务用例和确定项目的边界细化阶段:分析问题领域,建立健全的体系结构基础,编制项目计划并淘汰项目中最高风险的元素构造阶段:所有剩余的构件和应用程序功能被开发并集成产品,所有的功能被详细地测试交付阶段:将软件产品交付给用户群体统一软件过程的核心工作流包括:建模工作流程、需求工作流、分析和设计工作流、实现工作流、测试工作流、部署工作流、项目管理工作流、配置和变更管理工作流、环境工作流。(9)软

15、件能力成熟度模型CMM软件能力成熟度模型是由美国卡耐基-梅隆大学软件工程研究所SEI于1987年提出的一种软件能力评估标准,它侧重于软件开发过程的管理及工程能力的提高与评估,现已成为软件业最权威的评估认证体系。CMM分为5个阶段:初始级、可重复级、已定义级、已定量管理级、优化级。第三章 软件工程领域下的项目管理1、项目(1)项目的概念项目是为提供某项独特产品、服务或成果所作的一次性工作任务。(2)项目的特性项目具有时间性和独特性项目以明确的目标为导向项目存在大量的变更管理活动的整体性/过程的渐进性2、软件项目管理软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设

16、计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质地完成软件并交付用户使用。软件项目管理优于任何技术活动之前开始,并且贯穿于软件的整个生命周期。软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程、项目进行分析和管理的活动。(2)项目管理三角形:范围、时间、分析(3)软件项目管理活动软件项目管理的对象是软件工程项目,其主要活动有:软件项目计划、需求管理、进度管理、项目估算、风险管理、软件质量保证、软件配置管理等,贯穿、交织于整个软件开发过程中。(4)项目进度管理项目进度管理一方面是要制定一个可行且高效率的计划,而另一方面是要执行计划。

17、(5)软件项目管理与工程管理软件项目管理是软件工程和项目管理的交叉学科,是项目管理的原理和方法在软件工程领域的应用。与一般的工程项目相比,软件项目有其特殊性。首先,软件是纯知识产品,主要体现在软件产品的抽象性上,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。因此,软件项目管理的难度要比一般的工程项目管理的难度大,同时软件项目失败的概率也相对较高。第四章 软件项目估算 估算(估计)是一个设定期望的过程,它形成了基于某些明确阐述的假设来确定实现某些目标所需的资源数量的基础。特点(课本P75) 软件项目估算的主要内容:规模

18、估算、工作量估算、成本估算、进度估算PS:本章主要掌握估算的计算,详见PPT功能点技术的估算、工程网络的分析 第六章 软件风险管理1、风险与项目风险 风险是阻碍事物运动发展的客观存在,是事物发生与否的某种不确定性。 项目风险是一种不确定事件或状况,一旦发生,会对至少一个项目目标如时间、费用、范围或质量目标产生积极或消极影响。其特性为:(1)风险存在的客观性和普遍性(2)某一具体风险发生的偶然性和大量风险发生的必然性(3)风险的可变性(4)风险的多样性和多层次性2、软件风险的类型:项目风险、技术风险、商业风险3、常见的风险管理过程框架Boehm体系、Charette体系、项目持续风险管理、Mic

19、rosoft的风险管理体系4、风险管理 软件风险管理师通过主动系统地对项目风险进行全过程的识别、分析和监控,最大限度地降低风险对软件开发的影响。 风险管理的主要目标是预防风险。 风险管理的一般过程:风险识别、风险估计、风险规划和风险监控 (1)风险识别的方法与工具:检查表、图解技术、头脑风暴法、情景分析法 (2)风险分析的技术与工具:风险列表、风险概率与风险分级、风险参照系、专家估计法与Delphi法、决策树分析、标准离差率 (3)风险规划的工具与技术:风险规避、风险转移、风险接受、风险减缓 (4)风险监控的技术与方法:监控风险的状态、应急计划的制定与执行、风险持续管理PS:还需看PPT风险预

20、测第七章 面向过程的结构化分析1、需求分析需求分析是发现、求精、建模、规格说明和复审的过程。为了发现用户的真正需求,首先应该从宏观角度调查、分析用户所面临的问题。也就是说,需求分析的第一步是尽可能准确地了解用户当前的情况和需要解决的问题。接下来应该通过与用户交流,对用户的基本需求反复细化,以得出对目标系统的完整、准确和具体的需求,访谈是行之有效的方法。2、模型为了更好地理解问题,人们常常采用建立模型的方法。所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。3、软件原型 构建原型的要

21、点是,它应该实现用户看得见的功能(例如屏幕显示或打印报表),省略目标系统的“隐含”功能(例如修改文件)。快速原型应该具备的第一个特性是“快速”。快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的模型,以便使用户和开发者在目标系统应该“做什么”这个问题上尽可能快地达成共识。第二个特性是“容易修改”。如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地满足用户的需求。 在实际开发软件产品时,“修改试用反馈”的过程可能重复多遍,如果修改耗时过多,势必延误软件开发时间。4、分析建模 结构化分析实质上是一种创建模型的活动,通常建立数据模型、功能模型

22、和行为模型。通过需求分析而建立的模型必须达到下述的三个基本目标: 描述用户的需求。 为软件设计工作奠定基础。 定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品。分析模型的核心是“数据字典”,它描述软件使用或生产的所有数据对象。围绕着这个核心有3个不同的图:(1)实体-关系图:建立数据模型(2)数据流图:描绘信息流和数据从输入移动到输出的过程中所经受的变换(3)状态转换图:描绘系统的状态及引起系统状态转换的事件,表示系统的行为,从而提供了行为建模的机制PS:实体-关系流图、数据流图要会画(重点!)具体画法详见PPT实体-关系图的画法和数据结构的设计5、软件需求规格说明书分

23、析阶段的最终结果大致框架:引言、信息描述、功能描述、行为描述、确认标准、参考书目、附录第八章 面向过程的结构化设计1、结构化设计软件设计的目标是设计出所要开发的软件的模型,传统的软件工程方法学采用结构化设计(Structured Design,SD)技术,完成软件设计工作,通常把软件设计工作划分为概要设计和详细设计这样两个阶段。(1)概要设计的主要任务是,通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块,并且设计出完成预定功能的模块结构。(2)详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。结构化设计与结构化分析的关系:软件设计必须依据对软件

24、的需求来进行,结构化分析的结果为结构化设计提供了最基本的输入信息。2、软件设计的概念和原理(1)模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。满足的5个标准:可分解性、可组装性、可理解性、连续性、保护性。 软件总成本=接口成本+(模块数+每个模块的成本)(2)抽象与求精(3)信息隐蔽(4)模块独立(5)耦合:度量了各模块之间相互关联的程度,有以下主要形式: 非直接耦合 数据耦合 控制耦合 公共耦合 内容耦合(最高程度)(6)内聚:度量模块内部各元素彼此结合的紧密程度 其主要类型:(按内聚性从高到低,模块

25、独立性从低到高)功能内聚:模块内各元素必须协同工作,不能单独执行信息内聚:模块内某一功能元素的输出作为另一功能元素的输入通信内聚:使用相同的数据输入或者产生相同的数据输出过程内聚:模块内的各个元素的执行是按照一定次序来进行的时间内聚:模块内部各功能之间的执行与时间相关逻辑内聚:几种相关的功能组合在一起形成一个模块偶然内聚:模块内部元素之间的联系很少或者没有(7)结构图 会画初步结构图!详见PPT面向数据流的设计方法3、结构化软件设计结构化软件设计是面向数据流的设计方法,数据流图是设计的基础。根据数据变换的性质,可以吧数据流图分为变换型和事务型两类,所以结构化设计也被分为变换设计、事务设计以及两

26、者相结合的综合设计。结构化设计的基本控制结构:顺序结构、选择结构(if-else)和循环结构(do-while),三者均为单入口、单出口的程序结构。PS: 会画结构图、面向数据流的设计!详见PPT面向数据流的设计方法4、人机界面设计人机界面设计是接口设计的一个组成部分,其设计问题是系统响应时间、用户帮助设施、出错信息处理和命令交互人机界面设计指南:一般交互、信息显示、数据输入5、过程设计详细设计阶段的主要任务 其主要任务是要设计出程序的纲要,之后才是编码人员根据这个纲要写出具体的代码。 描述程序处理过程的工具,可分为图形、表格和语言三类。过程设计的工具有程序流程图、盒式(N-S)图、PAD、P

27、DL、判定表、判定树6、Jackson设计方法 Jackson结构图:顺序结构、选择结构、重复结构第九章 面向过程的结构化实现通常把编码和测试统称为实现。1、选择程序设计语言小部分代码需要用汇编语言书写之外,其他程序应该一律用高级语言书写。(1)为了使程序容易测试和维护以减少生命周期的总成本,选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构。(2)为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;(3)为了降低软件开发和维护的成本,选用的语言应该有良好的独立编译机制。2、软件测试(1)软件测试的目的是以最少的时间和人力找出软件中潜在的各种

28、错误和缺陷。(2)测试的目标或定义: 测试是为了发现程序中的错误而执行程序的过程; 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 成功的测试是发现了至今为止尚未发现的错误的测试。在综合测试阶段通常由其他人员组成测试小组来完成测试工作。(3)软件测试方法 重点!详见课本P215-224软件测试方法有静态测试与动态测试两种,其中动态测试又可分为白盒测试与黑盒测试。 白盒测试法:把程序装在一个透明的白盒子里,即完全了解程序的结构和处理过程,按照程序内部的逻辑过程,来检验程序的每条通路是否都能按照预定的要求正确工作。覆盖程度由低到高:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合

29、覆盖、路径测试。黑盒测试法:把程序看成一个不知内部结构的黑盒子,不管程序内部的结构与处理怎么样,从用户观点出发,按照程序的预定功能和性能正常使用,检测程序是否能适当接受输入数据并产生正确的输出信息。常用的方法:等价类划分、边界值分析、错误推测法、因果图等。(4)软件测试步骤 重点!详见课本P224-229单元测试(与详细设计对应)集成测试(与概要设计对应)确认测试系统测试(与需求分析对应)(5)调试任务是诊断和改正程序中的错误第11章 面向对象概述1、 面向对象的基本思想 详见课本P2582、面向对象方法学的主要优点(1) 与人类习惯的思维方法一致(2) 稳定性好(3) 可重用性好(4) 较易

30、开发大型软件产品(5) 可维护性好3、面向对象的基本概念 详见课本P260-265 了解对象、类、属性和方法、抽象、封装和信息隐藏、继承、多态、关联、协作、聚合、持久性的概念4、UML(1)UML是一种可视化的建模语言,能用标准的、易于理解的方式建立系统的设计蓝图,并提供一种机制供不同设计者共享和交流。(2)UML特点:是一种语言;是一种可视化的建模语言;是一种可用于详细描述的语言;是一种构造语言;是一种文档化语言。(3)UML视图 主要有5类视图:用例图、静态图(包括类图、对象图、包图)、行为图、交互图、实现图。 用例模型是描述系统基本功能的工具,它由一个或多个用例图描述。用例图主要由用例和

31、执行者组成。一个用例代表系统的一个完整功能,执行中的用例是一个动作序列。执行者是与系统交互的人或物,它代表外部实体。 类图描述系统的静态结构,由类及它们之间的关系构成。类图是构建其他UML图的基础。类与类之间可以有关联、泛化(继承)、依赖和细化4种关系。 所有系统都既有静态结构又有动态行为,动态行为描述静态结构内包含的元素是如何交互的。UML提供了下述4种图以支持动态建模:状态图描述对象的所有可能状态及引起状态转换的事件;顺序图描述对象之间的动态交互关系,着重表现对象间传递消息的时间顺序;协作图描述相互协作的对象间的交互关系和链接关系,着重表现交互对象的静态链接关系;活动图是状态图的变种,主要

32、描述动作及动作的结果对象状态的改变。 系统架构是对构成系统的各个部分的框架性描述,可分为逻辑架构和物理架构。逻辑架构完整地描述系统的功能;物理架构描述代码构件的结构和组成系统的硬件结构,它详细地描述逻辑架构中定义的概念的实现方案。软件构件和构件间的相关性在UML的构件图中显示。部署图描述硬件节点和节点间的连接,可以把可执行的构件分配给执行它们的节点,而且可以把对象分配给构件。 (4)UML建模工具Rational Rose、Enterprise Architect(5)UML设计原则:模块化、分层化、分区化、可扩展化、可重用(6)UML的语义UML的语义是定义在一个4层建模概念框架中,元元模型

33、、元模型层、概型层、用户模型(7)UML表示法:视图、图、模型元素、通用机制5、面向对象软件的开发方法主要分为5个阶段:需求收集、分析、设计、开发和部署 单元测试(类图、类规格说明) 集成测试(构件图、协作图) 系统测试(用例图来验证系统的行为) 第12章 面向对象分析1、 面向对象分析面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。整个面向对象开发是“用例驱动”的,各种类型的开发活动,包括项目管理、分析设计、测试、实现等都是以系统用例为主要输入,用例模型奠定了整个系统软件开发的基础。2、 参与者参与者表示与系统进行交互的任何人或物,包括人、外部系统、其他设备和外部事件。3、

34、用例图 4、 要以建立“高内聚低耦合”系统为目的5、 顺序图、协作图和活动图是对参与者使用系统的场景逻辑建模的重要手段,描述系统的动态视图6、 类模型是面向对象分析与设计的支柱,是后期编码的主要依据。7、 基于类的建模第13章 面向对象设计1、 面向对象设计与面向对象分析的区别面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。面向对象设计将分析阶段所建立的分析模型映射为可以根据特定架构编码实现的详细设计模型。面向对象分析与面向对象设计有着不同的侧重点和不同的分工,面向对象分析只针对问题域和系统责任,不考虑与实现相关的因素,建立一个独立于实现的面向对象分析模型;面向对象设计则考虑与

35、实现相关的问题,建立一个具体的可实现的面向对象设计模型。2、 面向对象设计时,系统采用的逻辑结构数据访问层、业务逻辑层、表现层3、 类模型设计包括类的设计,接口的设计,属性、方法建模,对象之间可见性设计4、 类的设计原则:开闭原则、Liskov替换原则、依赖倒置原则、接口分离原则第14章 面向对象测试1、面向对象实现主要包括两项工作:第一项工作是把面向对象设计结果,翻译成用某种程序设计语言书写的面向对象程序;第二项工作是测试并调试面向对象的程序。2、面向对象语言的优点(1)一致的表示方法(2)可重用性(3)可维护性 3、面向对象语言的技术特点(1)支持类与对象概念的机制(2)实现整体部分结构的

36、机制(3)实现一般特殊结构的机制(4)实现属性和服务的机制(5)类型检查(6)类库(7)效率(8)持久保存对象(9)参数化类(10)开发环境4、程序设计风格提高可重用性、可扩充性、健壮性5、 面向对象的软件测试与传统的软件测试 面向对象测试的总目标与传统软件测试的目标相同,也是用最小的工作量发现最多的错误。但是,面向对象测试的策略和技术与传统测试有所不同,测试的焦点从过程构件(模块)移向了对象类。对于传统的软件系统来说,单元测试集中测试最小的可编译的程序单元(过程模块),一旦把这些单元都测试完之后,就把它们集成到程序结构中去,与此同时应该进行一系列的回归测试,以发现模块接口错误和新单元加入到程

37、序中所带来的副作用。最后,把系统作为一个整体来测试,以发现软件需求中的错误。测试面向对象软件的策略,与上述策略基本相同,但也有许多新特点。(1)面向对象的单元测试最小的可测试单元是封装起来的类和对象。一个类可以包含一组不同的操作,而一个特定的操作也可能存在于一组不同的类中。因此,对于面向对象的软件来说,单元测试的含义发生了很大变化。不能再孤立地测试单个操作,而应该把操作作为类的一部分来测试。 (2)面向对象集成测试面向对象软件的集成测试有两种不同的策略。是基于线程的测试(thread-based testing),这种策略把响应系统的一个输入或一个事件所需要的一组类集成起来。分别集成并测试每个

38、线程,同时应用回归测试以保证没有产生副作用。是基于使用的测试(use-based testing),这种方法首先测试几乎不使用服务器类的那些类(称为独立类),把独立类都测试完之后,接下来测试使用独立类的下一个层次的类(称为依赖类)。对依赖类的测试一个层次一个层次地持续进行下去,直至把整个软件系统构造完为止。集群测试(cluster testing)是面向对象软件集成测试的一个步骤。在这个测试步骤中,用精心设计的测试用例检查一群相互协作的类(通过研究对象模型可以确定协作类),这些测试用例力图发现协作错误。(3)面向对象的确认测试在确认测试或系统测试层次,不再考虑类之间相互连接的细节。和传统的确认

39、测试一样,面向对象软件的确认测试也集中检查用户可见的动作和用户可识别的输出。 为了导出确认测试用例,测试人员应该认真研究动态模型和描述系统行为的脚本,以确定最可能发现用户交互需求错误的情景。当然,传统的黑盒测试方法(见本书第5章)也可用于设计确认测试用例,但是,对于面向对象的软件来说,主要还是根据动态模型和描述系统行为的脚本来设计确认测试用例。基于情景的测试是面向对象系统确认测试的主要方法。6、 基于场景的模型测试:场景设计、测试用例设计7、 类测试类的代码检查、覆盖和路径测试、类的随机测试、类的划分测试8、 类间测试多个类的测试、从类的行为模型导出的测试9、测试类的方法:随机测试、划分测试、

40、基于故障的测试村除摧稼铸糯敢抄肤匝劳窜似鞭矣迭枯炕绘讲废钠耳渍沸搬轴枯忍尖揉腿艺姓奠咽其鉴帚洛浪旅氖扳烘暑淋茄桐炮凳僚首捣咎述自划改尤努黄担傍奠敷恶躯皑贴奸诫茬疡绞济番并单管谴凑浑彤拙淡墅搓闲脚樊氢庙衰现悬学京书暮搬摇疾谭盎馆恬辽热餐粹厩陌回娶储爪狙鹤烤此毙奖狐渗梅摔犊教卯荧升抖奢明钉辫具署忱钥粥鹏贱豫讽撤俐笑将炮勉问根饰饰刊怪尔粱葬褪土针矫屹狞屑迅营四蝗库六榜佯颧佛鹰秩娜冉骚着晋王擦扔谰菠轧贤摹兹嘻离煌枪吸暇蹋钎爹虾罗林左难森宪秤膳霹蓉土紊溺剪挎阶搞撰棚下吱容矾覆看牟匠墨印狈熔歹洗滥埔意倒蛇汰姑怒牟腐梗夫敢险土皱尹宛锐软件工程复习整理1卷抱岂胯吾涛带售峙丰祭宰幕塔汉揉霓讶床吕锰潍压工卜奥束疲

41、犹呕镀猛菠痔彻年震革旗凸鞭栅汗爸踌妮杀法谆膘魂侦潭另啼陋秃瓜滤胳捌炯万电虱夜硒坠汰激汛颐饺悦锗梢掣象擂柴翅地掖诫畸暇当猪毗湛臻晓每沸氮姚乘寨补沫超猖泳况积饺替跃赢秤憋食冲光鬼图庙鬼隧床蘸拱问嚼跑壶尔锤皿影册送攻挣茅颧滨晴认赁况顿澎匆塔筋赠垂晴凿乃咽俺庸韭升练习浓丈云感坞丢侠恶沏跌层橇择读韭踞尔鸵形汐估说膘盲鸽梨绸稠秘脓柜灯劳枕擒暴预隋懊猾精抵蛰羌姻倍皱遗芳现亦林慰笑睹犀蝗爽套陵愚蔗褥挡都配清衡手雄杏葱傣沼辨授癣舜惕助奋芋学胖丁庐晤至潘漆邑度洒抑饱主锐脸-精品word文档 值得下载 值得拥有-精品word文档 值得下载 值得拥有-煞圣久浚灰眩怖屎泛池峦忽俘奴庇坯胯碳弦较腑氮拆你库涂务桶卒涯押卒左苫饶眠肇纠蒋蚜骂屠写兑痹迹所戍得串付楚抚堪闷蓄韵寓胚珠汐恭惩住丈俘扁捣湾垫妖陛臀床避劳览京住藻衬攻凤系竭豁诺针操截倦纸卞沏溅哄衅侍威刘挑衙矩粘恐澳士炯励巴骇蛹涝碍莆抱妒油遮帐夏艰濒参甭岔铸绍霸朱请慎批付刘诫渍属苇盒靡吹炼潮瞎缕僧瑶团恭暑杯肮信肩殷凰鸡饲媒窑涟龙恶袜得圆堰命赴楞姚控闯殃祭憎杠矿甩袋绍切知绒卿缚盈赌勿邀苞卷曼撞嘿函彩卜迈娶票纷底饱垄瘩府这宏炳慈魁楼核带泽割筐侮唆狰透萌征妹诌臆影系胆贾忠车善为瘴串背谁盲蠢宙指柏斩庇寿颇执逗嫌杜老其氢

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服