文档视界 最新最全的文档下载
当前位置:文档视界 › 面向对象软件开发教程

面向对象软件开发教程

面向对象软件开发教程
面向对象软件开发教程

软件是在代码之外发生的一切事情。

如何继续学习过程

你将从本章学到什么?

两千年后(P2K)的软件环境是什么样的?

P2K软件环境中的技术和技能是什么?有关P2K技能和技术有哪些概述性的资源?软件专家在面向对象项目中充当什么角色/职位?

如何继续面向对象的学习过程?

为什么需要阅读本章?

你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。

至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。

11.1 P2K 环境

在你的整个职业生涯中一直要学习新的技能。

软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在

Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。

在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增

量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本

书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境,

必需考虑下面几项内容:

新的软件策略。

使能技术。领先的开发技术。

现代软件过程。

对象编程语言。

如何获得P2K技能。

11.1.1 新的软件策略

21世纪初期将会由两项关键的软件策略来统治:企业应用集成(EAI )和电子商务。EAI 把全异的软件应用集成为一个整体以支持新的和复杂的业务过程。中间件和组件技术,例如下面这节里描述的CORBA和兼容COM+的工具也用于支持EAI。了解EAI的一个好去处是,也可以参考《Enterprise Application Integration ? (Linthicum,2000)一书。包装技术是《Building Object Applications That Work ? (Ambler ,

1998a)一书详细讲述的主题,对于EAI的开发者来说它也是一项重要的技能。

电子商务也称为基于In ternet的商务,它关注于使用电子技术支持产品销售和服务。电子商务成功的机构有,戴尔公司()一一个计算机软硬件零售商;亚马逊()一一个销售书、

录像带、音乐CD的零售商;Ebay网()一一个在线拍卖网站。电子商务最好的资源是杂志《The Industry Standar? (),它以报纸和在线两种形式出版发行。

11.1.2 使能技术

除了11.1.5节描述的对象编程语言外,还有好几个使能技术也是P2K环境中占主导地位的

技术。这些技术有:

CORBA

COM+

EJB (企业Java组件模型)

XML

持久层/框架

1. CORBA (公共对象请求代理体系结构)。CORBA是一种由对象管理组(OMG )制定的支持和维护分布式对象的一种标准结构,在20世纪80年代晚期引入。在20世纪90年代早

期,CORBA承诺要成为最好的面向对象开发的标准环境,实际上,业已证明CORBA是21世

纪初中间件竞技中的一支重要力量。学习CORBA的一个好地方是beginners.html。

2 . COM+。这是微软组件对象模型(COM )的最新体现。COM是微软的对象链接和嵌入(OLE)以及ActiveX技术的演化,后来COM变成分布式COM (DCOM ),现在变成了COM+。

COM+是一项专有方法,用于微软平台的分布式组件开发。访问com可以得到一系列基于COM 技术的白皮书、演示文稿以及案例学习的链接。

3 . EJB。EJB是一种组件结构,用于开发和部署基于组件的分布式业务应用。遵照EJB

结构编写的应用程序是可升级的、可进行事务处理的并且是多用户安全的。这些应用程序可以

编写一次,然后就部署到任意支持EJB标准的服务器平台上。EJB让开发人员获得并使用企业

类服务来创建关键任务应用。开始学习EJB最好的地方是在线https://www.docsj.com/doc/15439339.html,/products/ejb以及《Mastering Enterprise JavaBeans ? (Roman, 1999)一书。

4 ?可扩展标记语言(XML )。进行数据共享的一种工业标准方法,对于EAI和电子商务来

说这是一种重要的使能技术。网站是开始学习XML最好的地方。

5?持久层。持久层(也称做持久框架),通过映射元数据使得从永久存储(例如关系数据库)中存储、检索和删除对象得以自动化。如果关系数据库用来存储对象,那么映射元数据会把对象的一条属性与存储对象的数据库表列联系起来。持久层向对象隐藏了数据模式,这会大量减少持久对象所需编写的代码数量,从而增强软件的健壮性并增加开发生产力。在《Building

Object Applications That Work》(Ambler , 1998a)—书中我详细讨论了持久层,这本书是本系列的第二本书。你可能想下载描述持久层设计的白皮书,我已经把它放在网站/persiste nceLayer.html 上了。

11.1.3 领先的开发技术

作为工作在P2K环境中的开发人员,你很可能会用到下面大多数或所有的开发技术:

基于组件的开发(CBD )。

增量开发。

迭代开发。

面向对象。

模式。

统一建模语言(UML )。

以应用为中心的设计。

用况建模。

1 ?基于组件的开发(CBD )。一种开发方法,其中软件可以作为系列交互组件来部署,每个组件都封装一套预定义的行为。包括面向对象和结构化语言在内的任何一种技术都可能用来

实现组件。常见的组件方法包括OMG的CORBA组件模型(CCM),Sun公司的EJB和微软的COM+ 。开始学习CBD 的最好的地方是《Component Software:Beyond Object-Oriented Programming》(Szyperski,1998)—书和网站。

2 ?增量开发。一种软件开发方法,它把项目组织成几个小的发布版本,而不是以一次“大

爆炸”版本发行。这使你能较早地把软件交付给用户,并通过用户对最初版本的反馈来减小项

目风险。增量开发已经在第10章中详细讨论过了。

3 ?迭代开发。这是软件开发中的一种非顺序方法。换句话说,可以做一点儿需求工程,

一点建模,一点实现,一点测试,再一点建模,再一点实现,再一点需求工程,等等。使用迭代开发方法,执行活动的顺序并不是一成不变的。通过把技术用到项目当中它们最起作用的地方,迭代开发减少了项目风险和开发时间。迭代开发已经在第10章中详细讨论过了。

4 .面向对象。软件范型基于下面的概念:软件应该从表示状态(数据)和行为(过程)

的对象上创建。面向对象的概念在20世纪60年代后期引入;在20世纪80年代,使用Smalltalk 和C++这样

的语言后面向对象开始流行;到20世纪90年代,C++和Java已经变成了事实上的开发标准。对于对象开发

人员来说,网上最有价值的资源是Cetus中对象和组件的链接,。下一

步,我推荐阅读《Applying UML and Patterns》(Larman, 1998),它关注于面向对象分析和设计, 这些内容

分别是本书第6章和第7章的内容,如果想要了解得更详细一点,请参考《Building

Object Applications That Work》(Ambler , 1998a)一书,这本书从对象开发人员的角度详细讲述了一系列面向对象的专题。

5 ?模式。模式是考虑到相关因素的通用问题的解决方案,支持复用经过验证的其他开发人员的技术和方法。模式有许多不同的类型,包括设计模式、分析模式、过程模式、结构模式、组织模

式、编程习语甚至还有反模式(经过验证不能起作用的那些方法)。分析模式在第6章中已经讨论

过,设计和结构模式在第7章中也讨论过,编程习语在第8章中讨论过,过程模式在第10章中讨论过了。在对

象建模世界中,模式组成了建模人员间通用语言的基础。例如,听到“那是Singleton”

或“这是一种策略实现”这样的话,你要明白他们所说的Singleton和“策略”设计模式是很常见

的。你可以在网站中找到一系列有用的并与模式相关的资源,包括概述和高级主题。

6 .统一建模语言(UML )。UML是一种工业标准建模语言,它定义了面向对象建模的符

号和语义。《UML Distilled》(Fowler和Scott, 1997)是一本极好的对UML技术进行介绍的书,如果对UML有兴趣的话,它也是你在读完本书之后需要阅读的一本书。在《Building Object Applications That Work ? (Ambler, 1998a)和《Process Patterns》(Ambler, 1998b)这两本书里,我概述了这些技术以及它们如何配合使用,这与本书中每一个建模章节(第3、6、7章)中我

给出的概述概念上相似。如果需要更详细的信息,请访问。我也维护着一个网页,在它上面有

一些重要资源的网络链接。

7 ?以应用为中心的设计。一种流线型的系统化的方法,用于设计真正紧密适应用户需求的软件,这些软件不仅更有用也更易使用,并且也更简单更容易创建。本质用况和本质用户界面原型(实物模型)在第3章中讲述过,它们是以应用为中心的设计技术的一些例子,学习这些技术最好的开始是《Software for Use》(Constantine 和Lockwood,1999) 一书。

8 ?用况建模。用况建模是一种需求工程技术,在20世纪90年代早期开始在面向对象开

发团体内部流行。正如在第三章中所见,用况模型由用况图和一系列用况组成,用以归档系统需求行为。我所读过的关于用况的最好的书籍是《Applying Use Cases》(Schneider和Winters, 1998) ;我强烈推荐阅读本书。

11.1.4 现代软件过程

P2K环境的技术和技能很复杂,正如在第10章中所见,要想有效地使用它们,开发人员

就需要能够反映这种复杂性的现代软件过程。这些过程包括:

极限编程(XP )。

面向对象软件过程(OOSP)。

OPEN过程。

统一过程。

1 ?极限编程。一种周密计划的软件开发方法,强调沟通、简化、反馈和自信。XP关注于

与用户一起工作、简单但一流的开发以及测试等。学习XP,最好从《Extreme Programming Explained》(Beck, 2000) —书以及网站开始。

2 .面向对象软件过程。第10章中详细讨论过的OOSP是一系列过程模式,它们一起描述用

于开发、维护和支持软件的完整过程。OOSP基于下面的概念,大型、关键性任务的软件在整体上

是顺序的,局部是迭代的,在In ternet时代要交付增量发布版本。OOSP是我的《Process Patterns〉(Ambler, 1998b)和《More Process Pattern》(Ambler, 1999)两本书的主题。我维护着"过程模式资源网页” (Page.html),它对过程模式及其相关资源建立了索引。

3 . OPEN过程。一种复杂而综合的软件过程,由OPEN协会()支持,用于进行有效的

软件开发。如果想了解OPEN过程,我建议从《The OPEN Process Specification》(Graham、Henderson-Sellers 和Younessi, 1997) 一书开始。

4 ?统一过程。统一过程是一种基于迭代和增量软件开发方法的过程。统一过程的增强生命

周期在第10章中已经详细讲过了,它把统一过程技术扩展成一种完整的软件过程,适用于大型、关键性任务的软件。要了解更多关于统一过程的内容,从《The Rational Unified Process?( Krutchten , 1999) 一书开始,然后接着看《The Unified Software Development Process ? (Jacobson Booch 和Rumbaugh, 1999)以及我编写的关于增强生命周期的系列书(Ambler 2000a; Ambler 2000b; Ambler

2000c)。

11.1.5 对象编程语言

对象编程语言,包括面向对象和基于对象的语言,到目前为止是P2K开发当中用得最多的

语言。这些语言包括:

C++

Eiffel

Java

Object COBOL

Object Pascal

Smalltalk

Visual Basic

1. C++。一种混合面向对象编程语言,它在C语言中增加了面向对象的特性。C++用于处

理密集型软件应用程序,尤其是系统编程和电子商务开发。C++是P2K开发的一个主要的语言。

你可以参阅一系列介绍C++的书,它们当中大部分都贴在上面。对于高级C++,我建议阅读《Advaneed C++》(Coplien, 1992)、《Effective C++》(Meyers,1992)及《More Effective C++》(Meyers,1996)等书,因为它们可以教你如何使用C++编写程序。

2 . Eiffel。一种“纯粹的”面向对象编程语言。Eiffel是一种在小范围内流行语言,它只

占很小一部分市场份额,常被慎重思考软件工程的机构使用。在eiffel.html可以找到多种Eiffel

资源。《Eiffel: The Language》(Meyer, 1992)一书是有关Eiffel语言定义的书。

3 . Java。基于概念“ WORA"(—次编写,随处运行)的一种面向对象语言。Java软件运

行于标准Java虚拟机(JVM )上,这使得不同平台上的移植变为可能。因为Java有着很好的

可移植性和多样性(Java代码可以部署在浏览器、应用服务器甚至数据库中),它很可能会成为P2K开发的主要语言。你可以在找到许多有关Java的资源,这些资源包括介绍性的和高级话题。一个很好的在线教程也贴在

java.su n. com/docs/books/ tutorial/i ndex.html上,我强烈推荐《The Elements of Java Style》(Vermeulen等,2000)—书,这本书也是本系列丛书中的第五本。

4 . Object COBOL。一种混合面向对象编程语言,用面向对象的概念扩展了COBOL。Object COBOL在20世纪90年代一直都不是很稳定,因为COBOL团体过分关注于Y2K危机,而没

有关注于先进的技术发展。Object COBOL可能会在供应商引入新的P2K开发工具后重新流行

起来。时间会告诉我们一切的。你可以在上找到Object COBOL资源的分类。尤其在你还不是

一个有经验的COBOL开发人员时,我觉得《Object-Oriented COBOL》(Arranga和Coyle, 1996)和《Stan dard Object-Orie nted COBOL》(Chap in , 1997)这两本书会是开始学习COBOL的好地方。(我在20世纪80年代后期用COBOL语言写程序。嘘……千万不要告诉其他人哟!)

5 . Object Pascal。一种混合面向对象编程语言,用面向对象的概念扩展了Pasca l虽然Object Pascal用得稍微多一点儿,在两千年后发展也可能会继续走好,但它仍是一种小范围使

用的语言,不可能在P2K语言市场中成为一个强劲的对手。Object Pascal的资源可以在找到。

6 . Smalltalk 。一种纯粹的面向对象编程语言。Smalltalk在20世纪70年代由Xerox Parc (Xerox公司的一个研发部门)开发,在20世纪80年代后期开始流行,20世纪90年代开始

用于商业软件的开发。Smalltalk由于C++和Java而黯然失色,由于市场而不是技术的关系,

在20世纪90年代后期直到现在也只是一种小范围语言。Smalltalk会不会东山再起,这一点

是值得怀疑的。你可以在上找到许多与Smalltalk相关的资源。在20世纪90年代中期和早期,

我也是一名Smalltalk 开发人员,我觉得《Discovering Smalltalk》(Lalonde , 1994)和《Smalltalk

Best Practice Patterns》(Beck, 1997)两书也是很不错的选择。

7 . Visual Basic。由微软公司开发的一种面向对象编程语言,它使用好几个面向对象的概念扩展了Basic语言。Visual Basic是微软应用程序开发环境的主力军,有些版本可以作为宏语言用于一系列微软自己的产品当中。Visual Basic是P2K环境中一门重要的语言,至少对

于编写微软平台的应用程序来说确是如此。开始学习Visual Basic最好的地方在微软的“Visual Basic Start Page”网页上:https://www.docsj.com/doc/15439339.html,/vbasic。如果你是一名VB开发人员的话,那么你会发现在那之后《Developing Applications with Visual Basic and UML 》(Reed,1999)一书也很不错。

11.1.6 Internet 开发语言

要进行基于Web和电子商务开发,你很可能会用到下面的语言:

HTML

Perl CGI脚本

1 . HTML (超文本标记语言)。一种独立于平台的、有着工业标准定义的文件格式,用于

共享信息,HTML页是WWW网事实上的标准用户接口方法。NCSA有一个极好的HTML初

学者指南贴在网上,它的网址是。

2 . Perl (practical extraction and report Ianguage ,实用信息提取与报告语言)。Perl 是一

种脚本语言,最初开发目的是用于UNIX系统管理任务的自动化,现在一般用于基于Web的软

件开发。Perl包含报表创建设施、编辑和数据操作功能、图形用户界面( GUI)功能、语言功

能以及调用其他程序的能力。网页是关于Perl编程语言的一个在线教程,它是开始学习Perl的

一个极好的地方。

3 . CGI (公共网关接口)。CGI是一种用于在Web表单与程序之间通信的一种简单的协议。

网页提供了关于CGI的一个特别好的综述以及使用CGI的方法。

软件开发过程详解

软件开发过程详解 软件开发过程即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件开发过程覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。 1.需求分析 1.1 需求分析的特点和任务 需求分析是软件开发的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。参与需求获取者只有在他们理解了问题之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。把需求获取集中在用户任务上—而不是集中在用户接口上—有助于防止开发组由于草率处理设计问题而造成的失误。有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。 需求获取、分析、编写需求规格说明和验证并不遵循线性的顺序,这些活动是相互隔开、增量和反复的。当你和客户合作时,你就将会问一些问题,并且取得他们所提供的信息(需求获取)。同时,你将处理这些信息以理解它们,并把它们分成不同的类别,还要把客户需求同可能的软件需求相联系(分析)。然后,你可以使客户信息结构化,并编写成文档和示意图(说明)。下一步,就可以让客户代表评审文档并纠正存在的错误(验证)。这四个过程贯穿着需求分析的整个阶段。需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。需求获取只有通过有效的客户—开发者的合作才能成功。分析者必须建立一个对问题进行彻底探讨的环境,而这些问题与产品有关。为了方便清晰地进行交流,就要列出重要的小组,而不是假想所有的参与者都持有相同的看法。对需求问题的全面考察需要一种技术,利用这种技术不但考虑了问题的功能需求方面,还可讨论项目的非功能需求。确定用户已经理解:对于某些功能的讨论并不意味着即将在产品中实现它。对于想到的需求必须集中处理并设定优先级,以避免一个不能带来任何益处的无限大的项目。 1.2.需求分析的一般方法

面向对象软件开发教程

软件是在代码之外发生的一切事情。 如何继续学习过程 你将从本章学到什么? 两千年后(P2K)的软件环境是什么样的? P2K软件环境中的技术和技能是什么?有关P2K技能和技术有哪些概述性的资源?软件专家在面向对象项目中充当什么角色/职位? 如何继续面向对象的学习过程? 为什么需要阅读本章? 你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。 至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。 11.1 P2K 环境 在你的整个职业生涯中一直要学习新的技能。 软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在 Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。 在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增 量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本 书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境, 必需考虑下面几项内容:

软件开发流程管理制度

软件开发流程管理制度 (讨论稿) 为加强对定制软件开发工作管理,缩短开发周期,提高软件开发质量,降低开发成本,提高定开发效率和效益,特制定软件开发流程管理制度。 第一章、总则 为保证日常工作正常有序的进行,让开发中各个环境更紧凑,更可控,需要尽可能实现项目管理的正规化,工作过程的流程化,以便提高软件质量,按期交付。 1、软件开发总体遵循项目管理和软件工程的基本原则。 2、项目管理涉及项目立项、项目计划和监控、配置管理。 3、软件工程涉及需求分析、系统设计、软件实现、系统测试、用户测试、试运行、系统验收、系统上线和数据迁移、产品维护。 第二章、阶段成果 根据软件工程的过程,制定以下工作流程,并规定了各个重要环节需要提交的交付物。各阶段需提交的文档: 1、立项:项目申请表,软件需求报告或设计方案。 2、需求分析:项目研发主计划、需求规格说明书 3、总体设计:概要设计说明书或功能模块描述 4、详细设计:详细设计说明书,包括软件接口说明、单元测试计

划。 5、软件实现:软件功能说明、源代码说明或者注释 6、产品测试:测试报告 7、产品发布:产品说明书、使用手册 8、产品维护:问题反馈记录 9、项目总结:提交客户方的项目总结和公司项目汇报的PPT。软件过程成果表:

第三章、岗位设置 根据公司目前的开发过程主要分为分析、开发、测试三个阶段。分析阶段完成用户需求文档的编写,系统总体设计的编写;开发阶段完成设计文档的编写,代码的编写、代码的维护。测试阶段完成系统的测试,测试文档及其他材料。通过逐渐的调整岗位,明确工作职责,逐步实现项目经理,软件设计师,程序员,测试工程师的岗位设置。

软件开发文档说明书(完整流程)

. 在软件行业有一句话:一个软件能否顺利的完成并且功能是否完善,重要是看这个软件有多少文档,软件开发文档是一个软件的支柱,如果你的开发文档漏洞百出,那么你所开发出来的软件也不可能会好;开发文档的好坏可以直接影响到所开发出来软件的成功与否。 一、软件开发设计文档:软件开发文档包括软件需求说明书、数据要求说有书、概要设计说明书、详细设计说明书。 1、软件需求说明书:也称为软件规格说明。该说明书对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。软件需求说明书的编制目的的就是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解、并使之面成为整个开发工作的基础。 其格式要求如下: 1 引言 1.1 编写目的。 1.2 背景 1.3 定义 2 任务概述 2.1 目标 2.2 用户的特点

. 2.3 假定和约束 3 需求规定 3.1 对功能的规定 3.2 对性能的规定 3.2.1 精度 3.2.2 时间特性的需求 3.2.3 灵活性 3.3 输入输出要求 3.4 数据管理能力要求 3.5 故障处理要求 3.6 其他专门要求 4 运行环境规定 4.1 设备 4.2 支持软件 4.3 接口 4.4 控制

. 2、概要设计说明书:又称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序系统的设计考虑,包括程序系统的基本处理。流程、程序系统的组织结构、模块划分、功能分配、接口设计。运河行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。 其格式要求如下: 1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料 2 总体设计 2.1 需求规定 2.2 运行环境 2.3 基本设计概念和处理流程 2.4 结构 2.5 功能需求与程序的关系

软件开发流程 论文

毕业设计(论文)题目:软件开发流程管理 班级:11工升 学号:1000303071 姓名: 指导教师: 2014年11月

摘要 从软件开发最初至今,不断地有新的软件开发技术产生,但是在软件开发能力和质量方面却始终存在达不到预计目标这一问题。每一个软件开发的最大目标,就是最大限度提高质量与生产率。而影响质量与生产率的三个关键因素:过程、人和技术,因此,我们除了提高技术能力,培养更多优质人才之外,还需要制定一套软件开发过程管理标准,并在软件开发过程中对这一标准不断地完善,以达到提高软件质量与生产率的目标。 本文结合CMM(软件过程成熟度模型),对软件开发、维护全过程进行标准化、规范化管理,制定出软件开发管理标准。 关键词:软件开发过程,管理标准

目录 第一章软件开发的概念及目的 (4) 第二章软件开发流程划分及开发环境 (4) 2.1.软件开发阶段划分 (4) 2.2.软件开发环境需求...........................................................错误!未定义书签。第三章软件开发过程中存在的问题............................................错误!未定义书签。 3.1.对用户方需求的掌握不全面...........................................错误!未定义书签。 3.2.对软件的价值认识不清晰...............................................错误!未定义书签。 3.3.跟用户方的合作不顺利...................................................错误!未定义书签。 3.4.开发队伍的结构不合理...................................................错误!未定义书签。 3.5.软件开发管理制度不健全...............................................错误!未定义书签。 3.6.开发团队人员不稳定.......................................................错误!未定义书签。第四章软件开发流程管理规范.. (10) 4.1.什么是CMM (10) 4.2.结合CMM制定开发流程管理方案 (11) 4.2.1软件项目生命周期模型...........................................错误!未定义书签。 4.2.2需求分析流程图及描述...........................................错误!未定义书签。 4.2.3设计流程图及描述...................................................错误!未定义书签。 4.2.4编码流程图及描述...................................................错误!未定义书签。 4.2.5测试流程图及描述...................................................错误!未定义书签。 4.2.6验收流程图及描述 (22) 第四章软件开发行业前景 (23) 参考文献..........................................................................................错误!未定义书签。

软件开发过程规范

【最新资料,Word版,可自由编辑!】

目录 1.前言............................................................................................................................................... 1.1目的.......................................................................................................................................... 1.2对象.......................................................................................................................................... 1.3要求.......................................................................................................................................... 1.4适用范围.................................................................................................................................. 1.5软件开发过程模型................................................................................................................. 1.6开发过程划分 ......................................................................................................................... 2.技术过程规范部分...................................................................................................................... 2.1概述.......................................................................................................................................... 2.2业务建模阶段 ......................................................................................................................... 2.3需求阶段.................................................................................................................................. 2.4分析设计阶段 ......................................................................................................................... 2.5实现阶段.................................................................................................................................. 3.管理过程规范部分...................................................................................................................... 3.1概述.......................................................................................................................................... 3.2接受项目.................................................................................................................................. 3.3重新评估项目范围和风险(对于较大项目) ................................................................... 3.4制定开发计划 ......................................................................................................................... 3.5迭代开发管理 ......................................................................................................................... 3.6监控项目的实施 ..................................................................................................................... 3.7结束项目..................................................................................................................................

面向对象的软件开发方法简介

1面向对象的软件开发方法简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点。 ●把软件系统看成是各种对象的集合,这更接近人类的思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 换。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封 装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性, 从而提高了软件的可维护性。 ●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。 1.1 对象模型 在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。开发人员需要进行以下自底向上的抽象思维。 ●把问题领域中的事物抽象为具有特定属性和行为的对象。 ●把具有相同属性和行为的对象抽象为类。 ●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。 再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。 2.自顶向下的分解 再建立对象模型的过程中,也包括自顶向下的分解。例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。 1.1.2UML:可视化建模语言 面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。 1.2 面向对象开发中的核心思想和概念 在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。

面向对象的软件开发过程

面向对象的软件开发过程 【摘要】本文介绍了面向对象技术的基本思想,阐述了面向对象软件开发的分析与设计实现过程,说明了面向对象技术在软件开发中的应用,总结出面向对象技术在程序开发中的优势。 【关键词】面向对象;软件开发 1面向对象技术的基本思想 随着计算机应用领域的不断扩大,软件的规模和复杂性也在不断增加,我们需要按照更科学、有效的方法组织软件的生产与管理。面向对象技术首先在编程领域兴起,并逐渐发展成熟,并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。 面向对象技术首先在编程领域兴起,并逐渐发展成熟,并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。面向对象方法的基本思想是:从客观存在的事物(即对象) 出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。 具体地讲,面向对象技术是从问题域中客观存在的事物出发构造软件系统,用对象作为这些事物的抽象表示,并以此作为系统的基本构成单位。每个对象都有其属性和方法,属性表示事物的静态特征, 方法表示事物的动态特征。对象的属性和方法结合为一体,对外屏蔽其内部细节,称作封装。把具有相同属性和相同方法的对象归为一类,类是对象的抽象描述,每个对象是它所属类的一个实例。通过在不同程度上运用抽象的原则,可以得到基类和子类,子类继承基类的属性和方法。 面向对象的三个基本特征: 封装——是把客观事物封装成抽象的类,可以隐藏实现细节,使得代码模块化; 继承——使用现有类的所有功能,并在无需重写原来类的情况下对这些功能进行扩展; 多态——指同一消息作用于不同的对象时,具有不同的处理方案和处理结果,即所谓的“同一接口, 多种方法”,增强了程序的灵活性。 2面向对象的分析与设计实现 面向对象的程序设计以解决的问题中所涉及的各种对象为主要矛盾,力图从实际问题中抽象出封装了数据和操作的对象,通过定义属性和操作来表述他们的特征和功能,定义接口来描述他们的地位及与其他对象的关系,最终形成一个可理解、可扩充、可维护的动态对象模型。面向对象的软件开发过程可以大体划分为面向对象的分析,面向对象的设计,面向对象的实现三个阶段。 2.1面向对象的分析 面向对象的分析主要作用是明确用户的需求,并用标准化的面向对象的模型规范来表述这一需求,最后形成面向对象的分析模型。图1展示的是面向对象系统分析示意图。 图1面向对象系统分析示意图 面向对象的分析分为如下几步: 2.1.1确定需求 明确用户的需求,包括对用户需求的全面理解和分析;明确所要开发的软件系统的职责界限;进行可行性研究和制订方案,交给用户确认。

面向对象的分析过程

面向对象的分析过程 摘要 分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对 象的方法进行改造的原因。一些面向对象方法存在的不足。 关键词:仿真,面向对象,岸边集装箱起重机,训练器 面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。 面向对象=对象(Object) +分类(classification) +继承(inheritance) +通过消息的通信(communication with messages) 从下图中我们可以看出,面向对象的开发方法明显不同。 面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。采用面向对象的方法,原因如下: 1.可理解性 面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。 2.可重用性和可扩充性 在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施。通过修改现有的类,可以建立各种应用中所需要的特殊对象。 3.模块性 面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。 4.图形用户界面

软件开发过程概述

第1章软件开发过程概述 1.1 软件开发过程概述 1.1.1 软件的概念 软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的所有文档的集合软件分为系统软件和应用软件。 软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。 1. 系统软件 系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。 一般来讲,系统软件包括操作系统和一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。 2. 应用软件 应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。较常见的有:文字处理软件如WPS、Word等;信息管理软件;辅助设计软件如AutoCAD ;实时控制软件;教育与娱乐软件。 1.1.2 编程与软件开发 软件开发的内容是:需求、设计、编程和测试。 (1)需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。 (2)设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。 (3)编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。

面向对象方法题库1-0-5

面向对象方法题库1- 0-5

问题: [单选]当()时,用例是捕获系统需求最好的选择。 A.系统具有很少的用户 B.系统具有很少的接口 C.系统算法复杂,功能单一 D.系统有很多参与者 用例描述的是系统的执行者(参与者)与系统的交互,同时也是开发人员与用户进行交流的工具,可用来很好地定义系统的边界。所以,当执行者较多的时候,用例是捕获系统需求最好的选择。

问题: [单选]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。 A.局部化 B.封装 C.信息隐藏 D.继承 面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。 (1)局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系不必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。

软件开发流程说明文档

软件开发流程说明文档 作者:知名企业中心第一步:需求调研分析 1、相关系统分析员向用户初步了解需求,然后用word列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 2、系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。 3、系统分析员向用户再次确认需求。 第二步:概要设计 首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。 第三步:详细设计 在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据

详细设计报告进行编码。 第四步:编码 在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。 第五步:测试 测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。 第六步:软件交付准备 在软件测试证明软件达到要求后,软件开发者应向用户提交开发的目标安装程序、数据库的数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等双方合同约定的产物。《用户安装手册》应详细介绍安装软件对运行环境的要求、安装软件的定义和内容、在客户端、服务器端及中间件的具体安装步骤、安装后的系统配置。 《用户使用指南》应包括软件各项功能的使用流程、操作步骤、相应业务介绍、特殊提示和注意事项等方面的内容,在需要时还应举例说明。 第七步:验收 用户验收。

【项目管理知识】面向对象软件开发和过程

面向对象软件开发和过程 代码是核心 面向对象发展到今天,已经出现了许许多多的实践、方法和技术。很多的技术都能够有效的提高软件质量,而要用好这些技术,我们需要从过程和管理的角度来看待它们,而不是为了使用技术而使用技术。此系列文章包括:代码是核心、案例实战(上)、案例实战(下)、重用、优化代码的组织、针对契约设计、业务建模。 在一个有效的组织中,必定拥有杰出的一线人才。软件设计也是一样的,一线人才的素质决定了软件的质量。从敏捷的观点来看,代码是检验软件过程是否有效的终标准。目前为止,以及在短时间的未来,我们都不太可能完全脱 离代码进行软件设计。所以,软件过程中的任何一个活动都是为了能够产出的代码。所以,代码才是核心。 1.代码是软件开发的基础 编码是软件开发过程中基本、底层的技艺,然而也是重要的技艺。任何一个领域的专家都需要花费大量的时间来进行基本技艺的锻炼,木匠需要花费大量的时间来锻炼他们对各种工具的掌握,厨师则需要练习刀工和火候。程序员也是一样的,对我们来说,语言的各种特性必须要了然于胸。而对软件的管理也需要从代码做起。 从____ 年到现在,国内兴起了一股软件工程热,需求管理、配置管理、甚 至CMM。面对纷至沓来的各种方法学、UML、00A大家似乎已经热衷于这些概念本身了,却往往忽略了软件开发中基本的元素-代码。在和很多软件组织的接触过程中,我们认为大多数组织急切需要的并不是这些工程理论,不是说这些理论不重要,而是这些组织的症结不在于此。很多的组织连代码的质量都管理不好,又何谈其它呢?代码管理是基础的基础,从管理的角度上来看,任何一个组织的管理都需要一个从上至下的管理过程,有基层的管理人员,也有 高层的管理人员。对代码的管理就是软件开发中的基层管理,它起到的作用就是能够把需求、设计的思路贯彻到终的代码中。 "管理无大事"。对软件的管理也是一样,大部分的问题都是由于很小的原因 引起的。例如,一个产品如果后期在debug上花费了大量的时间,那么,这种现象是由于什么原因引起的?一种可能的原因是前期的代码设计中对代码质量的把握不严。每一次代码功能的演化并不会产生太多的问题,但是当代码累积

第3章 面向对象得软件开发技术汇总

第3章面向对象得软件开发技术 一、选择题 1.对象是面向对象开发方法的基本成分,每个对象可用它的一组( 和它可以执行的一组操作来定义。 A.服务 B.参数 C.属性 D.调用 2.我们把具有共同属性、共同操作性质的对象的集合定义为()。 A.类 B.属性 C.对象 D.消息 3.面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有多层,可以有子类,这种层次结构系统的一个重要性质是一个类可以获得其父类的全部描述(数据和操作),即()。 A.传递性 B.继承性 C.复用性 D.并行性 4.软件的内部实现与外部可访问性分离,这是指软件的() A.继承性 B.共享性 C.封装性 D.抽象性 5.面向对象程序设计语言不同于其他语言的最主要特点是()。 A.模块性 B.抽象性 C.共享性 D.继承性 6.不属于消息的性质的是()。 A.同一对象可接收不同形式的多个消息,产生不同的响应 B.相同形式的消息可以送给不同对象,所做出的响应可以是截然不同的 C.消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必须的 D.可以做一些特定的操作,改变系统状态的消息 7.通过执行对象的操作改变该对象的属性,但它必须通过()的传递。 A.接口 B.消息 C.信息 D.操作 8.在确定类时,候选的类是所有的()。 A.名词 B.形容词 C.动词 D.代词

9.同一类中有相同的数据结构,这种共享方式是()。 A.不同应用的共享 B.同一应用的共享 C.不同类的共享 D.同一类的共享 10.类库这种机制的共享方式是()。 A.不同应用的共享 B.同一应用的共享 C.不同类的共享 D.同一类的共享 11.在面向对象方法中,信息隐藏的实现是通过对象的()。 A.分类性 B.继承性 C.封装性 D.共享性 12.在只有单重继承的类层次结构中,类层次结构是()。 A.星形层次结构 B.环形层次结构 C.树形层次结构 D.网状形层次结构 13.在有多重继承的类层次结构中,类层次结构是()。 A.树形层次结构 B.网状形层次结构 C.星形层次结构 D.环形层次结构 14.在一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出现出不同的行为的特性为()。 A.多态性 B.继承性 C.封装性 D.抽象性 15.汽车有一个发动机,汽车和发动机之间的关系是()。 A.一般具体关系 B.整体部分关系 C.分类关系关系 D.is a 关系 16.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是()。 A.组装关系 B.整体部分关系 C.has a 关系 D.一般具体关系

面向对象软件开发教程

软件是在代码之外发生的一切事情。 第11章 如何继续学习过程 你将从本章学到什么? ●两千年后(P2K)的软件环境是什么样的? ●P2K软件环境中的技术和技能是什么? ●有关P2K技能和技术有哪些概述性的资源? ●软件专家在面向对象项目中充当什么角色/职位? ●如何继续面向对象的学习过程? 为什么需要阅读本章? 你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。 至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。 11.1 P2K环境 在你的整个职业生涯中一直要学习新的技能。 软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。 在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增

量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境,必需考虑下面几项内容: ●新的软件策略。 ●使能技术。 ●领先的开发技术。 ●现代软件过程。 ●对象编程语言。 ●如何获得P2K技能。 定义 两千年后(P2K)环境(post-2000 environment):机构在IT部门内部部署的一系列技术和技能(大部分是基于面向对象和组件技术的)。 2000年(Y2K)危机(year 2000 crisis):软件组织在20世纪90年代未期要更新或替代那些使用两位数而不是四位数来存储年份的软件。 11.1.1 新的软件策略 21世纪初期将会由两项关键的软件策略来统治:企业应用集成(EAI)和电子商务。EAI 把全异的软件应用集成为一个整体以支持新的和复杂的业务过程。中间件和组件技术,例如下面这节里描述的CORBA和兼容COM+的工具也用于支持EAI。了解EAI的一个好去处是,也可以参考《Enterprise Application Integration》(Linthicum,2000)一书。包装技术是《Building Object Applications That Work》(Ambler,1998a)一书详细讲述的主题,对于EAI的开发者来说它也是一项重要的技能。 电子商务也称为基于Internet的商务,它关注于使用电子技术支持产品销售和服务。电子商务成功的机构有,戴尔公司()—一个计算机软硬件零售商;亚马逊()—一个销售书、录像带、音乐CD的零售商;Ebay网()—一个在线拍卖网站。电子商务最好的资源是杂志《The Industry Standard》(),它以报纸和在线两种形式出版发行。 11.1.2 使能技术 除了11.1.5节描述的对象编程语言外,还有好几个使能技术也是P2K环境中占主导地位的技术。这些技术有: ● CORBA ● COM+ ● EJB(企业Java组件模型) ● XML ●持久层/框架

面向对象软件开发技术试题

面向对象软件编程技术试题 (工程硕士) 年级:姓名:成绩: 一、选择填空题(答案写在每题后面的括号内)(每题5分,共50分) 1.在面向对象方法中,对象可看成是属性(数据)以及这些属性上专用操作的封装体。封装是一种 A 技术,封装的目的是使对象的 B 分离。类是一组具有相同属性和相同操作的对象的集合,类中的每个对象都是这个类的一个 C 。类之间共享属性和操作的机制成为 D 。一个对象通过发送 E 来请求另一对象为其服务。 A:①组装②产品化③固化④信息隐蔽() B:①定义和实现②设计和测试③设计和实现④分析和定义() C:①例证②用例③实例④例外() D:①多态性②动态绑定③静态绑定④继承() E:①调用语句②消息③命令④口令() 2.软件设计的常用方法有SADT方法、Jackson方法、快速原形方法和 OO设计方法等。其中,Jackson方法是一种面向数据结构的设计方法,其数据结构一般有 A 、 B 、 C 三类,并根据 D 来导出程序结构。OO方法的核心是 E ,这是提高可维护性的重要措施。 A: ①记录结构②顺序结构③指针④树() B: ①表结构②选择结构③数组④线性表() C: ①链表结构②列表③重复结构④队列结构() D:①数据结构②数据间的控制结构③数据流图④图() E:①结构化②继承性③信息隐藏④对象() 3.面向对象建模通常定义了三种模型,它们分别是对象模型、动态模型和功能模型。其中, A 模型描述系统中与时间和操作顺序有关的系统特征,表示瞬时的行为上的系统的“控制”特征; B 模型描述了系统中对象的静态结构,以及对象之间的联系; C 模型描述了系统的功能“性质”,它指出了系统应该做什么。在建立动态模型中,通常先画出 D ,然后再画出 E 。

系统开发过程介绍

三、系统开发过程 □五个阶段 各种系统开发方法学在围、复杂性、完善程度以及方法上有很大的不同。尽管有的方法学分三个阶段,有的分15个阶段,但是每个方法学所描述的要完成的活动基本上是相同的。本章要阐述的最重要的一点是:最好的方法学是那些始终把用户考虑进去的方法学。过去的情况是,用户管理人员与信息服务开发组合作来完成系统的一般功能说明书,然后,由信息服务人员来进行系统开发。现在,系统开发是各占50%的比例;因此,用户管理人员应该非常熟悉系统开发的大体过程,特别应该熟悉他们单位自己使用的方法学。 系统开发过程可分为五个阶段来描述。这五个阶段是: 1.第Ⅰ阶段—系统开始和可行性研究 2.第Ⅱ阶段—系统分析和设计 3.第Ⅲ阶段—程序设计 4.第Ⅳ阶段—转换和实现 5.第Ⅴ阶段—实现后的评价 第Ⅰ阶段—系统开始和可行性研究是在为开发一个建议的系统提供人力和资源之前完成的。第Ⅰ阶段多数的工作和编写的资料是第Ⅱ阶段的输入。在第Ⅱ阶段—系统分析和设计期间,系统分析员与用户一起工作以编写详细的功能和系统的说明书。将这些说明书交给程序员,然后开始第Ⅲ阶段——程序设计。在第Ⅵ阶段—转换和实现期间,一旦软件开发出来,则建立数据文件,转换现有系统,并且实现新系统。第Ⅴ阶段—实现后的评价。在开始了系统寿命期中的生产阶段之后,提出(经常被忽略的)实现后的评价要求。 □具体开发过程 下面将逐步地描述系统开发过程。至于具体的细节、相互的影响、方法、形式等,用户管理人员应该与信息服务经理联系,与他们讨论公司当前使用的方法学,同时再看看公司部描述方法学的手册。 1.第Ⅰ阶段—系统开始和可行性研究 在第Ⅰ阶段的活动中很少有与其他四个阶段的活动相一致的。此处所提供的方法包括对于受拒绝后的再次服务请求的方法以及将技术转移可能性的研究合并到诸过程中这些容。第Ⅰ阶段最终的产品有两个部分。第一部分是实际的可行性研究报告,它包含对建议的或改进的系统的描述以及利润/成本分析。第二部分是系统的初步设计。它对于估价成本和利润是必要的。该初步设计是第Ⅱ阶段—系统分析和设计的直接输入。 将系统的初步设计并入可行性研究的依据是,多数可行性研究是以概念而不是以设计为基础的。如果在描述系统目标上花的时间太少,那么成本估计,甚至利润估计将是错误的。用概念来指导可行性研究注定会导致成本过高,而且用户不满意。在系统初步设计上所花费的时间是值得的,即使拒绝可行性研究也是如此。因为所编写的资料将必然会被证实其他项目中是有价值的。 下述编号的活动与表20.9.2的系统开发责任矩阵相对应。 (1)提交服务请求 图20.5.1说明了包括对受拒绝的请求再次请求处理的一种方法。所请求的服务毕竟是用户做的,因此,应该由用户着手进行。我们鼓励用户管理人员请求信息服务人员的帮助,但是应该再一次强调,业务领域的管理人员应该对各种大小的服务请求都提供合适的资料。 (2)估价服务请求 正如在责任矩阵中所注释的那样,信息服务管理人员只能承诺小的项目(由公司的方针所确定的小项目)。 (3)指定可行性研究组 信息服务经理和用户经理共同来指定适当的混合的人选以组成可行性分析研究组。该组至少由一名系统分析员和一名用户代表组成。可行性研究组的大小取决于可行性研究的围和时间限制。 用户代表应该熟悉当前专业领域的所有工作,用户经理、总经理助理,或专业领域分析员是合理的候选者,用户的系统分析员,具有计算机信息处理基础知识的情况已经越来

相关文档