1、系统分析师考试复习资料系统分析师考试复习资料 南昌大学计算中心 武夷河 E_Mail: 说明:说明:本文所有资料均收集于网络,由本人整理而成,在此对原作者表示衷心的感谢!网友们可自由传播此资料,但不得用于商业目的。1 开发技术:语言与平台.6 JavaBean 组件模型特点.6 Enterprise JavaBean(EJB)组件模型特点:.6 JSP 胜过 servlet 的关键的优点:.6 J2EE 的重要组成部分:.6 RMI 和 RPC 的区别:.7 XML 和 HTML 的主要区别:.7 XML 技术和 JSP 技术集成的方案:.7 XML 与 JSP 技术联合的优越性:.7 XML
2、 的特点:.7 SAX(Simple API for XML)和 DOM(Document Object Model).7 什么是 DOM?.7 什么是 SAX?.8 什么类型的 SAX 事件被 SAX 解析器抛出了哪?.9 什么时候使用 DOM?.9 什么时候使用 SAX?.9 HTML 的缺点:.10 经验结论.10 用 ASP、JSP、PHP 开发的缺陷:.10 XML 的优缺点:.10 XML 主要有三个要素:模式、XSL、XLL。.10 2 Web Service 相关技术.10 Web Service.10 创建简单的 Web Service 的方法:.11 Web Service
3、 主要目标是跨平台和可互操作性,其特点:.11 Web Service 应该使用的情况:.11 UDDI(统 一 描 述、发 现 和 集 成 Universal Description,Discovery,and Integration).11 SOAP.12 Web Service 技术(SOAP、UDDI、WSDL、EBXML).12 3 软件工程、软件架构及软件体系结构.12 3.1 面向对象技术.12 一组概念.12 OOA 的主要优点:.12 OOA 过程包括以下主要活动:.12 2 3.2 UML:.12 UML 包含了 3 个方面的内容.13 UML 提供了 3 类基本的标准模型
4、建筑块.13 UML 规定四种事物表示法.13 UML 提供的建筑块之间的基本联系有四种.13 UML 图形提供了 9 种图形.13 UML 规定了语言的四种公共机制.13 UML 的特点:.13 USE CASE:.13 对象类图:.13 交互图:.14 状态图:.14 组件图和配置图:.15 UML 开发工具:ilogix Rhapsody.15 Rational Rose 家族成员有:.15 3.3 OMT 方法:.15 OMT 方法有三种模型:对象模型、动态模型、功能模型。.15 三者的关系:.15 3.4 软件工程理论:.16 软件体系结构:.16 统一软件开发过程 RUP:.16
5、把建立原型系统做为一种可能采取的策略的主要理由如下:.16 原型法的主要优点:.16 面向对象方法的优点:.16 一个可复用构件应具备的条件是:.16 版本控制工具:.16 软件失败的原因:.16 瀑布模型的特点:.17 软件能力成熟度模型:.17 ISO 9001 与 CMM 的关系:.18 提高软件质量和可靠性的技术大致可分为两类:.18 软件配置的任务:.18 软件复用的目的:.18 软件复用的三个层次:.19 软件成分复用的级别:.19 3.5 软件测试.19 3.5.1 软件测试观点:.19 3.5.2 测试方法和测试工具解决方案.19 相关工具.19 1.嵌入式软件测试工具-LOG
6、ISCOPE.19 验证、评审和改进代码.20 测试的优化.21 2白盒工具-NuMega DevPartner Studio.22 3.黑盒工具-QACenter.24 3 4数据库测试数据自动生成工具-TESTBytes.26 使用 Rational Robot 实现自动化测试.27 自动化测试的步骤.28 自动化测试过程.28 增强和改进录制的自动化测试脚本.29 执行自动化测试脚本完成自动化测试.29 应用性能优化工具 EcoScope.29 贯穿整个应用生命周期的性能分析.29 确保成功布署新应用.30 传统的软件测试:.31 现代的软件测试:.31 使用测试工具的好处.32 软件测
7、试的环节:确认和和验证。.32 程序静态分析的方法:.32 静态测试工具:(不需要执行程序).33 动态测试工具:(需要执行程序).33 测试数据自动生成工具:.33 Ratioanl Robot 帮助你实现有效的自动化测试.33 Robot 对录制测试脚本的支持.33 Robot 支持的环境.33 测试的验证点.33 Robot 的测试验证点.34 Robot 对增强、改进测试脚本的支持.34 灵活的编程语言.34 Robot 灵活的满足了客户需要的扩展性.35 Robot 对执行测试脚本的支持.35 Robot 功能特点的总结.36 WinRunner:强大的企业级自动化测试工具.36 轻
8、松创建测试.37 插入检查点.37 检验数据.37 增强测试.37 运行测试.38 分析结果.38 维护测试.38 帮助你的应用程序为无线应用作准备.38 MVC 模式介绍.39 4 数据库、数据仓库、数据挖掘.40 4.1 数据库理论与方法.40 数据库优化问题:.40 分布式数据库的问题:.40 全功能分布式数据库的规则和目标.40 4.2 数学理论基础.41 函数依赖:.41 4 最小函数依赖集合。.42 多值依赖:.42 多值依赖具有以下性质:.43 多值依赖与函数依赖的两个基本的区别:.43 关系范式:.44 模式分解.44 试叙 DBMS 对数据库的维护功能。.45 数据字典的内容
9、和作用是什么?.45 试叙事务的四个性质,并解释每一个性质对 DBS 有什么益处?.45 分布式数据库系统有哪些优点和缺点?.46 分布式数据库中,数据分配有策略?数据分片有策略?数据分片的准则?.46 在典型的分布式 DBMS 中,软件模块分成哪三级?.46 OLTP 和 OLAP 系统的区别:.47 TPC 基准程序:.47 DBMS 的基本功能:.47 一般的数据备份操作有三种:.47 4.3 数据仓库:.48 数据仓库的数据模式:星型模式和雪花模式。.48 数据仓库体系结构:.48 三种数据仓库模型(从结构的角度看):.48 数据仓库系统的开发:.49 OLAP(联机分析处理)的基本功
10、能:.49 4.4 数据挖掘:.49 5 企业应用集成.49 VOD 视频点播服务器的组成:.49 现代企业计算解决方案所需的 8 种基本服务支持.49 6 网格技术.49 网格在实际中的应用.49 网格的含义和特性.50 网格的应用需求.50 科学研究(EScience).50 电子商务(EBusiness).50 电子政务(EGovernment).50 电子娱乐(eEntertainment).51 教育领域(EEducation).51 网格面临的挑战.51 网格应用发展趋势.51 走开放标准路线.52 多技术融合.52 构建网格操作系统.52 形成信息综合服务商.52 服务网格是重要
11、产品方向.52 相关链接.52 7 信息安全(网络安全).53 5 7.1 入侵检测系统:.53 入侵检测系统技术:.53 发现入侵检测一般采用如下两项技术:.53 入侵检测系统的分类:.53 入侵检测的主要方法:.54 入侵检测系统的结构及标准化:.55 入侵检测系统面临的主要问题.55 入侵检测系统的发展趋势.55 小结:.56 Kerberos:.57 7.2 PKI 技术.57 组成:.57 PKI 核心-认证中心.58 认证中心(CA)简介.58 CA/RA 简介.58 中心的功能.59 7.3 VLAN 技术:.59 0 VPN 介绍:(VPN 工作于第 3 层).59 1、VLA
12、N 概述.60 VPN 的安全协议:.61 1 PPTPPoint to Point Tunnel Protocal(点对点隧道协议).61 2 L2TPLayer2 Tunneling Protocol(第二层隧道协议).61 3 IPSECInternet Portocol Security(因特网协议安全性).61 4 SOCKs.61 VLAN 在交换机上的实现方法,可以大致划分为 4 类:.62 1 基于端口划分的 VLAN.62 2 基于 MAC 地址划分 VLAN.62 3 基于网络层划分 VLAN.62 8 基础知识.63 进程通信:.63 并行处理:.63 6 1 开发技术:
13、语言与平台开发技术:语言与平台 JavaBean 组件模型特点组件模型特点:JavaBean 组件模型是面向向客户端的组件模型;它支持可移植和可重用的 Java 组件的开发;JavaBean 组件可以工作于任何 Java 程序应用开发工具中;JavaBean 组件总是在程序运行时被实例化;JavaBean 支持可视化及非可视化的组件模型。Enterprise JavaBean(EJB)组件模型特点:)组件模型特点:EJB 是面向服务端的 JavaBean 组件模型。它是一种特殊的、非可视化的 JavaBean,运行在服务器上;EJB 组件模型主要包括 EJB Server、EJB Contai
14、ner、EJB Object 发及诸多相关特性;EJB Server 提供 EJB 组件运行环境,它负责管理和协调应用程序资源的分配;EJB Container 是用于管理 EJB Object 的设备,它负责 EJB 对象的生命周期的管理,实现 EJB 对象的安全性,协调分布式事务处理,并负责 EJB 对象的上下文切换;EJB 规范提供了这样的一种机制,你可以通过在运行时设置相应的属性值来定义每一个EJB 对象的运行状态;Deployment Descriptor 被用于设置 EJB 对象的运行状态。JSP 胜过胜过 servlet 的关键的优点:的关键的优点:JSP 是以显示为中心的,它为
15、 Web 显示开发人员提供了更加自然的开发模式;JSP 使人们把显示和内容分隔开成为可能;JSP 可以帮助组织 Web 应用物理状况。J2EE 的重要组成部分:的重要组成部分:EJB:一个技术规范:EJB 从技术上而言不是一种产品 EJB 是一种标准描述了构建应用组件要解决的:可扩展(Scalable)分布式(Distributed)事务处理(Transactional)数据存储(Persistent)安全性(Secure)JDBC:全称为 Java DataBase Connectivity standard,它是一个面向对象的应用程序接口(API),通过它可访问各类关系数据库。JDBC 也
16、是 java 核心类库的一部分。JDBC 的最大特点是它独立于具体的关系数据库。Java RMI:RMI(Java Remote Method Invocation)是 java 解决分布式应用的最初方案,它允许运行在一个虚拟机上的对象调用另一台虚拟机上对象的方法,提供了程序间的远程调用的机制。RMI 允许编写分布式对象,可以使得对象在内存中、跨 Java 虚拟机和跨物理设备进行通信。Java IDL:在 Java 2 中引入 JavaIDL,使得利用 OMG IDL 能够定义服务对象的基本功能,并且将 IDL 根据 CORBA 规范的要求,映射到 Java 语言,并以此开发出标准的具有互 7
17、 操作性和可连接性的分布式应用。JavaIDL 使分布式、支持 Web 的 Java 应用可以基于IIOP 协议透明地调用远程服务。JNDI:Java Naming and Directory Interface,用于定位查找服务对象都是 J2EE 体系的标准服务。JMAPI(JAVA Management):Java 管理 API,是指各种 Java 语言类和接口的集合,用它可以开发系统、网络及服务等管理性方面的应用程序。JMS:Java Message Server。JTS:Java Transaction Service(Java 事务服务),Java 中 进行分布式事务管理的技术标准,
18、它是基于 CORBA 对象事务服务(CORBA Object Transaction Service)的。JSA(IAVA Security API):JSA 是一个内存映射到共享内存的文件,可以让多个进程(即多个 JVM)访问它。RMI 和和 RPC 的区别:的区别:RMI 是面向对象的,而 RPC 是基于过程调用的。由于 RMI 面向对象的特性,RMI 调用可以直接将对象在调用的两端之间进行传递,不但可以传送数据,而且还可以传递方法,扩展了 RMI 的使用;另外 RMI 还支持两个 RMI 对象之间的方法回调(callback)。XML 和和 HTML 的主要区别:的主要区别:XML 是元
19、标记语言,用户可以自己定义所需要的标记;XML 描述的是结构和语义;XML 技术和技术和 JSP 技术集成的方案:技术集成的方案:以 XML 技术为前端显示层或者是后端数据层,JSP/JMS/Servlet/EJB 等 J2EE 技术为中间处理层;JSP 等 J2EE 技术接受客户端的请求,从后端数据层中获得数据,经过加工处理之后,以 XML/XSL/XSLT/的形式返回客户端。在这个模型,JSP 技术充当了逻辑控制、计算处理的角色,而 XML 充当了显示数据、存储数据、传递信息流的功能;Tag Libraries 在 JSP 程序中的大规模应用。XML 与与 JSP 技术联合的优越性:技术联
20、合的优越性:简单性 可扩展性 便携性 多样性 XML 的特点:的特点:XML 和 CORBA、DCOM 这些技术并不冲突,XML 可以为它们做传递信息、资料桥梁;XML 使用方便;XML 是纯文本形式,阅读方便,可用编辑器直接编写,可以直接透过 HTTP或 SMTP 等通信协议传送,开放式标准,对数据的描述,有进行数据挖掘,编排的便利。但是处理速度较慢。SAX(Simple API for XML)和和 DOM(Document Object Model)都是为了让程序员不用写一个解析器就可以访问他们的资料信息。通过利用 XML 1.0格式保存信息,以及使用 SAX 或者 DOM APIs 你
21、的程序可以使用任何解析器。这是因为使用他们所喜爱的语言开发解析器的开发者必须实现 SAX 和 DOM APIs。SAX 和 DOM APIs 对多种语言中都可以实现(Java,C+,Perl,Python,其它.)。所以 SAX 和 DOM 都是为了同样的目的而存在,这就是使用户可以利用任何编程语言访问存入 XML 文档中的信息(要有一个那种编程语言的解析器)。虽然他们在提供给你访问信息的方法上大不相同。什么是什么是 DOM?DOM 可以让你以分层次对象模型来访问储存在 XML 文档中的信息。DOM 生成一棵节点树(以 XML 文档的结构和信息为基础)你可以通过这棵树来访问你的信息。在 XML
22、 文档中的文本 8 信息转变成一组树的节点。请看下图:不管你的XML文档中的信息的类型(不管是表格数据,或是一列items,或者只是文档),DOM 在你创建一个 XML 文档的文档对象时创建一棵节点树。DOM 强迫你使用树状模型(就像 Swing TreeModel)去访问你的 XML 文档中的信息。这种模式确实不错因为 XML 原本就是分层次的。这也是 DOM 为什么可以把你的信息放到一棵树中的原因。上图是过分简单的,因为在 DOM 中,每一个元素节点实际上都有一系列的其他节点作为它的孩子。这些孩子节点可以包含文本值或者是其他元素节点。乍看起来,通过遍历访问一个元素的所有孩子节点来访问这个节
23、点的值是没有必要的(举例来说:节点 Nazmul,Nazmul 是值)。如果每个元素只有值的话,这确实是没有必要的。但是,元素可能含有文本数据或者其他元素;这是你要在 DOM 中做额外的工作来获取元素节点值的原因。通常当你的文档中只有纯数据时,把所有的数据压成一个“块“放到字串中并让 DOM 把那个字串当成某个特定元素节点的值返回是适当的。这种方式并不适合如果在你的 XML 文档中的数据是个文档(比如像 WORD 文档或者 FRAMEMAKER 文档)在文档中,元素的顺序是非常重要的。对于纯数据(像一个数据库表)元素的顺序是不要紧的。之所以 DOM 保持从 XML 文档中读出的元素的顺序,因为
24、它把所有的事物都当成文档来处理。文档对像模型的叫法由此而来。如果你计划用 DOM 做为 JAVA 对象模型用于你存储在 XML 文档中的信息,那么你不需要考虑 SAX。可是如果你发现 DOM 不是一个可以用于处理 XML 文档信息的好的对象模式,那么你可能想看看 SAX 了。在一些必须使用自定义对象模型的案例中使用 SAX 是非常普遍的。说一句让事情看来有些糊涂的话,你也可以在 DOM 的基础之上创建自己的对象模式。面向对象真是个好东东。什么是什么是 SAX?SAX 让你访问储存在 XML 文档中的信息,不是通过节点树,而是一系列的事件。你会问,这有什么益处?回答是,SAX 选择不在 XML
25、文档上创建 JAVA 对象模型(像 DOM 做的那样)。这样使得 SAX 更快,同时使下面所述成为必要:创立你自己的自定义对像模型 创建一个监听 SAX 事件的类同时,创建你自己的对象模型。注意这些步骤对 DOM 而言是不必要的,因为 DOM 已经为你创建了一个对象模型(将你的信息用一棵节点树表示)。在使用 DOM 的情况下,解析器做了绝大多数事情,读入 XML 文档,在这基础之上创建JAVA 对象模型,然后给你一个对这个对象的引用(一个 Document 对象),因而你可以操作使 9 用它。SAX 被叫做 Simple API for XML 不是没有原因的,她真的很简单。SAX 没有期待解
26、析器去做这么多工作,所有 SAX 要求的是解析器应该读入 XML 文档,同时根据所遇到的 XML文档的标签发出一系列事件。你要自己写一个 XML 文档处理器类(XML document handler class)来处理这些事件,这意味着使所有标签事件有意义还有用你自己的对象模型创建对象。所以你要完成:控制所有 XML 文档信息的自定义对象模型(或者源文档在这里的写法从来没有见过,或者怀疑源文档在这里有排版错误,先这么翻了)一个监听 SAX 事件(事件由 SAX 解析器读取你的 XML 文档时产生)的文档处理器,还有解释这些事件创建你自定义对象模型中的对象如果你的对象模型简单的话那么 SAX
27、在运行时会非常快。在这种情况下,它会比 DOM 快,因为它忽略了为你的信息创建一个树形对象模型的过程。从另一方面来说,你必须写一个 SAX 文档处理器来解释所有的 SAX 事件(这会是一件很繁重的工作)。什么类型的什么类型的 SAX 事件被事件被 SAX 解析器抛出了哪解析器抛出了哪?这些事件实际上是非常简单的。SAX 会对每一个开始标签抛出事件,对每一个结束标签也是如此。它对#PCDATA 和 CDATA 部分同样抛出事件。你的文档处理器(对这些事件的监听器)要解释这些事件同时还要在他们基础之上创建你自定义的对象模型。你的文档处理器必须对这些事件做出解释,同时这些事件发生的顺序是非常重要的。
28、SAX 同时也对processing instructions,DTDs,comments,抛出事件.但是它们在概念上是一样的,你的解析器要解释这些事件(还有这些事件的发生顺序)以及使他们有意义。什么时候使用什么时候使用 DOM?如果你的 XML 文档包含文档数据(例如,Framemaker documents stored in XML format),那么 DOM 就是你的解决方案的最自然选择。如果你要创建一些类似于文档信息管理的系统,那么你不得不处理大量的文档数据。Datachannel RIO 产品就是这么一个例子,它可以索引和组织各种类型文档资源中的信息(例如 Word 和 Exce
29、l 文件)。在这种情况下,DOM 是非常合适程序去访问存贮在这些文档中的信息的。然而,如果你主要处理的是结构化的数据(在 XML 中的序列化的 JAVA 对象 the equivalent of serialized Java objects in XML),DOM 不是最好的选择。那就是 SAX 会比较合适的地方。什么时候使用什么时候使用 SAX?如果在你 XML 文档中的信息是机器易读的(和机器生成的)数据,那么 SAX 是让你可以访问这些信息的合适的 API。机器易读和生成的数据类型包含像下面这些东西:存成 XML 格式的 Java 对象属性用一些以文本为基础的查询语句(SQL,XQL,
30、OQL)表示的查询由查询生成的结果集(这也许包含关系型数据库表中的数据编码成 XML).这么看来机器生成的数据是你一般要在 java 中生成数据结构和类的信息。一个简单的例子是包含个人信息的地址簿,在上图所示。这个地址簿 xml 文件不像字处理器文档,它是一个包含已经被编码成文本的纯数据的 XML 文档。当你的数据是这种样式,你要创建你自己的数据结构和类(对象模型)来管理操作以及持续保存这些数据。SAX 容许你快速创建一个可以生成你的对象模型实例的处理器类。一个实例是:一个 SAX 文档处理器。它完成的工作有读入包含我的地址薄信息的 XML 文档,创建一个可以访问到这些信息的 AddressB
31、ook 类。SAX 指南告诉你该怎么做到这些。这个地址薄XML 文档包含 person 元素,person 元素中有 name 和 email 元素。我的 AddressBook 对象模型包括下面的类:10 AddressBook 类,Person对象的容器Person 类,String 型的name和email的容器这样我的“SAX 地址簿文档处理器”可以把 person 元素转变成 Person 对象了,然后把它们都存入 AddressBook 对象。这个文档处理器将 name 和 email 元素转变为 String 对象。HTML 的缺点:的缺点:链接丢失后不能自动纠正;动态内容需要下
32、载的部件太多;搜索时间长;HTML 缺乏对双字节或多国文字的支持,或者说支持不够;HTML 可扩展性差。经验结论经验结论 你写的 SAX 文档处理器(SAX document handler)做了将元素映射为对象的工作。如果你的信息被结构化成可以容易创建这样的映射,你应该使用 SAX API。从另一方面来说,如果你的数据更适宜用树来表示那么你应该使用 DOM。XML 在 ASP 中用 DOM:用用 ASP、JSP、PHP 开发的缺陷:开发的缺陷:可扩展性不理想;重复性与高可用性考虑较少;系统集成不够方便;在性能上有待提高。XML 的优缺点:的优缺点:可以处理数据结构,但决不是一个全面向对象语言
33、;XML 以字符来标示出数据结构,免不了使用大量标签和文字分隔符号,而给数据交换增加额外负担;XML 并不提供对象间的连接;XML 的元素可以有多个属性,但属性不能隶属于多个元素;XML 没有继承和运算等面向对象的特征。易为人懂,与流行于 INTERNET 上协议(如 HTTP)相容;易于扩充,有利于快速开发软件;已有多个免费 XML 分析器可以把 XML 文件转换成对象结构。XML 主要有三个要素:模式、主要有三个要素:模式、XSL、XLL。模式规定了 XML 文件的逻辑结构,定义了 XML 文件中的元素、元素的属性以及元素和元素的属性之间的关系,它可以帮助 XML 的分析程序校验 XML
34、文件标记的合法性;XSL 是用于规定 XML 文件样式的语言,它能在客户端使 WEB 浏览器改变文件的表示法,从而不需要再与服务器进行交互通信;XLL 将进一步扩展目前 WEB 上已有的简单链接。2 Web Service 相关技术相关技术 Web Service 是建立可互操作的分布式应用程序的新平台。Web Service 的基础是 XML 的消息传递,其传递是通过标准的网络协议,如 HTTP。组成 Web Service 平台的三个技术:XML 和 XSD 11 XML 是 Web Service 平台上表示数据的基本格式。XML Schema(XSD)定义一套标准的数据类型。SOAP
35、SOAP 简单对象访问协议提供了标准的 RPC 方法来调用 Web Service。SOAP 规范定义了SOAP 消息的格式以及如何通过 HTTP 协议来使用 SOAP。SOAP 也是基于 XML 和 XSD,XML是 SOAP 的数据编码方式。WSDL Web Service 描述语言(WSDL),是基于 XML 的语言,用于描述 Web Service 及其函数、参数和返回值。创建简单的创建简单的 Web Service 的方法:的方法:供应商选择自己的编程语言,中间件和开发平台开发、装配 Web Service;各供应商定义一个 Web Service 描述语言(WSDL),通过统一语言
36、和标准来建立 Web Service;供应商在 UDDI 注册,UDDI 能让供应商发布 Web Service,并能为他们的软件找到由其它供应商提供的服务,也就是大家资源共享;用户通过 UDDI 搜索他想要服务;用户通过 SOAP 来调用 Service 的操作。Web Service 主要目标是跨平台和可互操作性,其特点:主要目标是跨平台和可互操作性,其特点:完好的封装性;松散耦合;使用协约的规范性;使用标准协议规范;高度可集成能力;开放性。Web Service 应该使用的情况:应该使用的情况:跨防火墙的通信;应用程序集成;B2B 的集成;软件和数据重用。UDDI(统 一 描 述、发(统
37、 一 描 述、发 现现 和 集 成和 集 成 Universal Description,Discovery,and Integration)是一套基于 Web 的、分布式的、为 Web Service 提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的 Web Service 注册,以使别的企业能够发现的访问协议的实现标准。UDDI(统一描述、发现和集成):Web Service 的体系架构中包括三个角色:服务提供商,服务请求者、服务注册器。角色间主要有三个操作:发布、查找、绑定。UDDI 的核心是 UDDI 商业注册。UDDI 商业注册所提供的信息包括三个部分:白页、黄
38、页和绿页。12 SOAP 是一种基于 XML 的不依赖传输协议的表示层协议,用来在应用程序之间方便地以对象的形式交换数据。SOAP 技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。Web Service 技术(技术(SOAP、UDDI、WSDL、EBXML)J2EE 技术(JNDI EJB JMS JavaMail JDBC JSP Servlet RMI-IIOP)JTA 事务处理 JMS 消息服务 JAAS 安全服务 按照对基于 J2EE 规范的企业应用系统逻辑层的划分,通常将分布式的编程环境划分为如下四种类型:EJB 容器;WEB 容器;客户应用容
39、器;Applet 容器。3 软件工程、软件架构及软件体系结构软件工程、软件架构及软件体系结构 3.1 面向对象面向对象技术技术 一组一组概念概念 重用一组对象常常称为对象池化。SAX(Simple API for XML):是事件驱动模型。DOM(Document Object Model):是文档对象模型。LDAP(Lightweight Directory Access Protocol):轻量目录访问协议。DOM 要装入整个文档并对该文档进行解析会很慢且占用大量内存。SAX 是工作在数据流之上,在数据流经过时对其进行处理。它消除了在内存中构建数据树的需要,但不允许开发者实际更改原始文档中
40、的数据。OOA 的主要优点:的主要优点:加强了对问题域和系统责任和理解;改进与分析有关的各类人员之间的交流;对需求的变化具有较强的适应性;支持软件复用;贯穿软件生命周期全过程的一致性;实用性;有有利于用户的参与。OOA 过过程包括以下程包括以下主要主要活动活动:发现对象,定义它们的类;识别对象的内部特征,定义属性,定义服务;识别对象的外部关系;划分主题,建立主题图;定义 use case,建立交互图;建立详细说明;原型开发。3.2 UML:由 Grady Booch、Jacobson、Rumbaugh 合作,共同努力,提出的。13 UML 包含包含了了 3 个方个方面面的的内容内容:模型的概念
41、和表示法、语言的公共机制、对象约束语言。UML 提供提供了了 3 类类基本基本的标的标准准模型建模型建筑块筑块:事物、联系、的图形。UML 规定四种规定四种事事物表示物表示法法:结构性事物、行为性事物、成组性事物、注释性事物。结构性事物指模型的静态部分,如对象类、USE CASE;行为性事物指模型的动态部分,如交互、状态机;成组性事物指模型的组织部分,如包;注释性事物指模型的解释说明部分,如注释。UML 提供提供的建的建筑块之间筑块之间的的基本基本联联系系有有四种四种:依赖、关联、泛化、实现。UML 图形提供图形提供了了 9 种图形种图形:用于建立系统模型:类图、对象图、USE CASE 图、
42、顺序图、协同图、状态图、活动图、组件图、配置图。UML 规定规定了语言的了语言的四种公共机制四种公共机制:说明、装饰、通用划分、扩展机制。扩展机制,允许使用人员根据需要自定义一些构造型等语言成分。UML 规定可以自定义 3 种语言成分:构造型、标记值、和约束。构造型用于对模型元素分类,在既有的基本模型元素一定义新模型元素。标记值和约束直接对单个的模型附加一些性质和语义。UML 的特点:的特点:统一的标准;面向对象;可视化、表达能力强大;独立于过程;容易掌握使用;使用 UML 有助于处理软件开发中的各种风险;UML 不是一个独立的软件工程方法,而是面向对象软件工程方法中的一个部分;UML 只是一
43、种标准的系统分析和设计的语言,用于系统建模;UML 不是程序设计语言,不能用来直接书写程序,实现系统;用 UML 建立系统模型可以很好地支持软件开发的前向工程和逆向工程。USE CASE:USE CASE 定义:是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列。因此它是对系统的用户需求,特别是对功能需求的描述。USE CASE 表达了系统的功能和所提供的服务。有人把 USE CASE 分为两大类:业务 USE CASE 和系统 USE CASE。业务 USE CASE是指系统提供的业务功能与活动者的交互,表现问题领域中各实体之间的联系和业务往来活动,用于建立问题领域的业务
44、USE CASE 模型。系统 USE CASE 是指活动者与系统的交互,它表现了系统的功能需求和动态行为,用于建立系统的 USE CASE 模型。USE CASE 和 USE CASE 之间有:泛化关联、使用关联、包含关联、扩展关联。泛化关联用于共享 USE CASE 的共同功能行为;使用关联是指一个 USE CASE 使用另一个 USE CASE 的功能行为。使用关联是一种泛化关联。对象对象类类图图:的对象类图能够更好地用于对数据库建模。传统的图仅仅着眼于数据,而的对象类图不但对数据,而且能对行为建模,这些行为在物理数据库中被设计成触发 14 器和存储过程。对关系数据库系统可以用对象类图描述
45、数据库模式,用类描述数据库表;对于对象数据库系统可以用对象类图直接描述数据库中的对象类。交交互互图图:交互图表达对象之间的交互,是描述一组对象如何合作完成某个行为的模型化工具。主要用于对 USE CASE 中的控制流的建模。能有效的帮助人们观察和理解系统内部的协作关系和过程行为。的交互图有两种类型:顺序图(类似时序图),协同图。顺序图着重描述对象按照时间顺序的消息交换,协同图着重描述系统成分如何协同工作。顺序图和协同图都上交互图,它们即是等价的,又是有区别的。顺序图和协同图都能等价地表现系统运行中对象通过消息发生的交互行为。顺序图表示了时间消息序列,便于分析交互的时序,但没有表示静态对象关系。
46、顺序图可以有效地帮助人们观察系统的顺序行为。协同图着重表示一个协同中的对象之间的联系和消息,协同图用于描述一个操作或一个分类符的实现,常用于帮助设计行为。在对系统建立行为模型时,最典型的做法是用顺序图按时间顺序对控制流建模,用协同图按对象组织对控制流建模。状态图状态图:的状态图主要用于建立对象类或对象的动态行为模型,表现一个对象所经历的状态的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。用状态机来表示。可用两种方式来表达:状态图和活动图。状态图着重于对一个模型元素的可能状态及其转移建立模型,着重表现从一个状态到另一个状态的控制流。活动图着重于对一个活动到另一个活动的控制
47、流建立模型。状态图和交互图的侧重点不同:交互图表示若干对象在一起工作完成某项服务;而状态图则是为一个对象的生命期间的情况建立模型。状态图和活动图也不一样。活动图描述活动的序列,对活动到活动的控制流建模,适合表达工作流和并发的处理。而状态图表达状态机,是对事件到事件的控制流建模。状态图可以表示一个对象的历史,引起一个状态向另一个状态转移的事件,以及由于状态的转移而引发的动作。状态图适合描述一个对象穿越多个 USE CASE 的行为,但是状态图不适合描述多个对象的协同行为。使用状态图可以一个对象(类)的么为建模,也可以对一个子系统或整个系统的行为建模。活动图是一种用于系统的行为建模的工具,它能支持
48、对并发行为的描述的特点,使其成为对工作流建立模型的强大工具,尤其适合于多线程的程序的建模。活动图的一个主要缺点是,动作与对象之间的连接关系不够清楚。在下列情况可以使用活动图:分析 USE CASE;理解工作流程;描述复杂过程的算法;处理多线程应用。活动图和状态图的区别:活动图着重描述的是响应内部处理的对象类的行为,状态图描述的 15 是对象类响应事件的外部行为;活动图着重表现的是从一个活动到另一个活动的控制流,是内部处理驱动的流程;则状态图着重表现的是从一个状态到另一个状态的流程,常用于有异步事件发生的情形。组件组件图图和和配置图配置图:用于建立系统的实现模型。UML 开发开发工具工具:ilo
49、gix Rhapsody Microsoft visio Rational Rose/Rose RT/XDO Sybase PowerDesigner Rational Rose 家族家族成成员员有:有:Rational Robert 用于测试 Rational Test Manager 测试管理工具 支持回返工程的工具 代码生成(Customizable code Generation)逆向工程(Reverse Engineering)区分模型差异(Modeling Difference)设计修改(Design-Update)支持团体开发工具 个人工作间(WorkSpace)结构管理系统(C
50、onfiguration Management)虚拟路径图。3.3 OMT 方法:方法:OMT 方法有三方法有三种种模型:模型:对象对象模型、模型、动态动态模型、模型、功能功能模型。模型。对象模型:描述系统中对象的静态结构、对象之间的关系、对象的属性、对象的操作。对象模型表示静态的、结构上的、系统的“数据”特征。(用对象和类图表示)动态模型:描述与时间和操作顺序有关的系统特征激发事件、事件序列、确定事件先后关系的状态以及事件和状态的组织。动态模型表示瞬时的、行为上的、系统的“控制”特征。(用状态图表示)功能模型:描述与值变换有关的系统特征功能、映射、约束和函数依赖。(用数据流图表示)三三者者的