第2章现代软件工程_第1页
第2章现代软件工程_第2页
第2章现代软件工程_第3页
第2章现代软件工程_第4页
第2章现代软件工程_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机软件基础计算机软件基础第二章第二章 现代软件工程现代软件工程2021-11-16西安理工大学 计算机科学与工程学院第2页一、面向对象一、面向对象的概念和原则的概念和原则二、面向对象二、面向对象的分析的分析OOA OOA 三三、面向对象设计、面向对象设计OODOOD四、面向对象四、面向对象的实现的实现五、面向对象的测试五、面向对象的测试六六、软件工程、软件工程高级课题高级课题2021-11-16西安理工大学 计算机科学与工程学院第3页一、面向对象的概念和原则一、面向对象的概念和原则面向对象方法起源于面向对象编程语言。面向对象的研究重点从编程语言转移到设计方法学。面向对象方法包括分析、设计和

2、实现活动。它是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,建立在“对象”概念(对象、类和继承)基础上的方法学。基于对象概念,以对象为中心,以类和继承为构造机制来认识、理解、刻画客观世界和设计、构建相应的软件系统。a. 面向对象方法概述面向对象方法概述2021-11-16西安理工大学 计算机科学与工程学院第4页a. 面向对象方法的概述面向对象方法的概述u 概括的说,面向对象方法具有以下概括的说,面向对象方法具有以下4 4个要点:个要点:1.认为客观世界是由各种对象组成,任何事物都是对象。2.把对象划分为对象类,为每个对象类定义一组数据和方法。3.按照子类与父类的关系,把若干个

3、对象类组成一个层次结构的系统。4.对象之间只能通过传递消息互相联系。一、面向对象的概念和原则一、面向对象的概念和原则u 面向对象方法的主要优点:面向对象方法的主要优点:1.与人类习惯的思维方法比较一致。2.稳定性好。3.可重用性好。4.较易开发大型软件产品。2021-11-16西安理工大学 计算机科学与工程学院第5页b. 面向对象的面向对象的概念概念u 对象对象(Object):是将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体。静态特征(属性):用来描述对象静态特征的数据项。动态特征(行为):对象所表现的行为或具有的功能,用来描述对象动态特征的操作序列。如有一个学生,名叫

4、张大发,男,计算机科学与技术专业,3年级,选修数据库课程。描述如下:对象名:张大发; 对象状态: 性别:男、年级:3年级、专业: 计算机科学与技术;对象功能: 年级、专业、性别(属于自身所承受的操作);要求开设数据库课程(属于施加于其它对象的操作)。一、面向对象的概念和原则一、面向对象的概念和原则2021-11-16西安理工大学 计算机科学与工程学院第6页u 消息消息(Message)(Message): 将操作送到目标对象的一种机制称为消息。 它包括操作名的选择和传递,操作信息的变量有三个部分: 接收消息的对象;消息选择符;变元。 例如,张大发要求开设数据库课程,可描述如下:王东. 教数据库

5、课程(张大发,计算机科学与技术)。 这里“王东”是接收消息的对象,“教数据库课程”是消息选择符,而“张大发,计算机科学与技术”是变元。u 类类(Class):(Class): 对同类型对象抽象出其共性,形成类。类通过一个简单的外部接口,与外界发生关系。一、面向对象的概念和原则一、面向对象的概念和原则b. 面向对象的面向对象的概念概念2021-11-16西安理工大学 计算机科学与工程学院第7页u 实例实例(Instance)(Instance): 组成类的对象,都是该类的实例。类与实例之间的关系,可以看成是抽象与具体的关系。u 方法方法(Method):(Method): 方法是对象所能执行的操

6、作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。u 属性属性(Attribution):(Attribution): 属性是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。一、面向对象的概念和原则一、面向对象的概念和原则b. 面向对象的面向对象的概念概念2021-11-16西安理工大学 计算机科学与工程学院第8页u 封装(封装(EncapsulationEncapsulation): 封装是指将数据及与这些数据有关的操作集合放在一起,形成一个能动的对象。u 多态性多态性(Polymorphism):(Polymorphism): 多态性是指在一般类中定义的属性

7、或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。u 继承继承(Inheritance):(Inheritance): 特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。一、面向对象的概念和原则一、面向对象的概念和原则b. 面向对象的面向对象的概念概念2021-11-16西安理工大学 计算机科学与工程学院第9页u 重载重载(Overload)(Overload): 是指在子类中对所继承父类的方法(函数)重新进行定义。 面向对象方法的特点就在于采用了抽象技术,封装技术及继承机面向对象方法的特点就在于采用了抽象技术,封装技术及继承机制。制。一、面向对象的概念和原

8、则一、面向对象的概念和原则b. 面向对象的面向对象的概念概念2021-11-16西安理工大学 计算机科学与工程学院第10页一、面向对象的概念和原则一、面向对象的概念和原则二、面向对象的分析二、面向对象的分析OOA OOA 三、面向对象设计三、面向对象设计OODOOD四、面向对象的实现四、面向对象的实现五、面向对象的测试五、面向对象的测试六、软件工程高级课题六、软件工程高级课题2021-11-16西安理工大学 计算机科学与工程学院第11页二、二、 面向对象的分析面向对象的分析OOA OOA OOA OOA的基本任务是运用的基本任务是运用OOOO方法对问题域进行分析和理解,找出方法对问题域进行分析

9、和理解,找出描述问题域所需的对象及类,定义这些对象和类的属性与服务以及描述问题域所需的对象及类,定义这些对象和类的属性与服务以及它们之间所形成的结构、静态联系和动态联系。它们之间所形成的结构、静态联系和动态联系。OOAOOA的最终目的是的最终目的是产生一个符合用户需求,并能够直接反映问题域的产生一个符合用户需求,并能够直接反映问题域的OOAOOA模型及其软模型及其软件的需求规格说明。件的需求规格说明。2021-11-16西安理工大学 计算机科学与工程学院第12页a. OOA的有关术语的有关术语u 主题主题(Subject):是指把一些具有较强联系的类组织在一起而得到的类的集合,主题有时也称为包

10、(Package) 。u 问题域(问题域(Program domain):是指被开发系统的应用领域,即):是指被开发系统的应用领域,即在客观世界中由该系统处理的业务范围。在客观世界中由该系统处理的业务范围。u 系统责任(系统责任(System responsibilities):是指所开发的系统应该):是指所开发的系统应该具备的职能。具备的职能。 u 关联关联(Association):是指对象之间存在的静态联系。:是指对象之间存在的静态联系。 u 聚合聚合(Aggregation): 又称组装,是指把一个复杂的事物看成若干个又称组装,是指把一个复杂的事物看成若干个简单的事物的组装体,用于简化

11、对复杂事物的描述。简单的事物的组装体,用于简化对复杂事物的描述。 二、二、 面向对象的分析面向对象的分析OOA OOA 2021-11-16西安理工大学 计算机科学与工程学院第13页a. OOA的有关术语的有关术语u OOA模型:模型:是一种用OOA方法建立的系统模型,它包括:基本模型和补充模型。u 基本模型:基本模型:是用直观的方式表达系统的重要信息。u 补充模型:补充模型:提供帮助理解基本模型的主题图和反映如何满足用户需求的交互图。二、二、 面向对象的分析面向对象的分析OOA OOA 2021-11-16西安理工大学 计算机科学与工程学院第14页b. OOA的的基本过程基本过程1.1.确定

12、对象;确定对象;2.2.确定属性和行为;确定属性和行为;3.3.建立结构;建立结构;4.4.确定关联。确定关联。二、二、 面向对象的分析面向对象的分析OOA OOA 2021-11-16西安理工大学 计算机科学与工程学院第15页一、面向对象的概念和原则一、面向对象的概念和原则二、面向对象的分析二、面向对象的分析OOA OOA 三、面向对象设计三、面向对象设计OODOOD四、面向对象的实现四、面向对象的实现五、面向对象的测试五、面向对象的测试六、软件工程高级课题六、软件工程高级课题2021-11-16西安理工大学 计算机科学与工程学院第16页三、三、 面向对象设计面向对象设计OODOODu OO

13、AOOA和和OODOOD之间有密切的衔接联系。之间有密切的衔接联系。 OOA是提取和整理用户需求,并建立问题域精确模型的过程. OOD则是OO方法建立求解域模型的过程。OOD把数据对象和处理操作连接在一起,把数据和操作一起模块化。u OODOOD分为两个阶段分为两个阶段高层设计阶段高层设计阶段: 构造软件系统的总体模型.低层设计阶段低层设计阶段: 包括对象类的关联、接口形式及实现服务的算法等。u 虽然面向对象设计和分析的定义有明显的区别,但在实际的软件开发过程中二者的界限是模糊的.2021-11-16西安理工大学 计算机科学与工程学院第17页 在软件开发过程中,一个良好的设计不仅可以使系统在整

14、个生命周期中的总开销最小,而且使软件易于维护,为此在设计过程中应遵循一定的设计准则,具体如下:1.模块化模块化.a. 设计准则设计准则2.抽象抽象.3.信息隐信息隐蔽蔽.4.弱耦合、强内聚弱耦合、强内聚.5.重用性重用性.三、三、 面向对象设计面向对象设计OODOOD2021-11-16西安理工大学 计算机科学与工程学院第18页 在软件开发过程中,一个良好的设计不仅可以使系统在整个生命周期中的总开销最小,而且使软件易于维护,为此在设计过程中应遵循一定的设计准则,具体如下:1.模块化模块化.b. 参考原则参考原则2.抽象抽象.3.信息隐信息隐弊弊.4.弱耦合、强内聚弱耦合、强内聚.5.重用性重用

15、性.三、三、 面向对象设计面向对象设计OODOOD2021-11-16西安理工大学 计算机科学与工程学院第19页 在软件的设计过程中,不仅要遵循一些设计准则,还应该吸收前人总结的经验和教训,以提高面向对象设计的质量,具体有下列原则可供参考:1. 设计结果应该清晰易懂设计结果应该清晰易懂.b. 参考原则参考原则2. 一般一般特殊结构的深度应适当特殊结构的深度应适当.3. 设计简单的类设计简单的类.三、三、 面向对象设计面向对象设计OODOOD2021-11-16西安理工大学 计算机科学与工程学院第20页 良好的程序设计风格不仅能减少维护或扩充的开销,而且有助于在新项目中重用已有的程序代码。 象面

16、向结构的程序设计方法一样,在面向对象的程序设计方法中也追求系统的可重用性、可扩充性和健壮性。u 提高可重用性提高可重用性。为了实现有效的重用,需遵循的设计准则主要有以下几条:c. 面向对象的程序设计风格面向对象的程序设计风格下边给出实现这些目标应遵循的一些准则:下边给出实现这些目标应遵循的一些准则:1. 提高方法的内聚性;2.减小方法的规模;3.保持方法的一致性;4.把策略与实现分开;5.全面覆盖;6.尽量不使用全局信息;7.利用继承机制;三、三、 面向对象设计面向对象设计OODOOD2021-11-16西安理工大学 计算机科学与工程学院第21页u 提高可扩充性提高可扩充性。上述的提高可重用性

17、的准则,也能提高程序的可扩充性。此外,下列的面向对象程序设计准则也有助于提高可扩充性:c. 面向对象的程序设计风格面向对象的程序设计风格1.封装实现策略;2.不要用一个方法遍历多条关联链;3.避免使用多分支语句;4.精心确定公有方法;三、三、 面向对象设计面向对象设计OODOOD2021-11-16西安理工大学 计算机科学与工程学院第22页c. 面向对象的程序设计风格面向对象的程序设计风格1.预防用户的操作错误;2.检查参数的合法性;3.不要预先确定限制条件;4.先测试后优化;u 提高健壮性提高健壮性。通常需要在健壮性与效率之间做出适当的折衷。必须认识到,对于任何一个实用软件来说,健壮性都是不

18、可忽略的质量指标。为提高健壮性应该遵守以下几条准则:三、三、 面向对象设计面向对象设计OODOOD2021-11-16西安理工大学 计算机科学与工程学院第23页d. 子系统设计子系统设计u 问题域子系统问题域子系统。系统分解问题域子系统的设计任务主要包括:1.调整需求 ;2.重用设计;3.组合问题域相关的类; 在OOD阶段,建立目标的四个子系统:问题域子系统;人机交互子问题域子系统;人机交互子系统;任务管理子系统;数据管理子系统系统;任务管理子系统;数据管理子系统。三、三、 面向对象设计面向对象设计OODOOD4.增添一般化类以建立协议;5.调整继承层次;6.改进性能;2021-11-16西安

19、理工大学 计算机科学与工程学院第24页d. 子系统设计子系统设计u 人机交互子系统人机交互子系统设计。设计。用户界面的设计主要有以下各方面组成:1.用户分类;2.描述用户;3.设计命令层次。 设计命令层可按以下步骤进行:设计命令层可按以下步骤进行: 在OOD阶段,建立目标的四个子系统:问题域子系统;人机交互子问题域子系统;人机交互子系统;任务管理子系统;数据管理子系统系统;任务管理子系统;数据管理子系统。三、三、 面向对象设计面向对象设计OODOOD1 1 研究现行的人机交互活动的内容和准则;22建立一个初始的命令层;33细化命令层;4详细设计的交互;55设计人-机交互类.2021-11-16

20、西安理工大学 计算机科学与工程学院第25页d. 子系统设计子系统设计u 任务管理子系统设计。任务管理子系统设计。在确定了系统的静态结构及用户界面后,接着就需要进行系统的功能设计,具体包含以下各项内容 :1.识别事件驱动任务;2.识别时钟驱动任务;3.识别优先任务和关键任务; 在OOD阶段,建立目标的四个子系统:问题域子系统;人机交互子问题域子系统;人机交互子系统;任务管理子系统;数据管理子系统系统;任务管理子系统;数据管理子系统。三、三、 面向对象设计面向对象设计OODOOD4.识别协调任务;5.评审各个任务;6.定义各个任务;2021-11-16西安理工大学 计算机科学与工程学院第26页d.

21、 子系统设计子系统设计u 数据管理子系统数据管理子系统设计。设计。 这一步工作包括选择数据库管理系统(DBMS)、对数据库进行概念设计、逻辑设计、物理设计以及数据装载及试运行工作。 这部分内容将在第7章中详述。 在OOD阶段,建立目标的四个子系统:问题域子系统;人机交互子问题域子系统;人机交互子系统;任务管理子系统;数据管理子系统系统;任务管理子系统;数据管理子系统。三、三、 面向对象设计面向对象设计OODOOD2021-11-16西安理工大学 计算机科学与工程学院第27页一、面向对象的概念和原则一、面向对象的概念和原则二、面向对象的分析二、面向对象的分析OOA OOA 三、面向对象设计三、面

22、向对象设计OODOOD四、面向对象的实现四、面向对象的实现五、面向对象的测试五、面向对象的测试六、软件工程高级课题六、软件工程高级课题2021-11-16西安理工大学 计算机科学与工程学院第28页u OOP工作就是用一种面向对象的编程语言(Object-Oriented Language)把OOD模型中的每个成分书写出来,是面向对象的软件开发最终落实的重要阶段。四、四、 面向对象的实现面向对象的实现u 面向对象语言是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。u 面向对象语言的发展有两个方向面向对象语

23、言的发展有两个方向: 1. 纯面向对象语言纯面向对象语言,如Smalltalk、EIFFEL、Java、C#等; 2. 混合型面向对象语言混合型面向对象语言,即在过程式语言及其它语言中加入类、继承等成分,如C+、Objective-C等。2021-11-16西安理工大学 计算机科学与工程学院第29页面向对象语言刻画客观系统较为自然,便于软件扩充与复用。u 有有4个主要特点:个主要特点:四、四、 面向对象的实现面向对象的实现识认性识认性,系统中的基本构件可识认为一组可识别的离散对象;(2)类别性,类别性,系统具有相同数据结构与行为的所有对象可组成一类;(3)多态性,多态性,对象具有惟一的静态类型

24、和多个可能的动态类型;(4)继承性继承性,在基本层次关系的不同类中共享数据和操作。2021-11-16西安理工大学 计算机科学与工程学院第30页一、面向对象的概念和原则一、面向对象的概念和原则二、面向对象的分析二、面向对象的分析OOA OOA 三、面向对象设计三、面向对象设计OODOOD四、面向对象的实现四、面向对象的实现五、面向对象的测试五、面向对象的测试六、软件工程高级课题六、软件工程高级课题2021-11-16西安理工大学 计算机科学与工程学院第31页 面向对象程序的结构已经不再是传统的简单功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已成为不可

25、能。 而且,面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同于以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。 因此,传统的测试模型对面向对象软件已经不再适用。针对面向对象软件的开发特点,应该有一种新的测试模型。五、五、 面向对象的测试面向对象的测试2021-11-16西安理工大学 计算机科学与工程学院第32页 针对面向对象开发模型,结合传统的测试步骤的划分,建立一个整个软件开发过程中不断测试的测试模型,使开发阶段的测试与编码完成后相应的单元测试、集成测试、系统测试成为一个整体。 测试模型如图2.1所示:五、五、 面向对象的测试面向对象的测试a. 面向对象的

26、测试模型(面向对象的测试模型(Object Oriented Test Model)图2.1面向对象的测试模型2021-11-16西安理工大学 计算机科学与工程学院第33页五、五、 面向对象的测试面向对象的测试b. 面向对象的单元测试面向对象的单元测试(OO Unit Test) 传统的单元测试是针对程序的函数、过程或完成某一定功能的程序块。沿用单元测试的概念,实现测试类成员函数。一些传统的测试方法在面向对象的单元测试中都可以使用。如等价类划分法,因果图法,边值分析法,逻辑覆盖法,路径分析法,程序插装法等。单元测试一般建议由程序员完成。 用于单元级测试所进行的测试分析(提出相应的测试要求)和测

27、试用例(选择适当的输入,达到测试要求),规模和难度等均远小于后面将介绍的对整个系统的测试分析和测试用例,而且强调对语句应该有100%的执行代码覆盖率。在设计测试用例选择输入数据时,可以基于以下两个假设: (1) 如果函数(程序)对某一类输入中的一个数据正确执行,对同类中的其他输入也能正确执行。2021-11-16西安理工大学 计算机科学与工程学院第34页五、五、 面向对象的测试面向对象的测试b. 面向对象的单元测试面向对象的单元测试(OO Unit Test) (2)如果函数(程序)对某一复杂度的输入正确执行,对更高复杂度的输入也能正确执行。 在做测试分析和设计测试用例时,应该注意面向对象程序

28、的这个特点,仔细的进行测试分析和设计测试用例,尤其是针对以函数返回值作为条件判断选择,字符串操作等情况。面向对象编程的特性使得对成员函数的测试,又不完全等同于传统的函数或过程测试。尤其是继承特性和多态特性,使子类继承或重载的父类成员函数出现了传统测试中未遇见的问题。Brian Marick 给出了二方面的考虑: (1)继承的成员函数是否都不需要测试? (2)对父类的测试是否能照搬到子类?2021-11-16西安理工大学 计算机科学与工程学院第35页五、五、 面向对象的测试面向对象的测试c. 面向对象的集成测试面向对象的集成测试(OO Integrate Test) 传统的集成测试,是由底向上通

29、过集成完成的功能模块进行测试,一般可以在部分程序编译完成的情况下进行。 而对于面向对象程序,相互调用的功能是散布在程序的不同类中,类通过消息相互作用申请和提供服务。类相互依赖极其紧密,根本无法在编译不完全的程序上对类进行测试。 所以,面向对象的集成测试通常需要在整个程序编译完成后进行。此外,面向对象程序具有动态特性,程序的控制流往往无法确定,因此也只能对整个编译后的程序做基于黑盒子的集成测试。2021-11-16西安理工大学 计算机科学与工程学院第36页五、五、 面向对象的测试面向对象的测试c. 面向对象的集成测试面向对象的集成测试(OO Integrate Test)面向对象的集成测试可以分

30、成两步进行:先进行静态测试,再进行动态测试。 静态测试静态测试 静态测试主要针对程序的结构进行,检测程序结构是否符合设计要求。 动态测试动态测试 动态测试设计测试用例时,通常需要上述的功能调用结构图、类关系图或者实体关系图为参考,确定不需要被重复测试的部分,从而优化测试用例,减少测试工作量,使得进行的测试能够达到一定覆盖标准。2021-11-16西安理工大学 计算机科学与工程学院第37页五、五、 面向对象的测试面向对象的测试d.面向对象的系统测试面向对象的系统测试(OO System Test)u 通过单元测试和集成测试,仅能保证软件开发的功能得以实现。但不能确认在实际运行时,它是否满足用户的

31、需要,是否大量存在实际使用条件下会被诱发产生错误的隐患。为此,对完成开发的软件必须经过规范的系统测试。u 系统测试应该尽量搭建与用户实际使用环境相同的测试平台,应该保证被测系统的完整性,对临时没有的系统设备部件,也应有相应的模拟手段。系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。2021-11-16西安理工大学 计算机科学与工程学院第38页五、五、 面向对象的测试面向对象的测试d.面向对象的系统测试面向对象的系统测试(OO System Test)u 系统测试是对测试步骤的抽象描述。它体现的具体测试内容包括: 功能测试 强度测试 性能测试 安全测试 可用性测

32、试 安装/卸载测试(install/uninstall test)等等.2021-11-16西安理工大学 计算机科学与工程学院第39页一、面向对象的概念和原则一、面向对象的概念和原则二、面向对象的分析二、面向对象的分析OOA OOA 三、面向对象设计三、面向对象设计OODOOD四、面向对象的实现四、面向对象的实现五、面向对象的测试五、面向对象的测试六、软件工程高级课题六、软件工程高级课题2021-11-16西安理工大学 计算机科学与工程学院第40页六、六、 软件工程高级课题软件工程高级课题a.a.统一建模语言统一建模语言(UML)u UML是一种可视化的建模语言,对其各建模元素可进行详细说明,

33、并能生成所建模型的文档。使用UML时,要从不同的角度观察系统,为此定义了一个概念“视图”。视图是对系统模型在某方面的投影,注重于系统的某个方面。每个视图是图的协作,UML定义了9种图和5种视图,各视图在静态和动态方面表示了系统的模型。1.1.类图类图 类图展示了一组类、接口和协作及它们间的关系,在建模中所建立的最常见的图就是类图。用类图说明系统的静态设计视图,包含主动类的类图专注于系统的静态进程视图。2021-11-16西安理工大学 计算机科学与工程学院第42页六、六、 软件工程高级课题软件工程高级课题a.a.统一建模语言统一建模语言(UML)6.协作图协作图展现了一组对象,对象间的连接以及对

34、象间收发消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。7.状态图状态图展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。8 .活动图活动图活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作所需要的步骤)。9.构件图构件图构件图展现了一组构件之间的组织和依赖,用于对原代码、可执行的发布、物理数据库和可调整的系统建模。9.部署图部署图部署图展现了对运行时处理节点以及其中构件的配署。2021-11-16西安理工大学 计算机科学与工程学院第43页六、六、 软件工程高级课题软件工程高级课题a.a.统一建模语言统一建模

35、语言(UML)u 根据以上的分析,用UML对第1章所述的工资系统进行建摸,结果见图2.2-图2.6: 图2.2用例图2021-11-16西安理工大学 计算机科学与工程学院第44页六、六、 软件工程高级课题软件工程高级课题a.a.统一建模语言统一建模语言(UML) 图2.3 类图2021-11-16西安理工大学 计算机科学与工程学院第45页六、六、 软件工程高级课题软件工程高级课题 图2.4 计算工资的时序图2021-11-16西安理工大学 计算机科学与工程学院第46页六、六、 软件工程高级课题软件工程高级课题a.a.统一建模语言统一建模语言(UML) 图2.5 计算工资的活动图2021-11-

36、16西安理工大学 计算机科学与工程学院第47页六、六、 软件工程高级课题软件工程高级课题a.a.统一建模语言统一建模语言(UML) 图2.6 配置图2021-11-16西安理工大学 计算机科学与工程学院第48页六、六、 软件工程高级课题软件工程高级课题b.形式化方法形式化方法u 形式化方法是一种用于规范、设计和验证计算机系统的基于数学的方法。包括各种语言、技术和工具等。形式化方法形式化方法形式规范方法形式验证方法 包括各种基于数学的表示法规范语言以及对应的工具。 形式验证方法包括各种模型检查器、定理证明器以及证明和验证的方法等。2021-11-16西安理工大学 计算机科学与工程学院第49页六、

37、六、 软件工程高级课题软件工程高级课题c.基于构件的开发基于构件的开发1 1、基本概念、基本概念u 基于构件的开发(Component-Based Development,简称CBD)是一种软件开发新范型,是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。u Szyperski把构件定义为“软件构件是一个仅带特定契约接口和显式语境依赖的结构单元”,同时他还写道:“软件构件可以独立部署,易于第三方整合。”2021-11-16西安理工大学 计算机科学与工程学院第50页六、六、 软件工程高级课题软件工程高级课题c.基于构件的开发基于构件的

38、开发1 1、基本概念、基本概念u 由于以分布式对象为基础的构件实现技术日趋成熟,CBD已经成为现今软件复用实践的研究热点,被认为是最具潜力的软件工程发展方向之一。2 2、构件组装模型、构件组装模型u 构件组装模型(如图2.7所示)融合了螺旋模型的许多特征。它本质上是演化的,支持软件开发的迭代方法。但是,构件组装模型是利用预先包装好的软件构件(有时称为“类”)来构造应用程序的。2021-11-16西安理工大学 计算机科学与工程学院第51页六、六、 软件工程高级课题软件工程高级课题c.基于构件的开发基于构件的开发建造及发布用户评估用户通信计划风险分析标识候选构件建造系统的第n次迭代在库中查找构件将新构件放入库中如果存在则提取构件如果不存在则建造构件图2.7 构件组装模型2021-11-16西安理工大学 计算机科学与工程学院第52页六、六、 软件工程高级课题软件工程高级课题c.基于构件的开发基于构件的开发3 3、基于构件的软件开发方法基于构件的软件开发方法u 构件的出现改变了传统的软件开发方法。基于构件的开发任务包括创建、检索和评价、适配(adaptation)、组装、测试和验证、配置和部署(deployment)、维护和演进,以及遗产系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论