八个步骤开发完整的J2EE解决方案
- 格式:doc
- 大小:43.50 KB
- 文档页数:7
J2EE系统设计方案J2EE(Java 2 Platform, Enterprise Edition)是一种用于构建企业级应用程序的Java平台。
J2EE系统设计方案是指在J2EE平台下为开发企业级应用程序而制定的系统级架构和设计方案。
在本文中,我们将深入探讨J2EE系统设计方案,并分析其组成部分、开发模式以及实现方法。
1. J2EE系统设计方案的组成部分J2EE系统设计方案由以下组成部分构成:1.1 企业级应用程序设计这个组成部分提供了开发企业级应用程序所需的基础模型和设计规范。
这些规范包括MVC(模型-视图-控制器),ORM (对象关系映射),面向服务架构(SOA),以及几种设计模式。
此外,这个组成部分还提供了如何实现可扩展性和可维护性的建议。
1.2 中间件设计模式中间件是指在应用程序、操作系统和硬件之间运行的一系列软件。
J2EE系统设计方案的中间件组成部分提供了如何设计分布式应用程序的建议,例如,通过使用EJB(企业JavaBean)。
1.3 数据库设计数据库设计是针对企业级应用程序所需的数据存储而制定的规范和建议。
它包括如何设计数据库架构、如何最大化数据库性能和可靠性的建议,以及如何实现数据安全性的建议。
1.4 安全性设计这个组成部分提供了如何实现应用程序安全性的一些建议。
例如,如何进行单点登录,如何管理用户角色和权限以及如何保护敏感数据。
2. J2EE系统设计方案的开发模式J2EE系统设计方案采用了Model-View-Controller(MVC)开发模式。
这个开发模式将应用程序划分为三个部分:模型(Model),视图(View)和控制器(Controller)。
- 模型:模型是数据和业务逻辑的实际实现。
它表示应用程序的内部状态和行为。
- 视图:视图是与用户交互的部分。
它呈现了在浏览器中看到的图形用户界面。
- 控制器:控制器是应用程序中的主要逻辑。
它连接视图和模型,并控制用户界面如何响应用户操作。
软件开发流程的八个步骤,大厂通用!(一)引言概述:软件开发流程是指在进行软件开发时,按照一定的规范和步骤进行的一系列操作。
在大厂中,通常会采用一种通用的软件开发流程,该流程包含八个步骤。
本文将分五个大点详细阐述这八个步骤,以帮助读者更好地理解和应用软件开发流程。
一、需求分析1.明确需求来源:包括客户需求、市场需求等。
2.收集需求:通过面谈、问卷调查等方式获取相关需求信息。
3.分析需求:对收集到的需求进行整理、分类和评估,确保需求的准确性和完整性。
4.制定需求规格说明书:将需求以文档形式进行详细描述,包括功能需求、非功能需求等。
二、系统设计1.概要设计:对整个系统进行整体结构规划,确定各个模块之间的关系和接口。
2.详细设计:对系统各个模块进行具体设计,包括数据结构设计、算法设计等。
3.数据库设计:设计系统所需的数据库结构,包括表结构、字段定义等。
4.界面设计:设计系统用户界面的布局、样式等。
5.设计评审:对设计方案进行评审,确保设计的合理性和可行性。
三、编码开发1.选择开发语言和开发工具。
2.编写代码:按照设计方案进行编码,并进行适当的注释和文档编写。
3.进行单元测试:对编写的代码进行单元测试,确保代码的正确性和可靠性。
4.进行集成测试:将各个模块进行集成测试,验证模块之间的交互和协作是否正常。
5.进行系统测试:对整个系统进行全面测试,发现并修复潜在的问题。
四、部署与维护1.系统部署:将开发完成的系统部署到测试环境或生产环境中。
2.系统验收:根据需求规格说明书进行系统验收,确保系统满足需求。
3.系统维护:对系统进行定期维护和更新,修复已知的问题和漏洞。
4.用户培训:对系统进行培训,使用户能够熟练使用并掌握相关操作技巧。
5.提供技术支持:为用户提供技术支持,解决用户在使用过程中遇到的问题。
五、总结软件开发流程的八个步骤,从需求分析到部署与维护,构建了一个完整的软件开发过程。
这些步骤相互关联、相互依赖,在整个软件开发周期中发挥着不可或缺的作用。
软件开发流程八个步骤模板软件开发是一个设计、开发、实施和维护软件的过程,这些过程通常按照一系列的详细步骤执行,以确保在有限的时间和财政预算内交付最佳的质量。
本文提供了一个八个步骤的软件开发流程模板,它将帮助开发团队执行每一步,并在开发完成时确保质量和可用性。
其中,第一个步骤是开发一个需求规格文档,它描述了客户期望的功能和性能,以及使用者对软件的操作需求。
需求规格文档也被称为项目规格簿,允许开发人员认识到客户的实际情况,以及他们期望软件实现的功能。
第二步是确定以及设计系统架构。
在这一步中,开发人员研究和识别整个系统如何运作,以便将系统分解为独立的组件和副本。
系统架构可以以结构化或非结构化的方式来进行,并决定了解决方案的可行性。
第三步是开发软件设计说明书,描述了所有的细节,以及每个组件的功能和性能,以及怎样将它们结合在一起,以实现设计中的服务或功能。
设计文件也会涉及外部软件,硬件,软件编码应用和用户界面技术的需求,以确保最终的可行性。
第四步是开发数据库,这是系统的基础,用于收集,组织和存储各种数据,使系统能够正常运行。
开发人员需要设计和实现数据库模式,以确保数据的安全性,可靠性和完整性。
第五步是开发软件代码。
软件开发人员通过使用编程语言和应用程序编写软件代码来实现软件的最终功能。
开发人员必须经过反复测试,以确保软件具有期望的功能和性能。
第六步是集成和测试。
这一步涉及将软件开发的各个组件进行集成,以确保所有的功能都能正常工作,并通过对系统执行一系列的测试,以确保软件具有正确的质量和可用性。
第七步是交付和实施。
软件开发团队可以向客户演示它们开发的软件效果,以确保客户满意度,然后将软件交付给客户,以供他们实施。
第八步是支持和维护。
在将软件实施后,随着用户提出新需求或遇到各种问题,开发团队需要给予适当的支持和维护,以确保软件能够正常运行和持续改进质量。
总的来说,上述的八个步骤模板可以帮助软件开发团队有效地开发软件,并确保开发的软件具有期望的质量和可用性。
搭建Eclipse+MyEclipse+tomcat开发环境开发J2EE的第一步一、安装JDK首先下载JDK 5.0(JDK 5.0的下载页面为:/j2se/1.5.0/download.jsp);然后运行JDK 5.0安装程序jdk-1_5_0_06-windows-i586-p.exe,安装过程中所有选项保持默认;最后配置JDK的环境变量:在“我的电脑”上点右键—>“属性”—>“高级”—> “环境变量(N)”。
新建系统变量JAVA_HOME:C:\Program Files\Java\jdk1.5.0_06;新建系统变量CLASSPATH:.;%JAVA_HOME%\lib;(注意:点号表示当前目录,不能省略)在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin;(注意:这里的分号不能省略) 到这里,JDK安装完毕。
下面我们测试一下JDK是否安装成功:将以下内容复制到记事本中:public class HelloJAVA{public static void main(String srg[]){System.out.println("Hello JAVA!");}}另存为“HelloJAVA.java”(不含引号,下同),并保存到D盘根目录下。
在命令行依次输入下图中红线所标注的命令:如果出现上图红框中所标注的内容,则说明JDK安装成功!注意:如果以后要安装诸如Eclipse、Borland JBuilder、JCreator、IntelliJ IDEA等集成开发环境(IDE,Integrated Developm ent Environment),应该在IDE中编译运行一个简单的HelloWorld程序,以保证IDE可以识别出JDK的位置。
二、安装Tomcat首先下载jakarta-tomcat-5.0.30.zip,之所以下载免安装版的好处是可以使用多个Tomcat (jakarta-tomcat-5.0.30.zip的下载页面为:/tomcat/tomcat-5/v5.0.30/bin/);然后将jakarta-tomcat-5.0.30.zip直接解压到D盘根目录:最后配置Tomcat的环境变量:在“我的电脑”上点右键—>“属性”—>“高级”—> “环境变量(N)”。
开发完整J2EE解决方案的八个步骤开发完整的J2EE解决方案需要经过八个步骤,包括需求分析、架构设计、数据库设计、编码实现、单元测试、集成测试、部署上线、维护升级。
下面将详细介绍这八个步骤。
1. 需求分析(Requirement Analysis)需求分析是任何项目的起点,也是非常重要的一步。
在J2EE项目中,需求分析包括对系统的功能需求、性能需求、安全需求以及用户体验需求等进行详细的分析和明确。
2. 架构设计(Architecture Design)在需求分析的基础上,进行系统的架构设计。
架构设计主要包括选择和设计系统的逻辑架构、物理架构、分层架构、展示层、业务逻辑层、数据访问层和集成层等。
同时也需要考虑一些横切关注点如事务管理、安全性、缓存、负载均衡等。
3. 数据库设计(Database Design)数据库设计是指根据需求分析的结果,设计和规划数据库的结构,包括实体关系模型(ER模型)、表结构设计、索引设计、触发器、存储过程等。
4. 编码实现(Coding)在架构设计和数据库设计的基础上,进行编码实现。
编码实现主要分为前端实现和后端实现两部分,前端实现包括UI设计、CSS样式的编写以及前端的一些交互逻辑实现,后端实现主要是根据架构设计和数据库设计的要求进行业务逻辑和数据持久化的实现。
5. 单元测试(Unit Testing)单元测试是在编码实现阶段进行的,主要是对每一个单独的模块或者方法进行测试。
通过判断每个模块或者方法是否按照预期的结果返回,来验证它的正确性和可靠性。
6. 集成测试(Integration Testing)集成测试是在单元测试之后进行的,主要是对已经通过单元测试的各个模块进行组合测试,验证模块之间的协作是否正确,数据的传递和处理是否正确,并验证整个系统的功能完整性和稳定性。
7. 部署上线(Deployment)在完成集成测试并且通过验收后,对系统进行部署和上线。
部署工作包括配置硬件环境、软件环境、网络环境等,并将已经通过测试的系统代码和相关资源部署到服务器上。
J2EE系统技术方案J2EE系统技术方案 (1)一、技术平台 (1)1.J2EE的概念 (1)2.J2EE的优势 (2)3.J2EE相关核心技术 (2)4.轻量级J2EE架构 (3)二、应用部署架构 (3)1.服务器操作系统 (3)2.Web服务器架构 (3)3.系统数据库 (4)三、开发关键技术 (4)1.软件版本与工具 (4)2.主要技术方案 (5)3.业务逻辑层 (5)4.数据持久层 (6)5.域对象层 (6)6.WEB层 (6)7.任务调度 (6)8.Ajax技术 (6)四、系统缓存 (6)1.一般缓存策略 (6)2.Hibernate二级缓存 (7)3.JSP页面缓存 (7)五、软件成本比较 (7)一、技术平台J2EE(Java 2 Enterprise Edition)是建立在Java 2平台上的企业级应用的解决方案。
J2EE技术的基础便是Java 2平台,不但有J2SE平台的所有功能,同时还提供了对EJB,Servlet,JSP,XML等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。
事实上,J2EE已经成为企业级开发的工业标准和首选平台。
市场上可以看到很多实现了J2EE的产品,如BEA WebLogic,IBM WebSphere以及开源的JBoss等等。
J2EE并非一个产品,而是一系列的标准,它是由sun公司提出的,符合这个标准的产品叫"实现"。
1.J2EE的概念目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。
java程序的开发步骤Java程序的开发步骤包括项目规划、需求分析、设计、编码、测试、部署等几个重要阶段。
首先,项目规划是Java程序开发的第一步,要确定项目的范围、目标、时间表和资源分配等。
在项目规划阶段,需要明确项目的需求和目标,确定项目的优先级和里程碑,制定项目计划和预算,分配项目资源和人员等。
其次,需求分析是Java程序开发的第二步,要分析用户的需求和期望,确定软件功能和特性。
在需求分析阶段,需要收集用户需求,分析用户需求,定义功能和特性,编写需求规格说明书等。
然后,设计是Java程序开发的第三步,要设计软件的架构、模块、接口和数据结构等。
在设计阶段,需要制定软件设计方案,设计软件架构和模块,设计软件接口和数据结构,编写设计文档等。
接着,编码是Java程序开发的第四步,要实现软件的功能和特性,编写代码并进行调试。
在编码阶段,需要编写代码,编写单元测试,进行代码调试,优化代码等。
随后,测试是Java程序开发的第五步,要测试软件的功能、性能和稳定性,发现和修复软件的缺陷和问题。
在测试阶段,需要编写测试用例,进行功能测试,性能测试和压力测试,进行回归测试,修复软件缺陷,优化软件性能等。
最后,部署是Java程序开发的最后一步,要部署和发布软件,让用户可以使用软件。
在部署阶段,需要部署软件到生产环境,进行用户培训,提供技术支持,进行软件维护和升级等。
总的来说,Java程序的开发步骤包括项目规划、需求分析、设计、编码、测试、部署等几个阶段,每个阶段都非常重要,要认真对待,才能开发出高质量的Java程序。
希望以上内容能够帮助您更好地了解Java程序的开发步骤。
如果有任何问题,欢迎随时向我提问。
感谢阅读!。
软件开发流程的8个步骤在软件开发过程中,一个清晰的开发流程是非常重要的,它可以帮助团队成员明确各自的任务和责任,提高开发效率,降低开发成本,保证软件质量。
下面将介绍软件开发流程的8个步骤,希望能对大家有所帮助。
1. 需求分析。
需求分析是软件开发的第一步,也是最为关键的一步。
在这个阶段,开发团队需要与客户充分沟通,了解客户的需求和期望,明确软件的功能和特性。
只有充分理解了客户的需求,才能为客户提供满意的软件产品。
2. 概要设计。
在需求分析的基础上,开发团队需要进行概要设计,确定软件的整体架构和模块划分。
概要设计阶段需要考虑软件的可扩展性、可维护性和性能等方面的问题,为后续的详细设计和编码工作奠定基础。
3. 详细设计。
详细设计是将概要设计进一步细化的过程,包括数据库设计、接口设计、算法设计等。
在详细设计阶段,开发团队需要明确每个模块的功能和实现细节,为编码和测试提供详细的指导。
4. 编码。
编码是软件开发的核心阶段,开发团队根据详细设计阶段的文档和规范进行编码工作。
在编码过程中,团队成员需要遵循编码规范,保证代码的质量和可读性,同时需要进行代码审查和单元测试,及时发现和修复问题。
5. 单元测试。
单元测试是针对软件中的各个单元(模块、函数等)进行的测试,旨在验证每个单元的功能和正确性。
单元测试需要覆盖各种边界情况和异常情况,确保单元的稳定性和健壮性。
6. 综合测试。
综合测试是将各个单元组合起来进行测试,验证软件整体的功能和性能。
在综合测试阶段,需要进行功能测试、性能测试、压力测试等,确保软件的各项指标符合要求。
7. 部署上线。
在软件通过测试并且达到客户要求的情况下,可以进行部署上线。
部署上线需要考虑软件的安全性、稳定性和可用性,确保软件能够正常运行并为客户提供价值。
8. 运维维护。
软件上线后,并不意味着开发工作的结束,而是进入了运维维护阶段。
在这个阶段,开发团队需要及时响应和处理用户反馈的问题,修复软件中的bug,同时也需要不断优化和升级软件,以满足用户不断变化的需求。
用WebSphere Studio Application Developer 测试版开发并测试一个完整的“Hello World” J2EE 应用程序介绍在这份教程里,我将用WebSphere® Studio Applica tion Developer 测试版来开发、测试、运行并调试一个完整的 J2EE 应用程序,该应用程序包括实体 EJB、会话 EJB、一个servlet、一个JSP™ 页和一个 HTML 主页。
我将广泛地关注 EJB 的开发。
整个应用程序将只使用 Application Developer 中的工具和在“现有的”可直接利用的运行时间。
为了严格遵循开发者的惯例,这个 J2EE 应用程序将会是一个“Hello World”应用程序,该应用程序里所有的组件都将被命名为HelloWorld。
那么,举个例子,您创建和部署的实体 bean 将被命名为HelloWorldEntity,会话 bean 将被命名为HelloWorldSession,servlet 被命名为HelloWorldServlet,等等。
这使我们能全神贯注于主要的思想而不至于太拘泥于细节,也使代码简单。
(下载源代码和清单) 我也为那些愿意用已创建的应用程序完成这份教程的人在下载中提供已创建的应用程序。
下载的 ZIP 文件包含完整的 EAR 模块和我已提供的用来创建 InstantDB 数据库表的一些有用的脚本。
用现成的包括创建数据库表脚本的版本,您可以简单地导入 EAR 模块,创建表,创建并配置服务器工程、实例和配置并且运行、调试和测试应用程序。
然而,我希望您能从零开始创建所有的东西,从而对开发环境和不同部分的无缝集成有更好的认识。
而后,我的目的就是突出 Application Developer 工具。
这篇文章的目的不是教您如何创建 J2EE 应用程序—我确信你们中很多人都是这方面的能手—而是为您展示工具如何紧密集成代码必需的全部步骤和 J2EE 应用程序,从而提高程序员的工作效率和满意程度。
八个步骤开发完整的J2EE解决方案J2EE平台由四个关键的部分定义:规范,实现参考,兼容性测试例和蓝图计划(BluePrint)。
蓝图描述分布式组件架构的最佳实践和设计指导方针。
本文介绍了基于Rational统一开发过程(Rational Unified Process)和设计图应用实例的八个步骤的J2EE开发。
通过阅读本文,你将更好地懂得许多重要的J2EE架构方面的主题,并能够将这些知识应用于扩展和修改这个简单的实例以解决你特定的逻辑问题(September 28, 2001)在商业世界里,我们使用J2EE解决商业问题来开发商业软件或给别的商业项目提供约定服务。
如果一个公司想利用多层架构开发一个电子商务站点,整个开发生命周期通常包括管理员,架构师,设计师,程序员,测试者,和数据库专家。
为了使各个不同的部分能更有效的协同工作,他们通常需要遵循一定的软件开发流程。
经典的开发流程包括瀑布模型,快速原型开发(RAD)和极限编程(XP)。
在本文中我们将聚焦于统一开发过程(RUP)。
RUP提供一种经过检验的方法来分配任务和责任给不同的角色。
其目标是保证我们生产出可预期,可预算,符合我们需求的高质量的软件。
我之所以喜欢在J2EE的开发过程中使用RUP出于以下三个原因:首先, RUP 是以架构为中心的;它在为大规模开发提交资源之前开发出一个可执行的架构原型。
其次, RUP是基于迭代并基于架构的。
其架构通常包括框架和基础结构,可以反复地加入新的组件来定制的扩充系统的功能,而这些都不会影响到系统的其它部分。
最后RUP使用行业标准语言—UML来为系统架构和组件建模。
RUP有四个不同的开发阶段:初始阶段,细化阶段,构造阶段,和交付阶段。
本文从技术的观点出发,着重强调架构的思想,涵盖了J2EE开发所涉及到的八个基本的步骤。
1.需求分析需求分析描述了系统应该做什么,不应该做什么,在此基础上开发者和客户可以达成共识。
你可以将功能性的需求如业务概念,领域术语,用例和用户界面(UI)形成文档。
非功能性的需求,例如性能,事务等可以在辅助性的需求文档中指出。
你可以在纸上或者以HTML的形式创建高水准的用户界面,这取决于你参与项目的深度。
图1表示一个典型的电子商务系统中的两个示例性的用例图。
viewOrder 用例告诉我们用户通过Web界面登录系统,查看订单列表,点击一个链接查看购物订单的详细内容。
addLineItems用例则告诉我们用户浏览商品目录,选择自己感兴趣的商品,将它们添加到购物清单中。
2 面向对象的分析分析员产生如下问题域模型:类,对象和交互。
你的分析应该独立于任何技术或实现细节,包含概念上的模型。
对象分析理解问题并获得问题域的相关知识。
由于业务过程的变化比信息技术慢得多,你得确保你的域模型不涉及技术细节。
上述两个步骤—需求分析和面向对象分析—不是J2EE规范;它们在许多面向对象方法论中很常见。
图2更为详细地显示了一个宠物商店应用实例的对象分析模型。
它图解了我们可以从需求分析用例图中所能得到的一些主要的概念。
我们将这些概念以对象和他们之间的关系将之模型化。
Figure 2. 更高层分析模型:宠物店领域需求分析和对象分析的结果是J2EE架构开发的切入点。
为了开发一个架构,你应当选择纵向联合部分—通常是一个主要部分,例如订单域对象模型—作为对象设计,实现,测试和部署(vertical piece,一个RUP概念,是系统的一部分。
起始点是用例图的一个子集,例如图1所示,和图3所示的域分析模型。
Vertical piece的实施结果是一个功能齐全的小的系统,它包括所有层,例如UI层的JSP,中间业务层对象如EJB,还有数据库)。
你可以将原型系统中的经验应用于域对象,让它作为对象设计阶段的设计指导方针。
Figure 3. 详细对象分析模型:购物单3.架构规格说明经过了以上两步,业务域中的问题和需求应该很清晰了。
现在我们将精力转向技术策略和架构。
架构是一个总体设计,它包括系统中一起定义的所有部分:结构,接口和通信机制。
我们可以更进一步将架构分为企业级架构和应用级架构。
企业级系统架构:企业型架构覆盖了硬件,软件,网络技术,开发,测试,产品环境等等。
这是企业的长远投资。
在开发之前,你的评估一下现有的软硬件设施,如果它们不能很好地支持J2EE可能还得增加一些新的组件或者升级现有的系统。
你得彻底地对调查硬件环境,包括电脑,路由器,交换机和网络的拓扑结构,它们都有可能对系统的性能和可靠性带来影响。
图4显示了一个可能存在的多层网络拓扑结构。
Figure 4. 企业级架构: 网络拓扑结构图4所示的多层企业级架构有如下主要的组成部分:* 客户端的Web浏览器, 它有可能位于客户端所在组织的防火墙的后面?* HTTP服务器是面向公众的服务器端? 它通常位于子网之中?* Web容器, 包含表示层, 可能还有业务逻辑组件?* 应用服务器, 包含业务逻辑组件?* 关系数据库管理系统(RDBMS)和数据库, 包含数据和数据逻辑?你所用的系统架构取决于你对于安全, 性能, 可靠性的要求, 当然还得考虑组织的经济状况. 对于最低端的应用, 你可以合理地在仓库里使用二手电脑,用电话线连接. 网上有许多开源的操作系统, Web服务器, 应用服务器, 数据库管理系统可用. 那么这个系统你可能只需要付出几百美元和熬几个通宵而已.对于高端客户, 例如华尔街上的金融机构, 可能要求系统能持续地支持安全, 高吞吐量的事务处理, 和不可预知的网络流量. 在这种情况下, 通常你需要由包含Web服务器和应用服务器的n层架构来配置成集群以提高容错性.同样你也得考虑软件组织, 包括Web服务器, 安全管理软件, 应用服务器,域名管理服务器, 数据库管理系统, 和第三方软件组件. 如果你还没有购买应用服务器, 选择一个J2EE提供商是整个评估过程中的一个重要方面. 不同的提供商对于J2EE的实施区别很大, 有些提供商仅仅支持J2EE的旧版本. 另外, 有些Web容器和应用容器可能比较超前. 与J2EE规范的实施不同的是, 许多提供商可能也同时卖J2EE组件或框架. 选择一个提供支持的稳定的J2EE供应商也很关键. 你能购买或开发的系统级常用功能包括:事务?网络化和本地化?集群和对象分布?会话管理?应用性能的衡量和profilling?消息?工作流管理?入口和个性化管理?层与层之间的通信协议?安全和防火墙?应用级架构构建于企业级系统架构之上的应用架构与特定的项目或应用有关. 基础组织完成后, 架构师就得考虑特定的应用了. 如果你的企业架构只是部分支持J2EE的旧版本, 你可能得首先升级你的系统. 如果你基于预算或时间的考虑不能升级你的系统, 你就得考虑清楚由于使用旧版本带来的一些限制. 构建可复用的企业级组建也很重要, 在考虑它的可用性之前你就得考虑其可复用性. 最终的目标是满足客户的需求—在某个时间完成项目.架构师不是设计师; 架构和设计是两个不同的概念. 应用架构的范围包括系统的主要结构, 架构设计模式和框架, 依赖于这些你可以添加组件. 架构所关注的是非功能性的, 而设计关注的是你将域对象模型转换为技术上的对象模型所用到的逻辑用例. 应用架构是项目结构, 特殊的应用. 应用架构开发过程中通常需考虑的部分包括:层之间的功能?模型域对象?可继承的系统保存什么(What legacy system to save)?购买什么样的软件组件?购买什么组件?如何集成第三方组件?图3所示购物单域对象示范了如何对域对象建模. 如今的Java技术允许你进行分布式开发, 域对象作为开发者管理的持久化对象位于Web容器, 应用服务器包含EJB, 关系数据库管理系统存储数据.在宠物商店BluePrint中, 我们将订单对象设计为一个实体Bean, 一个详细的对象, 一个数据访问对象, 如图5和其后的图6所示. 当你看到这些的时候, 你可能就明白了架构的重要性. 试问一下在模型分析中一个域对象映射到那么多对象, 如果你改变了设计会发生什么. 你可能听说了一些EJB的优点, 也明白不同提供商的实现的性能也是大不相同. 一项新技术出现后, 在利用其进行大规模设计之前你需要进行研究并做一些辅助性的工作. 你可以将在设计和实现域对象模型的vertical pieces中学到的知识应用于许多其它的域对象的设计之中. 这就是架构开发相关内容.Figure 5. 购物单对项涉及模型在J2EE的早期, 有些面向对象设计师试图将域对象映射为实体Bean并通过层传递它们. 他们设计出不错的UML图, 但结果由于不必要的网络流量导致系统速度非常慢.如果在对象分析后不进行架构开发, 缺乏对新技术的完全理解就直接进入对象设计,几乎总是会导致项目的失败.架构交付由于J2EE架构是一个相对较新的课题, J2EE架构的交付不太好定义. 以宠物商店的应用为例, 很难明确什么时候架构开发结束, 设计开始. 文档开始于对应用架构所作的高级别的检查, 对MVC设计模式的讨论和对架构的总体理解. 低层次的文档适用于源程序. Sun的J2EE企业架构设计证明要求UML图中包括所有可交付部分. 然而这些符号只存在于类图, 组件图, 和一些对象交互图中. 这在现实世界中的J2EE应用中远远不够. 为了开始, 架构规范和过程至少需要下面的部分:* 系统架构系统, 描述已有的硬件,? 软件, 网络技术和其他组件* 应用架构文档, 描述应用的主要结构, 包括所有架构中所有重要组件的逻辑试图, 用例, 可复用的组件?* 新组件的设计指导方针,? 描述所有涉及指导方针, 架构定义, 解释所有定义, 描述如果应用替代品时应采用的时序. 这些指导方针应当包括所有重要的, 基本的, 决定性的部分, 使得新的组件设计不会影响现有系统的架构完整性.* 一个用于评估新技术的可运行的架构原型; 在开发和部署J2EE应用中获得经验; 创建架构的框架; 通过?权衡性能, 可测量性, 难易度来评估风险; 向项目客户提供方案可行性报告.在解决了一些J2EE问题, 获得了更多的经验后, 原型就变得不是很重要了, 一些UML图和一些设计指导方针就足够了.4. 对象设计设计技术以架构规范作指导, 是分析结果的扩充和进一步体现. 分析阶段的域对象模型与技术细节无关, 而对象设计则与技术要素有着密切的关系,包括平台类型, 语言, 架构开发阶段所选择的提供商. 分析阶段可能只关注目标, 但设计阶段就得脚踏实地了. 除非必须保持基本属性和行为, 否则不要轻易让你的设计受到业务对象的影响.以架构设计为指导, 详细设计应考虑到所有类的式样, 包括实现细节, 详细的接口, 操作的伪代码或者解释的文字性描述. 说明书要足够详细, 包括模型图, 它提供所有必要的编码信息. 有些开发工具有自动生成的功能, 你可以根据面向对象图表生成代码骨架. 图5和图6分别在较高层次和详细的对象设计层次上图示了一些域模型. 注意由于存根和骨架对于设计师和程序员是透明的因而它们通常不出现在图表中. 我将它们包含在图6中用于阐述EJB基本概念.IMG upload/forum/20031219172210.jpg[/IMG]Figure 6. 对项涉及模型: 订单EJB详细设计在详细的对象设计完成后, 你也就完成了域对象的对象关系映射. 这么做的理由是尽管面向对象方法论现在比较先进, 但最流行, 最成熟的持久化存储还是关系型的. 另外在许多案例中客户先期所用的是关系数据库管理系统, 最好能保留他们的已有投资. 所以将于对象模型转换为关系模型或数据表是很重要的. 有许多容器管理的持久化工具, 但它们还是不能替代好的关系数据库设计.5.实现有了好的架构和详细设计后, 实现应该是一个明确的任务。