第2章 软件工程方法学_第1页
第2章 软件工程方法学_第2页
第2章 软件工程方法学_第3页
第2章 软件工程方法学_第4页
第2章 软件工程方法学_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章 软件工程方法学 概念概念软件工程包含软件工程包含技术技术和和管理管理两方面的内容,是技术两方面的内容,是技术和管理紧密结合所形成的工程学科。和管理紧密结合所形成的工程学科。通常将软件开发全过程中使用的一整套技术方法通常将软件开发全过程中使用的一整套技术方法的集合称为的集合称为方法学方法学(methedology)(methedology),也称为,也称为范型范型(paradigm)(paradigm)。目前使用最广泛的软件工程方法学:目前使用最广泛的软件工程方法学:传统方法传统方法(结构化方法)(结构化方法),面向对象方法面向对象方法。第2章 软件工程方法学 三要素:三要素:软件工程软

2、件工程方法方法为软件开发提供了为软件开发提供了 “如何做如何做” 的的技术技术; ;软件软件工具工具为软件工程方法提供了自动的或半自动为软件工程方法提供了自动的或半自动的软件支撑环境的软件支撑环境; ;过程过程是为了获得高质量的软件所需要完成的一系是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。列任务框架,它规定了完成各项任务的工作步骤。2.1 软件工程方法 结构化方法结构化方法 也称为生命周期方法学或结构化范型。将软件生也称为生命周期方法学或结构化范型。将软件生命周期的全过程依次划分为若干个阶段,采用结命周期的全过程依次划分为若干个阶段,采用结构化技术来完成

3、每个阶段的任务。构化技术来完成每个阶段的任务。特点:特点:(1) (1) 强调自顶向下顺序地完成软件开发的各阶段强调自顶向下顺序地完成软件开发的各阶段任务任务; ; (2) (2) 结构化方法要么面向行为,要么面向数据,结构化方法要么面向行为,要么面向数据,缺乏使两者有机结合的机制。缺乏使两者有机结合的机制。2.1软件工程方法l面向对象方法面向对象方法是一种把面向是一种把面向“对象对象”的思想应用于软件开发过程中,指的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在导开发活动的系统方法,是建立在“对象对象”概念基础上的概念基础上的方法学。方法学。该方法主张从客观世界固有的事物出发来构

4、造系统,提倡该方法主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识、理解和描述用人类在现实生活中常用的思维方法来认识、理解和描述客观事物。而现实世界恰好就是由各种对象组成的,如建客观事物。而现实世界恰好就是由各种对象组成的,如建筑物、人、汽车、动物、植物等。因此通过构建系统中对筑物、人、汽车、动物、植物等。因此通过构建系统中对象与对象之间的关系能够如实地反映问题域中固有事物及象与对象之间的关系能够如实地反映问题域中固有事物及其关系。其关系。2.1 软件工程方法l面向对象方法面向对象方法CoadCoad和和YourdonYourdon给出了给出了“面向对象面向对

5、象”的一个的一个定义:定义: 面向对象对象类继承消息通信面向对象对象类继承消息通信如果一个系统是使用这样如果一个系统是使用这样4 4个概念设计和实个概念设计和实现的,则可认为这个系统是面向对象的。现的,则可认为这个系统是面向对象的。2.1 软件工程方法l面向对象方法面向对象方法对象对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象

6、由数据有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。体。对象具有自身的属性和行为,有些不同的对象会呈现相同或相似的属性和行对象具有自身的属性和行为,有些不同的对象会呈现相同或相似的属性和行为,如轿车、卡车、面包车。通常将属性及行为相同或相似的对象归为一类。为,如轿车、卡车、面包车。通常将属性及行为相同或相似的对象归为一类。类类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为。可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为

7、。 继承继承中子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。中子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继职其它类的全部描述,同时可修改和扩充。一个类直接继职其它类的全部描述,同时可修改和扩充。 消息消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。某个操作的规格说明。发送给一个对象的消息定义了一个方法名和一个参数发送给一个对象的消息定义了一个方法名和一个参数表(可能是空的),并指定某一个对象。一个对象接收到消息,则调用消息表(可能是空的),并指定某一个对

8、象。一个对象接收到消息,则调用消息中指定的方法,并将形式参数与参数表中相应的值结合起来。中指定的方法,并将形式参数与参数表中相应的值结合起来。2.1 软件工程方法l区别区别 过程式程设范型是流行最广泛的程序设计范型,这一程设过程式程设范型是流行最广泛的程序设计范型,这一程设范型的中心点是设计过程,所以程序设计时首先要决定的范型的中心点是设计过程,所以程序设计时首先要决定的是问题解所需要的过程,然后设计过程的算法。这类范型是问题解所需要的过程,然后设计过程的算法。这类范型的语言必须提供设施给过程(函数)传送变元和返回的值的语言必须提供设施给过程(函数)传送变元和返回的值,如何区分不同种类的过程(

9、函数)、如何传送变元是这,如何区分不同种类的过程(函数)、如何传送变元是这类程序设计中关心的主要问题。类程序设计中关心的主要问题。 面向对象方法的关键在于加入了类及其继承性,用类表示面向对象方法的关键在于加入了类及其继承性,用类表示通用特性,子类继承父类的特性,并可加入新的特性。对通用特性,子类继承父类的特性,并可加入新的特性。对象以类为样板被创建。所以在面向对象方法中,首要的任象以类为样板被创建。所以在面向对象方法中,首要的任务是决定所需要的类,每个类应设置足够的操作,并利用务是决定所需要的类,每个类应设置足够的操作,并利用继承机制里二地共享共同的特性。继承机制里二地共享共同的特性。 对于大

10、型、复杂及交互性比较强的系统,使用面向对象方对于大型、复杂及交互性比较强的系统,使用面向对象方法更有优势。法更有优势。 2.1 软件工程方法l形式化方法形式化方法形式化方法是一种基于形式化数学变换的软件开形式化方法是一种基于形式化数学变换的软件开发方法,它可将系统的规格说明转换为可执行的发方法,它可将系统的规格说明转换为可执行的程序。程序。该过程的具体描述如图所示。该过程的具体描述如图所示。 2.1 软件工程方法l形式化方法的主要特点形式化方法的主要特点(1) (1) 软件需求规格说明被细化为用数学记号表达的详细的形软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;式化规格说明;(

11、2) (2) 设计、实现和单元测试等开发过程由一个变换开发过程设计、实现和单元测试等开发过程由一个变换开发过程代替。通过一系列变换将形式的规格说明细化成为程序。代替。通过一系列变换将形式的规格说明细化成为程序。这种细化的过程如图所示。这种细化的过程如图所示。2.2 软件工具的概念 软件工具是指能支持软件生存周期中某一阶段(软件工具是指能支持软件生存周期中某一阶段(如系统定义、需求分析、设计、编码、测试或维如系统定义、需求分析、设计、编码、测试或维护等)的需要而使用的软件工具。护等)的需要而使用的软件工具。 早期的软件工具主要用来辅助程序员编程,如编早期的软件工具主要用来辅助程序员编程,如编辑程

12、序、编译程序、排错程序等。在提出了软件辑程序、编译程序、排错程序等。在提出了软件工程的概念以后,出现了一批软件工具来辅助软工程的概念以后,出现了一批软件工具来辅助软件工程实施,这些软件工具涉及到软件开发、维件工程实施,这些软件工具涉及到软件开发、维护、管理过程中的各项活动,并辅助这些活动高护、管理过程中的各项活动,并辅助这些活动高质量地进行。质量地进行。 软件工具通常也称为软件工具通常也称为CASE(CASE(计算机辅助软件工程,计算机辅助软件工程,computer aided software engineering)computer aided software engineering)工

13、具。工具。2.2 软件工具的分类软件工具的种类繁多,很难有一种统一的分类方法,通软件工具的种类繁多,很难有一种统一的分类方法,通常从不同的观点来进行分类。常从不同的观点来进行分类。由于大多数软件工具仅支持软件生存周期过程中的某些由于大多数软件工具仅支持软件生存周期过程中的某些特定的活动,所以通常可以按软件过程的活动来进行分特定的活动,所以通常可以按软件过程的活动来进行分类。如:类。如:支持软件开发过程的工具:主要有需求分析工具、设计支持软件开发过程的工具:主要有需求分析工具、设计工具工具( (通常还可以分为概要设计工具和详细设计工具通常还可以分为概要设计工具和详细设计工具) )、编码工具、排错

14、工具、测试工具等。编码工具、排错工具、测试工具等。(2) (2) 支持软件维护过程的工具:主要有版本控制工具、文档支持软件维护过程的工具:主要有版本控制工具、文档分析工具、信息库开发工具、逆向工程工具、再工程工分析工具、信息库开发工具、逆向工程工具、再工程工具等。具等。(3) (3) 支持软件管理过程和支持过程的工具:主要有项目管理支持软件管理过程和支持过程的工具:主要有项目管理工具、配置管理工具、软件评价工具等。工具、配置管理工具、软件评价工具等。2.2 常用软件工具介绍(需求分析) 有代表性的商品化工具有:有代表性的商品化工具有:Rational RoseRational Rose,由,由

15、Rational CorporationRational Corporation开发。开发。PowerDesignerPowerDesigner,由,由SybaseSybase开发。开发。VisioVisio,由,由MicrosoftMicrosoft开发。开发。ArgoUMLArgoUML,开源工具。,开源工具。Control CenterControl Center,由,由TogetherSoftTogetherSoft开发。开发。Enterprise ArchitectEnterprise Architect,由,由Sparx SystemsSparx Systems开发。开发。Obje

16、ct Technology WorkbenchObject Technology Workbench(OTWOTW),由),由OTW SoftwareOTW Software开发。开发。System ArchitectSystem Architect,由,由Popkin SoftwarePopkin Software开发。开发。UML StudioUML Studio,由,由Pragsoft CorporationPragsoft Corporation开发。开发。Visual UMLVisual UML,由,由Visual Object ModelersVisual Object Model

17、ers开发。开发。2.2 常用软件工具介绍(设计) 有代表性的商品化工具有:有代表性的商品化工具有:Rational RoseRational Rose:由:由RationalRational开发,是基于开发,是基于UMLUML的的设计工具,它支持体系结构设计中的所有方面。设计工具,它支持体系结构设计中的所有方面。AdalonAdalon:由:由SynthisSynthis公司开发,是用于设计和构建公司开发,是用于设计和构建专门基于专门基于WebWeb构件体系结构的特定设计工具。构件体系结构的特定设计工具。ObjectifObjectif:由:由microTOOL GmbHmicroTOOL

18、GmbH开发,是一个基于开发,是一个基于UMLUML的设计工具,它可以导致服从基于构件的软件的设计工具,它可以导致服从基于构件的软件工程的各种体系结构(如,工程的各种体系结构(如,ColdfusionColdfusion、J2EEJ2EE和和FuseboxFusebox等)。等)。2.2 常用软件工具介绍(组装测试) 有代表性的组装测试工具有:有代表性的组装测试工具有:WinRunnerWinRunner,由,由MercuryMercury InteractiveInteractive公司开发,是一种企公司开发,是一种企业级的功能测试工具,用于检测应用程序是否能够达到预业级的功能测试工具,用于

19、检测应用程序是否能够达到预期的功能及正常运行。期的功能及正常运行。IBMIBM RationalRational RobotRobot 是业界最顶尖的功能测试工具。是业界最顶尖的功能测试工具。BorlandBorland SilkTestSilkTest 20062006属于软件功能测试工具,是属于软件功能测试工具,是BorlandBorland公司所提出软件质量管理解决方案的套件之一。公司所提出软件质量管理解决方案的套件之一。TestDirectorTestDirector 是业界第一个基于是业界第一个基于WebWeb的测试管理系统,它的测试管理系统,它可以在公司内部或外部进行全球范围内测试

20、的管理。可以在公司内部或外部进行全球范围内测试的管理。 2.2 常用软件工具介绍(系统测试) 有代表性的系统测试工具有:有代表性的系统测试工具有:LoadRunnerLoadRunner 是一种预测系统行为和性能的负载测试工具是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,方式来确认和查找问题,LoadRunnerLoadRunner 能够对整个企业架能够对整个企业架构进行测试。构进行测试。OTFOTF(Object Testing FrameworkObject Testing Framework),由),由MCGMCG软件公司开发软件公司开发,为,为SmalltalkSmalltalk对象的测试提供管理框架。对象的测试提供管理框架。QADirectorQADirector,由,由Compuware Corp.Compuware Corp.,为管理测试过程的各,为管理测试过程的各个阶段提供简单的控制。个阶段提供简单的控制。TestWorksTestWorks,由,由

温馨提示

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

评论

0/150

提交评论