面向对象软件开发教程_第1页
面向对象软件开发教程_第2页
面向对象软件开发教程_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、软件是在代码之外发生的一切事情。第11章如何继续学习过程你将从本章学到什么?两千年后( P2K )的软件环境是什么样的?P2K 软件环境中的技术和技能是什么?有关 P2K 技能和技术有哪些概述性的资源?软件专家在面向对象项目中充当什么角色/职位?如何继续面向对象的学习过程?为什么需要阅读本章?你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一

2、些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。11.1P2K 环境在你的整个职业生涯中一直要学习新的技能。软件业在20 世纪 90 年代后半期被Y2K 危机严重影响了, 新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K 危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在Y2K 危机已经过去了,我们正面对着两千年后(P2K)的软件环境,

3、一个使用本书中描述的技术支配的环境。在 P2K 环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增.量方法的新的开发过程,像Java和 CORBA 这样新的技术,以及像用况建模这样新的技术。本书概述了对象开发技术,本节也总结了用于P2K 环境的关键技术和技能。要理解P2K 环境,必需考虑下面几项内容:新的软件策略。使能技术。领先的开发技术。现代软件过程。对象编程语言。如何获得 P2K 技能。定义两千年后( P2K )环境 ( post-2000 environment):机构在 IT 部门内部部署的一系列技术和技能(大部分是基于面向对象和组件技术的)。2000 年( Y2

4、K )危机 (year 2000 crisis):软件组织在 20 世纪 90 年代未期要更新或替代那些使用两位数而不是四位数来存储年份的软件。11.1.1新的软件策略21世纪初期将会由两项关键的软件策略来统治:企业应用集成(EAI )和电子商务。 EAI把全异的软件应用集成为一个整体以支持新的和复杂的业务过程。中间件和组件技术,例如下面这节里描述的CORBA 和兼容 COM+ 的工具也用于支持EAI 。了解 EAI 的一个好去处是,也可以参考 Enterprise Application Integration ( Linthicum ,2000)一书。包装技术是 Building Obje

5、ct Applications That Work ( Ambler ,1998a)一书详细讲述的主题, 对于 EAI 的开发者来说它也是一项重要的技能。电子商务也称为基于 Internet 的商务 ,它关注于使用电子技术支持产品销售和服务。电子商务成功的机构有,戴尔公司() 一个计算机软硬件零售商;亚马逊() 一个销售书、录像带、音乐 CD 的零售商;Ebay 网() 一个在线拍卖网站。电子商务最好的资源是杂志The IndustryStandard(),它以报纸和在线两种形式出版发行。使能技术除了节描述的对象编程语言外, 还有好几个使能技术也是 P2K 环境中占主导地位的技术。这些技术有:

6、CORBACOM+EJB(企业 Java组件模型)XML持久层 /框架.1 CORBA (公共对象请求代理体系结构)。 CORBA是一种由对象管理组(OMG )制定的支持和维护分布式对象的一种标准结构,在20 世纪 80 年代晚期引入。在20 世纪 90 年代早期, CORBA 承诺要成为最好的面向对象开发的标准环境,实际上,业已证明CORBA 是 21 世纪初中间件竞技中的一支重要力量。学习CORBA 的一个好地方是beginners.html 。2 COM+ 。这是微软组件对象模型(COM )的最新体现。 COM 是微软的对象链接和嵌入(OLE )以及 ActiveX 技术的演化, 后来

7、COM 变成分布式COM( DCOM ),现在变成了COM+ 。COM+ 是一项专有方法, 用于微软平台的分布式组件开发。 访问 com可以得到一系列基于 COM 技术的白皮书、演示文稿以及案例学习的链接。3 EJB 。 EJB 是一种组件结构,用于开发和部署基于组件的分布式业务应用。遵照EJB结构编写的应用程序是可升级的、可进行事务处理的并且是多用户安全的。这些应用程序可以编写一次,然后就部署到任意支持EJB 标准的服务器平台上。EJB 让开发人员获得并使用企业类服务来创建关键任务应用。开始学习EJB 最好的地方是在线以及 Mastering Enterprise JavaBeans ( R

8、oman, 1999)一书。4 可扩展标记语言(XML )。进行数据共享的一种工业标准方法,对于EAI 和电子商务来说这是一种重要的使能技术。网站是开始学习XML 最好的地方。5 持久层。 持久层(也称做 持久框架 ),通过映射元数据使得从永久存储(例如关系数据库)中存储、检索和删除对象得以自动化。如果关系数据库用来存储对象,那么映射元数据会把对象的一条属性与存储对象的数据库表列联系起来。持久层向对象隐藏了数据模式,这会大量减少持久对象所需编写的代码数量,从而增强软件的健壮性并增加开发生产力。在 BuildingObject Applications That Work ( Ambler ,1

9、998a)一书中我详细讨论了持久层,这本书是本系列的第二本书。你可能想下载描述持久层设计的白皮书,我已经把它放在网站/persistenceLayer.html 上了。定义中间件 (middleware ):使得软件可以部署到各不相同的硬件系统中,从而互相通信的一种技术。对象管理组 (Object Management Group,OMG ):一个工业认可的标准化实体,负责像统一建模语言( UML )和公共对象请求代理体系结构( CORBA )这样的标准。领先的开发技术作为工作在P2K 环境中的开发人员,你很可能会用到下面大多数或所有的开发技术:基于组件的开发(CBD )。增量开发。迭代开发。

10、面向对象。模式。统一建模语言(UML )。.以应用为中心的设计。用况建模。1 基于组件的开发( CBD )。一种开发方法,其中软件可以作为系列交互组件来部署,每个组件都封装一套预定义的行为。包括面向对象和结构化语言在内的任何一种技术都可能用来实现组件。 常见的组件方法包括 OMG 的 CORBA 组件模型 (CCM ),Sun 公司的 EJB 和微软的 COM+ 。 开 始 学 习 CBD 的 最 好 的 地 方 是 Component Software:Beyond Object-Oriented Programming ( Szyperski,1998)一书和网站。2 增量开发。 一种软件

11、开发方法,它把项目组织成几个小的发布版本,而不是以一次“大爆炸”版本发行。这使你能较早地把软件交付给用户,并通过用户对最初版本的反馈来减小项目风险。增量开发已经在第 10 章中详细讨论过了。3 迭代开发。 这是软件开发中的一种非顺序方法。换句话说,可以做一点儿需求工程,一点建模,一点实现,一点测试,再一点建模,再一点实现,再一点需求工程,等等。使用迭代开发方法,执行活动的顺序并不是一成不变的。通过把技术用到项目当中它们最起作用的地方,迭代开发减少了项目风险和开发时间。迭代开发已经在第10 章中详细讨论过了。4 面向对象。 软件范型基于下面的概念:软件应该从表示状态(数据)和行为(过程)的对象上

12、创建。 面向对象的概念在20 世纪 60 年代后期引入; 在 20 世纪 80 年代,使用 Smalltalk和 C+ 这样的语言后面向对象开始流行;到20 世纪 90 年代, C+ 和 Java 已经变成了事实上的开发标准。对于对象开发人员来说,网上最有价值的资源是Cetus 中对象和组件的链接, 。下一步,我推荐阅读 Applying UML and Patterns ( Larman,1998),它关注于面向对象分析和设计,这些内容分别是本书第6 章和第7 章的内容,如果想要了解得更详细一点,请参考BuildingObject Applications That Work (Ambler

13、 ,1998a)一书,这本书从对象开发人员的角度详细讲述了一系列面向对象的专题。5 模式。 模式是考虑到相关因素的通用问题的解决方案,支持复用经过验证的其他开发人员的技术和方法。模式有许多不同的类型,包括设计模式、分析模式、过程模式、结构模式、组织模式、编程习语甚至还有反模式(经过验证不能起作用的那些方法) 。分析模式在第 6 章中已经讨论过,设计和结构模式在第 7 章中也讨论过,编程习语在第 8 章中讨论过,过程模式在第 10 章中讨论过了。在对象建模世界中, 模式组成了建模人员间通用语言的基础。例如,听到“那是 Singleton”或“这是一种策略实现”这样的话,你要明白他们所说的Sing

14、leton 和“策略”设计模式是很常见的。你可以在网站中找到一系列有用的并与模式相关的资源,包括概述和高级主题。6 统一建模语言(UML )。 UML是一种工业标准建模语言,它定义了面向对象建模的符号和语义。UML Distilled ( Fowler 和 Scott,1997)是一本极好的对UML 技术进行介绍的书,如果对UML有兴趣的话,它也是你在读完本书之后需要阅读的一本书。在BuildingObjectApplications That Work ( Ambler ,1998a)和 Process Patterns( Ambler ,1998b)这两本书里,我概述了这些技术以及它们如何

15、配合使用,这与本书中每一个建模章节(第 3、6、 7 章)中我给出的概述概念上相似。如果需要更详细的信息,请访问。我也维护着一个网页,在它上面有一些重要资源的网络链接。7 以应用为中心的设计。一种流线型的系统化的方法,用于设计真正紧密适应用户需求.的软件,这些软件不仅更有用也更易使用,并且也更简单更容易创建。本质用况和本质用户界面原型(实物模型)在第 3 章中讲述过,它们是以应用为中心的设计技术的一些例子,学习这些技术最好的开始是 Software for Use(Constantine 和 Lockwood ,1999)一书。8 用况建模。 用况建模是一种需求工程技术,在20 世纪 90 年

16、代早期开始在面向对象开发团体内部流行。正如在第三章中所见,用况模型由用况图和一系列用况组成,用以归档系统需求行为。我所读过的关于用况的最好的书籍是Applying Use Cases( Schneider 和 Winters,1998);我强烈推荐阅读本书。现代软件过程P2K 环境的技术和技能很复杂,正如在第10 章中所见,要想有效地使用它们,开发人员就需要能够反映这种复杂性的现代软件过程。这些过程包括:极限编程( XP )。面向对象软件过程(OOSP)。OPEN 过程。统一过程。1 极限编程。 一种周密计划的软件开发方法,强调沟通、简化、反馈和自信。XP 关注于与用户一起工作、简单但一流的开

17、发以及测试等。学习XP ,最好从Extreme ProgrammingExplained(Beck, 2000)一书以及网站开始。2 面向对象软件过程。第 10 章中详细讨论过的OOSP 是一系列过程模式,它们一起描述用于开发、维护和支持软件的完整过程。OOSP 基于下面的概念,大型、关键性任务的软件在整体上是顺序的,局部是迭代的,在Internet 时代要交付增量发布版本。OOSP 是我的 Process Patterns( Ambler,1998b)和More Process Patterns(Ambler ,1999)两本书的主题。我维护着“过程模式资源网页”( Page.html),它

18、对过程模式及其相关资源建立了索引。3 OPEN 过程。 一种复杂而综合的软件过程,由OPEN 协会()支持,用于进行有效的软件开发。如果想了解 OPEN 过程,我建议从 The OPEN Process Specification ( Graham、 Henderson-Sellers 和 Younessi,1997)一书开始。4 统一过程。 统一过程是一种基于迭代和增量软件开发方法的过程。统一过程的增强生命周期在第 10 章中已经详细讲过了,它把统一过程技术扩展成一种完整的软件过程,适用于大型、关键性任务的软件。 要了解更多关于统一过程的内容,从 The Rational Unified P

19、rocess( Krutchten ,1999)一书开始,然后接着看The Unified Software Development Process (Jacobson、Booch 和Rumbaugh,1999)以及我编写的关于增强生命周期的系列书 (Ambler 2000a;Ambler 2000b ;Ambler 2000c)。对象编程语言对象编程语言, 包括面向对象和基于对象的语言, 到目前为止是 P2K 开发当中用得最多的语言。这些语言包括:.C+EiffelJavaObject COBOLObject PascalSmalltalkVisual Basic1 C+ 。一种混合面向对象

20、编程语言,它在C 语言中增加了面向对象的特性。C+ 用于处理密集型软件应用程序,尤其是系统编程和电子商务开发。C+ 是 P2K 开发的一个主要的语言。你可以参阅一系列介绍C+ 的书,它们当中大部分都贴在上面。对于高级C+ ,我建议阅读 Advanced C+ ( Coplien,1992)、Effective C+ (Meyers,1992)及 More Effective C+ (Meyers, 1996)等书,因为它们可以教你如何使用C+ 编写程序。2 Eiffel 。 一种“纯粹的”面向对象编程语言。Eiffel 是一种在小范围内流行语言,它只占很小一部分市场份额, 常被慎重思考软件工程

21、的机构使用。在 eiffel.html 可以找到多种 Eiffel资源。 Eiffel: The Language ( Meyer , 1992 )一书是有关Eiffel 语言定义的书。3 Java 。基于概念“ WORA ”(一次编写,随处运行)的一种面向对象语言。Java软件运行于标准 Java 虚拟机( JVM )上,这使得不同平台上的移植变为可能。因为Java 有着很好的可移植性和多样性 ( Java代码可以部署在浏览器、应用服务器甚至数据库中) ,它很可能会成为P2K 开发的主要语言。 你可以在找到许多有关Java 的资源,这些资源包括介绍性的和高级话题。一个很好的在线教程也贴在 t

22、utorial/index.html 上,我强烈推荐 TheElements of Java Style( Vermeulen 等, 2000)一书,这本书也是本系列丛书中的第五本。4 Object COBOL 。一种混合面向对象编程语言, 用面向对象的概念扩展了COBOL 。ObjectCOBOL 在 20 世纪 90 年代一直都不是很稳定,因为COBOL 团体过分关注于Y2K 危机,而没有关注于先进的技术发展。Object COBOL 可能会在供应商引入新的P2K 开发工具后重新流行起来。时间会告诉我们一切的。你可以在上找到Object COBOL 资源的分类。尤其在你还不是一个有经验的C

23、OBOL 开发人员时, 我觉得 Object-Oriented COBOL ( Arranga 和 Coyle ,1996)和 Standard Object-Oriented COBOL ( Chapin,1997)这两本书会是开始学习COBOL 的好地方。(我在 20 世纪 80 年代后期用 COBOL 语言写程序。嘘千万不要告诉其他人哟! )5 Object Pascal 。一种混合面向对象编程语言,用面向对象的概念扩展了Pascal。虽然Object Pascal 用得稍微多一点儿,在两千年后发展也可能会继续走好,但它仍是一种小范围使用的语言,不可能在 P2K 语言市场中成为一个强劲的

24、对手。Object Pascal 的资源可以在找到。6 Smalltalk 。一种纯粹的面向对象编程语言。Smalltalk 在 20 世纪 70 年代由 Xerox Parc( Xerox 公司的一个研发部门)开发,在20 世纪 80 年代后期开始流行, 20世纪 90年代开始用于商业软件的开发。 Smalltalk 由于 C+ 和 Java 而黯然失色,由于市场而不是技术的关系,在 20 世纪 90 年代后期直到现在也只是一种小范围语言。Smalltalk 会不会东山再起,这一点是值得怀疑的。 你可以在上找到许多与Smalltalk相关的资源。 在 20 世纪 90年代中期和早期,我也是一

25、名Smalltalk 开发人员, 我觉得 Discovering Smalltalk ( Lalonde ,1994)和 Smalltalk.Best Practice Patterns ( Beck , 1997)两书也是很不错的选择。7 VisualBasic 。 由微软公司开发的一种面向对象编程语言,它使用好几个面向对象的概念扩展了Basic 语言。 VisualBasic 是微软应用程序开发环境的主力军,有些版本可以作为宏语言用于一系列微软自己的产品当中。Visual Basic 是 P2K 环境中一门重要的语言,至少对于编写微软平台的应用程序来说确是如此。开始学习Visual Bas

26、ic 最好的地方在微软的“ VisualBasic Start Page”网页上:。如果你是一名 VB 开发人员的话,那么你会发现在那之后 Developing Applications with Visual Basic and UML ( Reed,1999 )一书也很不错。定义Java 虚拟机 (Java Virtual Machine,JVM):支持一套已定义指令的抽象计算机器。 JVM 使得 Java 可以移植; Java 代码被编译成可以在拥有 JVM 的任意平台上运行的标准字节码。对象编程语言 (object programming language ):面向对象或基于对象的任意

27、一种编程语言。基于对象的编程语言 ( object-based programming language):本质上支持一些但并不支持全部面向对象语言特性的任意一种编程语言。例如: Visual Basic。面向对象的编程语言(object-oriented programming language ):本质上支持继承、类、对象、多态和消息传递等面向对象概念的任意一种编程语言。例如:Java 和 C+ 。编写一次,随处运行 (Write Once,Run Anywhere,WORA):关于 Java语言的一种市场推销方式,指出 Java语言跨平台的本质。开发语言要进行基于Web 和电子商务开发,

28、你很可能会用到下面的语言:HTMLPerlCGI 脚本1 HTML (超文本标记语言) 。 一种独立于平台的、有着工业标准定义的文件格式,用于共享信息, HTML 页是 WWW 网事实上的标准用户接口方法。NCSA 有一个极好的HTML 初学者指南贴在网上,它的网址是。2 Perl (practical extraction and report language,实用信息提取与报告语言) 。Perl 是一种脚本语言, 最初开发目的是用于 UNIX 系统管理任务的自动化, 现在一般用于基于Web 的软件开发。 Perl 包含报表创建设施、编辑和数据操作功能、图形用户界面(GUI )功能、语言功

29、能以及调用其他程序的能力。网页是关于Perl 编程语言的一个在线教程,它是开始学习Perl 的一个极好的地方。3 CGI (公共网关接口) 。 CGI 是一种用于在 Web 表单与程序之间通信的一种简单的协议。网页提供了关于 CGI 的一个特别好的综述以及使用CGI 的方法。.定义图形用户界面 (Graphical User Interface ,GUI ):由图形组件组成的一种用户界面风格,例如窗口和按钮。11.2适于特定职位的技能在第10 章中看到,软件过程复杂性给开发人员提供了一系列的机会。在本节中,我讨论了某天你可能会充当的角色以及为了成为这种角色所需要必备的技能。这些角色如下所示:业

30、务分析员( Business analyst)IT 高级经理( IT senior manager)对象建模员( Object modeler)持久管理员( Persistence administrator)持久建模员( Persistence modeler)程序员( Programmer)项目经理( Project manager)质保工程师( Quality assurance engineer)软件架构师( Software architect)测试工程师( Test engineer)业务分析员业务分析员需要需求收集和确认技能,也需要面向对象分析的技能。一名业务分析员要与系统的未来

31、用户一起工作,确定他们的基本业务问题,系统需求,他们可能会怎样使用系统,他们可能需要系统随着时间如何进行演化等。第3章、第 4章和第 6章(分别讨论了需求收集、需求确认和面向对象分析),描述了业务分析员每天要用到的技术。IT 高级经理IT (信息技术)高级经理监督机构内部的工作。他们需要对机构内部使用的技术有一个基本的了解,尤其要对技术蕴含的业务要有所了解,他们必须牢固地掌握机构内部选用的软件过程。 IT 高级经理必须在可交付品、过程、所需资源、 新旧做法之间的区别以及转变到P2K 软件开发环境时遇到的风险等方面得到训练。首先,许多 IT 高级经理实行迭代开发时都遇到了困难,因为大部分开发制品

32、,例如需求模型和软件设计等,是整个项目过程演化出来的,而不是以顺序方式在定义里程碑处交付的。IT 高级经理需要训练P2K 软件环境中的基本技术和技能,这在11.1 节中已经讲述过。 理解电子商务对于IT 高级经理来说也很关键,因为它很可能就是机构内.部关键业务的驱动器。对象建模员对象建模员需要大量建模技能,包括UML 和以应用为中心的设计技术以及底层的实现技术。对象建模员负责面向对象软件的分析和设计;这样,他们必须具备熟练的、本书中介绍过的一系列建模技能。过去,看到软件专家专注于某种建模,例如数据建模或过程建模等,这是很常见的现象,但经验表明这种策略不再有效,甚至会产生功能紊乱。统一建模语言定

33、义了许多种模型,因为没有哪个模型单独一个就足够完成所有的需求。只关注于一种类型的模型而不管其他模型,会忽略掉许多关键的建模问题,做出来的软件运行起来也很差或者难以维护。对象建模员必须理解一系列建模技能以及如何综合使用它们。除此之外,他们也需要学会如何有效地应用设计模式、分析模式、结构模式。建模人员必须学会像 CORBA 、EJB 和 /或微软的 COM+ 这样的分布式开发技术。建模人员也需要了解以应用为中心的设计技能或至少初步掌握用户界面设计技能。持久建模员持久建模员,在结构化世界里通常称为数据建模人员 ( data modeler),负责物理持久模型的开发和维护。对于新的应用,如在第7 章中

34、见到的那样,持久建模员需要基于面向对象模型为软件开发物理持久模型。 对于与遗留数据模式相关的开发来说, 大多数软件项目的准则都是,开发数据模式的模型可能会需要持久建模员(如果他们还没有存在)帮助在对象中做好所需的数据存储映射。持久建模员需要理解UML面向对象模型,如何开发基于面向对象模型的持久模型,如何把对象映射到关系数据库,以及了解用于持久对象的永久存储机制的细微差别。如何把对象映射到关系数据库上在本系列丛书第二本书Building Object Applications ThatWork(Ambler , 1998a)中有描述。持久管理员持久管理员,在结构化世界中也称做 数据库管理员 (D

35、BA ),负责管理支持永久存储机制,因此他们就需要这些产品中的专业知识。持久管理员这个角色的功能,经常扩展到包含由持久层使用的对象 - 关系映射的管理。 由于对象世界中持久建模员责任在逐步减少, 持久管理员与持久建模员的角色之间的界限,常常比较模糊。程序员软件程序员的工作是实现及启动测试基于系统模型的源代码。程序员多多少少会要紧密地与建模人员和测试工程师一起工作,这意味着他们至少需要理解面向对象和基于组件建模和测试的基本知识。除此之外,程序员需要在所使用的设计模式、编程习惯用语、编程语言、软件工程基础(例如耦合和内聚这样的概念)等方面接受培训和教育。.项目经理项目经理需要对大量技能拥有相关知识

36、。项目经理负责软件项目的机构和管理。他们在工作中面对着复杂的环境:迭代和增量开发技术应用中出现了许多复杂现象。除此之外,更糟糕的是,由于缺乏熟练的软件专家,项目经理发现,组建小组以及人员管理的技能(而不仅仅是进度与估测技能 这些是大多数软件项目管理书籍中的焦点)对于项目的成功来说变得越来越重要了。项目经理需要广泛了解一系列技能,尤其是软件过程中以及人员管理方面的技能。学习项目管理要阅读的一本比较好的书是 Software Project Management ( Royce, 1998)。定义永久存储 ( permanent storage):一种物理介质,其中的数据可以被保存、检索并删除。对

37、象永久存储机制有可能包括关系数据库、文件和对象数据库。物理存储模型 (physical persistence model):一种模型,也称做 物理数据模型( physical data model),描述你在永久存储机制中要实现的物理数据模式。质保工程师质保工程师需要有开放的思想,以有效遵循迭代和增量开发实践。质保工程师负责保证开发人员根据机构内部公认的标准和过程创建软件。质保工程师要在他们评审的交付品使用的技术方面以及通用软件过程方面接受培训。 通用模式的培训也很重要,这样质保工程师就可以检测出模型或文档是否与公认的开发方法相符。软件架构师存在两种类型的软件架构师:项目软件架构师和企业软件

38、架构师。项目软件架构师关注于基于初始需求的系统软件体系结构的确认和验证,以及机构内部业已存在的企业结构。企业软件体系结构关注机构的软件体系结构,它考虑诸如下面的这类问题:企业应用集成(EAI )、可复用框架以及通用软件基础结构。软件架构师需要在下列方面接受培训和教育:P2K 环境中的技术和技能, 人员的技能 (他们将会支持项目小组及影响高级业务管理),机构的业务基础。要接受与模式(明显的是结构模式)相关的培训,设计、分析、过程模式方面的培训也很重要。你会遇到的一本好书是Software Architecture in Practice (Bass、Clements 和 Kazman,1998)

39、。测试工程师测试工程师需要传统的和面向对象的测试技能,并要具备编写代码使用的开发语言的技能。.测试工程师检验软件是否按照需求来构建。测试工程师需要学习大量测试技术,例如第9章给出的全生命周期面向对象测试(FLOOT )方法学等。由于软件变得越来越复杂,机构内部用来验证软件的测试工具和技术变得也越来越复杂。测试工程师需要接受面向对象测试和传统测试技术的培训。他们也需要进行相关编程语言的培训,以使他们可以开发测试套件(并可以看出开发人员的错误,他们常常宣称可以对对象和组件少做一些测试)。需要阅读的一本书是 Testing Object-Oriented Systems( Binder , 1999

40、),从这本书中你可以得到关于对象测试技术基础的详细介绍。定义设计模式 ( design pattern):描述通用设计问题解决方案的一种模式。习语(idiom ):习语描述如何实现模式中某个部件、该部件的功能或在设计中与其他部件的关系。习语常常特定于某种编程语言。模式(pattern):模式是考虑到相关因素时通用问题的解决方案,它可以有效支持复用其他开发者已经过验证的技术及方法。11.3继续整个学习过程在软件工业中,准则之一就是软件专家要在工作中学习,这对于你来说也是一种很重要的暗示。尽管一些软件专家足够幸运,可以在愿意为人员培训和教育投资的机构工作,但许多人却没有这样的机会。在本节中,我讨论

41、了可用来继续学习过程的一系列技术方法:参加介绍性培训。获得第一手经验。获得指导。阅读、阅读、再阅读。参加高级培训。定义软件体系结构 (software architecture):包括关于软件系统组织、选择系统结构化元素及其接口的一套重要决策; 以及这些元素的结构和行为的定义,元素间关联和交互的定义;元素组合进日益增大的子系统内;引导软件架构师形成结构风格的定义。参加介绍性培训如果可能的话, 应该参加一些面向对象技术介绍性质的培训课程。表 11-1 指定了几门课程及它们的描述,以及按照你考虑参加的顺序进行排列的平均时间长度(假定按一天八小时计算)。考虑到你在机构内部充当的角色,你也可以选择不参

42、加其中的某些课程(例如,业务分析员可.以不参加程序课程) 。表 11-1我推荐的简介性面向对象培训课程课程描述时间介绍面向对象的概念概述第 5 章中讨论的概念以及本书中给出的技术12 天介绍 ABC 过程概述先进的软件过程(也就是OOSP、统一过程或 XP)的基础知识1 天介绍面向对象需求和分析应用像用况、建模、用户界面原型、顺序图和类图(在第3章、第 435 天章、第 6 章中给出)这样技术的面对面培训课程介绍面向对象设计应用第 7 章中讲述的像类建模、 状态图建模、协作图建模及持久性建35 天模这样技术的面对面培训课程介绍 XYZ 语言覆盖与你的环境相适应的编程语言(即,Java 或 C+

43、)基本知识的510 天面对面培训课程介绍面向对象测试描述面向对象测试基本知识的面对面培训课程25 天获得第一手经验应用在课堂和书中学到的技能。你可以读想读的或者应该读的东西,参加大量培训课程,但只有在尝试它们时你才会真正学到一些东西。如果现在你并没有在使用面向对象技术的项目中工作,那么要么你要转到机构内部别的项目中去, 或者找到另一个公司的工作, 要么干脆呆在自己家里用对象技术工作。获得指导对象导师是对面向对象很有经验的一部分人,他们可以在学习过程中指导新手,给新手们展示如何使用对象技术和技能。最好的导师有着好多年使用对象技术与技能工作的经验,以及指导经验和良好的沟通技巧。如果你的机构并没有正

44、式的指导过程,实际上很少有机构是这样做的,那么考虑一下自己找个专家,与他们一起紧密工作或寻求他们帮助,学习你所需要的新技能。多数人会很高兴你问他们问题,帮助他人会让他们更加高兴。定义教育(education):教授一般适用于整个学生生涯的技能和知识。指导(mentoring):让有经验的专家直接传授其专业知识给新手的过程。培训( training ):给人们(这些人一般都会马上适应充当学生)教授特定的、相对集中的一些技能。提示:理解供应商与客户的工作我的经验是你应该对人们 (向你提供输入的和你提供输入的)的工作有一个基本认识。因此,面向对象的设计人员应该理解面向对象分析和面向对象设计的基本知识。提示:参加培训前先阅读你是否曾经注意过,参加

温馨提示

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

评论

0/150

提交评论