竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


510月/070

信息技术市场的RUP(Rational Unified Process)

发布在 邵珠庆

随着现代信息产业的蓬勃发展,软件开发已经成为一项浩大繁复的工程。就象是建造一座宏伟的宫殿,从计划、设计到施工,每一个环节都必须严格把关,稍有不慎,整个工程就会失败。据统计,仅在美国,每年就有180,000个信息技术项目,耗资大约$2500亿美元,其中25-30%的项目会流产。由此可见,由于管理不善和设计上的失误所造成的损失是巨大的。现代软件开发的管理和方法论显得比以往任何时候都更为重要。

软件开发的过程由方法论和工具构成(process = methodology + tools)。正如装配电子设备一样,仅有工具就可以胜任装配任务。但为了减少失误和提高效率,人们往往采用流水线作业,流水线作业便是一种应用于电子设备装配中的方法论。目前,信息技术市场流行的方法论有RUP(Rational Unified Process), The Zachman Framework, XP(Extreme Programming)等。在这些方法论中,最流行的要数RUP。RUP是由Rational Software公司首创的。因它与当前流行的Java, J2EE技术和面向对象的设计思想(OOAD)紧密的结合在一起,所以在大型的信息技术项目中得到了广泛的应用。在这篇文章中,我们试图对RUP的特点作一个初步的探讨,并且讨论它是如何贯穿在整个软件开发的生命周期之中的。

RUP最重要的它有三大特点:1)软件开发是一个叠代过程,2)软件开发是由Use Case驱动的,3)软件开发是以构架设计(Architectural Design)为中心的。

按照传统的瀑布(Waterfall)开发模式,软件开发大致经历如下几个步骤:商务需求分析(Business Requirement Analysis),系统分析(System Analysis),系统设计(System Design),开发实现(Implementation),测试(Test),发布(Deployment),系统支持(Supporting)和系统变更管理(Change Management)。

传统的瀑布开发模式假定在进行新的开发过程时,上一个过程已经完成,而且不会回到上一个过程。初看起来,这似乎是一个非常合理,高效率的解决方案,但20多年的实践证明,这个开发模式存在着很大的弊病,原因是软件开发是一个非常复杂的工程,有诸多的因素影响工程的效率和成败。软件开发需要许多不同背景的个人和团队参与。由于这些复杂性,在软件开发的整个生命周期中每一个阶段都有可能留下隐患和错误。如果等到系统已经开发实现完毕,在测试阶段发现了重大问题,这时的返工将会造成人力、物力、财力及时间上的巨大浪费。鉴于以上的考虑,RUP强调软件开发是一个叠代模型(Iterative Model),RUP定义了四个阶段(Phase):开端(Inception),阐述(Elaboration),建造(Construction),过渡(Transition)。其中每个阶段都有可能经历以上所提到的从商务需求分析开始的各个步骤,只是每个步骤的高峰期会发生在相应的阶段。例如开发实现的高峰期是发生在建造阶段。实际上这样的一个开发方法论是一个二维模型。这种叠代模型的实现在很大程度上提供了及早发现隐患和错误的机会,因此被现代大型信息技术项目所采用。

RUP 的另一大特征是Use Case 驱动。Use Case是RUP方法论中一个非常重要的概念。简单地说,一个Use Case就是系统的一个功能。例如在一个基于电子商务的医疗系统中,病人可以坐在家里通过网上浏览器与医生约定看病的时间(Makeappointment),这样,“Makeappointment”就是系统的一个Use Case。在系统分析和系统设计中,Use Case被用来将一个复杂的庞大系统分割、定义成一个个小的单元,这个小的单元就是Use Case,然后以每个小的单元为对象进行开发。按照RUP, Use Case贯穿整个软件开发的生命周期。在商务需求分析中,客户或用户对Use Case进行描述,在系统分布和系统设计过程中,设计师对Use Case进行分析,在开发实现过程中,开发编程人员对Use Case进行实现,在测试过程中,测试人员对Use Case进行检验。

RUP的第三大特征是它强调软件开发是以构架为中心的。构架设计(Architectural Design)是系统设计的一个重要组成部分。在构架设计过程中,设计师(Architect)必须完成对技术和运行平台的选取,整个项目的基础框架(Framework)的设计,完成对公共组件的设计,如审计(Auditing)系统,日志(Log)系统,错误处理(Exception Handling)系统,安全(Security)系统等。设计师必须对系统的可扩展性(Extensibility),安全性(Security),可维护性(Maintainability),可延拓性(Scalability),可重用性(Reusability)和运行速度(Performance)提出可行的解决方案。

在RUP方法论中,不同的角色可以从不同的侧面来认识同一个项目。RUP定义了“4+1”个场景(View):Use Case场景(Use Case View),逻辑场景(Logic View),进程场景(process View),实现场景(Implementation View)和发布场景(Deployment View)。在Use Case场景中,客户和商务分析员对Use Case进行描述,在逻辑场景中,设计师对系统进行分析和设计,在进程场景中,设计师对系统可能出现的并发性,运行速度和分布特性进行描述。实现场景则反映了程序开发员开发实现的过程。发布场景是描述系统管理员和组装人员实施系统发布和管理的过程。值得强调的是,系统构架的设计是在逻辑场景中描述的。

RUP还定义了4个模型,即Use Case模型(Use Case Model),分析模型(Analysis Model),设计模型(Design Model)和实现模型(Implementation Model)。Use Case模型包含Use Case Diagram和Use Case文档。Use Case模型是其他三个模型的基础,分析模型即是概念模型(Conceptual Model),是系统分析所得到的结果,分析模型包含了类图(Class Diagram),次序图(Sequence Diagram)以及活动图(Activity Diagram)。设计模型则是构架设计和系统设计的结果。当设计模型完成后,开发编程人员便可以进行编程了。设计模型主要包含了类图,次序图和状态图(State Chart Diagrams)。分析模型和设计模型看起来有许多相似之处,但两者的含义有本质的区别。分析模型强调的是问题的范围,但并不给出解决问题的方案,分析模型并不涉及具体的技术和平台。例如它并不关心是否应用EJB或一般的Java BEANS,系统是安装在WebSphere或是在WebLogic。但是与之相反,设计模型要考虑这些细节,而且要提供解决这些问题的全部方案。当然设计模型是建立在分析模型之上的,分析模型中的一个类可直接映射成为设计模型中的类,但这种映射关系一般并不是一一对应的,最后一个模型是实现模型。实现模型包含构件图(Component Diagram),从这个模型出发,开发编程人员可以产生骨架源程序(Skeleton Source Code),也可以从源程序出发更新设计模型。

目前应用于系统分析和设计的工具主要有Rational Rose和Together Software Center(TogetherJ)。JAVA和J2EE的开发工具有IBM Websphere Application Developer(WSAD), Borland Jbuilde和WebGain VisualCafe. WSAD和WebSphere Application Server应用在一起,使得服务器端的排错和系统的发布变得非常的容易。Jbuilder和VisualCafe一般与WebLogic erver紧密结合在一起。目前WebSphereServer和WebLogic Server占据了Application Server市场的66%,其中WebSphere Server占据了37%,成为同类产品的No.1。在单位测试和集成测试中,广泛应用的工具和框架有Junit, JunitPerf和Cactus.。

综上所述,软件开发的方法论已经成为现代软件工程过程中不可缺少的一个重要部分。是目前在Java/J2EE和面向对象的大型项目中广泛被采用的一种方法论。他对整个软件开发的生命周期提供了基础框架和指导。RUP, UML/Rational Rose, Java/J2EE, WSAD, Websphere Application Server和Oracle这样的技术、工具和平台的组合是目前许多公司、政府信息技术项目中采用的方案。因此,RUP的知识和经验也是现在求知是场所需求的热门技能。

159月/070

三级信息技术错题本

发布在 邵珠庆

(3) 计算机不能直接执行符号化的程序,必须通过语言处理程序将符号化的程序转换为计算机可执行的程序,下述所列程序中哪种程序不属于上述语言处理程序?
A) 汇编程序
B) 编译程序
C) 解释程序
D) 反汇编程序
解析:反汇编程序是将计算机可执行的程序语言处理程序转换为符号化的程序。
(5) 计算机中之所以需要编译程序,是因为需要
A) 将人的自然语言翻译成计算机语言
B) 将汇编语言程序翻译成目标程序
C) 将高级语言程序翻译成目标程序
D) 人机对话
解析:A )是将人的自然语言翻译成计算机语言,这是需要进行研究的一种翻译方式,一般来说,目前这种方式由人工进行翻译。B)选项中的翻译过程由汇编程序完成。D)选项中的人机对话是编译与运行目标程序过程中能实现的一种功能,但不是编译程序完整功能的描述。因此,根据编译程序定义中说明的功能。C)是正确答案。
(7) 通过哪项可以完成数据流图的细化?
A) 结构分解
B) 功能分解
C) 数据分解
D) 系统分解
解析:在数据流图中选出一个功能比较复杂的处理,并把它的功能分解成若干个子功能,这些较低层的子功能成为一张新数据流图上的处理,在这张新数据流图上还应该包括自己的数据存储和数据流。
(9) 什么是指把一些关系密切的软件元素物理地址放得彼此靠近?
A) 隐藏
B) 内聚
C) 局部化
D) 模块独立
解析:模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。所谓的局部化就是指把一些关系密切的软件元素物理地放得彼此靠近。
(11) 在测试中,下列说法错误的是
A) 测试是为了发现程序中的错误而执行程序的过程
B) 测试是为了表明程序是正确的
C) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
D) 成功的测试是发现了至今为止尚未发现的错误的测试
解析:没有错误的程序是不存在的。
(17) 当局部E-R图合并成全局E-R图时,可能出现冲突,下述所列冲突中哪一个不属于下述冲突?
A) 命名冲突
B) 语法冲突
C) 结构冲突
D) 属性冲突
解析:在将局部E-R图集成为全局的E-R图时,可能存在的三类冲突:命名冲突、结构冲突和属性冲突。
(19) 数据库物理设计完成后,进入数据库实施阶段,下述工作中,哪一项一般不属于实施阶段的工作?
A) 建立库结构
B) 扩充功能
C) 加载数据
D) 系统测试
解析:实施包括:建立实际的数据库结构;装入试验数据对应用程序进行测试,以确认其功能和性能是否满足设计要求,并检查对空间的占有情况;装入实际数据,即数据库加载,建立起实际的数据库。
(20) 事务处理是所有信息系统的基础工作以事务处理系统应达到多方面的目标,包括
Ⅰ.处理由事务产生的或与事务相关的数据
Ⅱ.保持数据和信息的准确性、完整性
Ⅲ.及时生成文档或报告
Ⅳ.提高劳动生产率
Ⅴ.有助于改善服务质量,有助于建立和维持顾客信心
Ⅵ.支持管理人员的决策
A) 除Ⅰ和Ⅲ
B) 除Ⅱ和Ⅴ
C) 除Ⅳ
D) 除Ⅵ
解析:支持管理人员的决策属于决策支持系统的功能。
(21) 对于关系R,第二范式是要求R中的每一个非主属性满足
A) 没有重复的组项
B) 只有简单的重复项
C) 完全函数依赖于主关键字
D) 单值依赖关系
解析:对于关系R,第二范式是要求R中的每一个非主属性完全函数依赖于主关键字。
(23) SQL语言集数据定义功能、数据操纵功能和数据控制功能于一体。如下所列语句中,哪项是属于数据控制功能的语句?
A) GRANT
B) CREATE
C) INSERT
D) SELECT
解析:本题中CREATE是定义基本表的语句(数据定义功能),SELECT语句是进行数据库查询的,INSERT语句是插入一个元组或插入一个子查询结果的命令(数据操纵功能),而GRANT语句是向用户授予操作权限的,属于数据控制功能语句。
(26) 建立企业管理信息系统的成功因素可能涉及多种,而其中的关键成功因素一般认为应是
A) 业务人员的要求
B) 高层管理人员的参与
C) 网络系统的建设
D) 计算机人员的主导
解析:信息系统的研究开发工作能否成功,主要取决于高层管理人员的参与。
(27) 办公自动化软件环境由什么组成的?
A) OA工具软件、网络操作系统、信息传送软件
B) OA工具软件、文档管理软件和OA专用软件
C) OA通用软件、OA专用软件
D) 基本软件、OA通用软件、OA专用软件
解析:办公自动化软件环境由基本软件、OA通用软件、OA专用软件组成的。
(28) 决策支持系统主要支持以下哪类决策问题?
A) 定性决策与结构化决策
B) 定量决策与半结构化决策
C) 半结构化与非结构化决策
D) 结构化与半结构决策
解析:MIS主要面向结构化系统,而DSS处理半结构化和非结构化系统。
(29) 管理信息系统的结构按管理层次可分为
A) 战略层、战术层、业务层、事务层
B) 高层、中层、基层
C) 决策层、职能层、事务层、操作层
D) 管理层、技术层、操作层
解析:按管理层次可分为:基层、中层和高层;按管理职能可分为:执行层、管理层和战略层。
(30) 决策支持系统是
A) 数据驱动的
B) 知识驱动的
C) 语言驱动的
D) 模型驱动的
解析:MIS是以数据驱动的系统,而DSS则是以模型驱动的系统。
(31) 信息系统开发策略是指根据工作对象和工作内容而应该采取的行动方针和工作方法。以下是关于信息系统开发策略的描述。
I.信息系统总体规划的建立
II.高层管理人员的参与
III.加强数据处理部门与管理者之间的联系
IV.确定是采用结构化系统分析与设计方法还是原型法开发系统
V.考虑运用正在研究的各种新技术
以上哪些方面是制定开发策略时必须要考虑的问题?
A) I,II,II和IV
B) I,II,III和V
C) II,III,IV和V
D) I,III,IV和V
解析:在信息系统开发之前,首先要通过详细的规划,确定各个信息系统之间的关系,否则就会出现不兼容的系统,数据难以统一。所以企业在开发信息系统之前有必要首先做好总体规划。最高层管理者参与系统建设是系统成功的头等重要因素,企业的数据处理部门不再是一个独立的部门,系统开发人员应该不仅是一个技术专家,对业务也应该精通,否则系统开发人员就无法有效地与各层管理人员进行沟通。针对信息系统的特点、系统的规模等因素,决定是选择结构化系统分析与设计方法还是原型法,否则就导致系统开发的失败。应该选用在本行业中应用较为普遍、比较成熟的技术会大大降低系统的技术风险。因此,在制定系统开发策略时一般不考虑选择风险较大、正在探索的技术。
(34) 决策支持系统是MIS的一个重要分支,它
A) 强调实现全面的管理功能
B) 仅仅解决结构化决策问题
C) 强调支持而不是代替决策
D) 既能支持又可代替人的决策
解析:决策支持系统是人们一直关注的计算机信息系统,其目标是支持或辅助人们对重大问题的决策,而不代替人们决策。
(36) 某企业建立了生产、销售、人事等从基层到高层的MIS,这种MIS的结构为
A) 职能结构
B) 横向综合结构
C) 总的综合结构
D) 纵向综合结构
解析:基于职能的分解可分为销售子系统,生产子系统,财务子系统,物资子系统和员工子系统。
(38) 数据流程图描述数据在信息系统中流动和被处理变换的过程,它是以图示的方法来表示
A) 软件模型
B) 软件功能
C) 软件结构
D) 软件加工
解析:数据流程图是对软件系统逻辑模型的描述,它所表示的是对数据的处理逻辑,反映了软件所必须完成的功能。
(39) 信息系统逻辑模型中包含很多内容。上述哪个(些) 是信息系统逻辑模型应该包含的内容?
I.系统总体结构 II.数据流程图
III.数据字典   IV.E-R图
V.过程说明    VI.模块结构图
A) 除了IV
B) 除了V
C) 除了VI
D) 全部都是
解析:逻辑模型的建立是结构化分析阶段的主要任务。在上述内容中:系统总体结构:按照层次结构刻画了信息系统各子系统是如何划分的,以及各子系统的功能模块。数据流程图:描述了企业或机构中整体的或部门的数据、数据流向、数据加工、数据存储及数据的来源去向。数据字典:是对数据的定义,是对数据逻辑结构的一种描述。E-R图:是利用"方框"、"椭圆框"、"菱形框"、"线段"表示实体及其联系的方式,表达了数据的概念结构。过程说明:是利用结构化语言、判定树、判定表等工具对数据流图中的加工处理的详细处理逻辑的描述。模块结构图:表达了软件结构中模块之间的相互调用关系。模块结构图是软件设计的一个主要工具。
(40) 数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是什么?
A) 数据库定义
B) 数据通信
C) 数据定义
D) 数据维护
解析:数据字典是对数据定义的信息的集合。
(41) 数据流程图的正确性是保证软件逻辑模型正确性的基础。在绘制数据流程图时应该遵循的基本原则包括哪个(些) ?
I.数据守恒原则
II.均匀分解原则
III.文件操作
IV.简化加工间联系
A) I,II和IV
B) I,II和III
C) 都是
D) II,III和IV
解析:分析人员可以从下面两个方面检查数据流图的正确性:数据守恒和文件操作。为了提高数据流图的易理解性,应注意下面两个方面:简化加工间联系和均匀分解。
(43) 由数据类的特点将子系统进行分类,下面哪种不属于子系统类?
A) 产生数据类但不使用数据类
B) 使用数据类来产生另一个数据类
C) 使用数据类但不产生数据类
D) 不使用数据类也不产生数据类
解析:子系统通常根据数据类的产生和使用特点分类。它只有三类子系统,本题的A),B),C)均为BSP的子系统分类,而D)是不存在的。因为任何子系统都为信息系统完成一定功能,信息系统的功能抽象对数据的产生和使用都会有要求,不可能对数据既不产生也不使用,这样的子系统毫无意义,即使是对数据不加工的传输,也要使用数据。
(44) 信息资源管理(IRM) 包括的主题内容有哪些?
I.资源管理的方向和控制
II.建立企业资源管理指导委员会,负责制定政策,控制和监督信息资源的应用
III.建立信息资源的组织机构,从事数据的计划和控制以及数据获取和经营管理
IV.进行有效的数据库逻辑设计和对分布数据处理提供支持
A) I,II和III
B) II,III和IV
C) I,II和V
D) 都是
解析:信息资源管理的基本内容包括三个主题:资源管理的方向和控制,要从整个企业管理的全面来分析资源的管理;建立企业资源管理指导委员会,负责制定政策,控制和监督信息资源功能的实施;信息资源的结构。
(45) 下列I、II、III是BSP方法的几个关键步骤,在BSP研究中,这三项活动的正确顺序是什么?
I.识别数据类
II.定义企业过程
III.定义信息总体结构
A) I,II和III
B) II,I和III
C) III,I和II
D) III,II和I
解析:BSP方法的几个步骤依次为:研究开始阶段;定义企业过程;识别数据类;分析当前业务与系统的关系;定义企业信息总体结构;确定系统的优先顺序;信息资源管理;制定建议书和开发计划;成果报告和后续活动。
(47) BSP研究中,确定系统的逻辑优先顺序的判别标准有四个方面,其中哪个方面涉及到资源和风险的判断?
A) 潜在利益分析
B) 对企业的影响
C) 成功的可能性
D) 企业各管理层的需求
解析:BSP提出四个方面作为判别优先的标准,其中潜在利益分析主要涉及子系统的相对价值、投资回收的估计,对企业的影响主要涉及子系统对企业现行状况的改善、解决存在问题方面的力度,成功的可能性方面涉及到信息系统实施的先决条件、实施时间、实施要用到的资源和实施的风险分析,企业需求涉及到企业内部各管理层对新系统实施的需求迫切性。有了这几方面内容的涵义,答案是很明显的。
(48) 数据类大致可以分为四类:存档类数据、事务类数据、计划类数据和统计类数据,其中历史的和综合的数据,用作对企业度量和控制的数据类是
A) 存档类数据
B) 事务类数据
C) 计划类数据
D) 统计类数据
解析:数据类大概可分为四类:存档类数据、事务类数据、计划类数据和统计类数据。历史的和综合类的数据用作对企业度量和控制的数据属于统计
(49) J.Martin的战略数据规划包括内容有许多项,下列中哪些项内容是属于战略数据规划?
Ⅰ.企业未来
Ⅱ.企业关键成功因素分析
Ⅲ.企业实体分析
Ⅳ.企业资源规划
Ⅴ.应用数据库确定
A) Ⅲ和Ⅴ
B) Ⅰ,Ⅲ和Ⅴ
C) Ⅰ,Ⅱ和Ⅳ
D) 全部
解析:J.Martin的战略数据规划包括内容有许多,其中包括企业未来分析、企业关键成功因素分析、企业资源规划和应用数据库确定等。
(51) J.Martin的自顶向下规划,用逐步求精分层进行,下列哪一层不属于它的求精层?
A) 主题数据库规划
B) 实体分析
C) 实体活动分析
D) 应用项目分析
解析:自顶向下的规划可以进行几层求精,三层求精为主题数据库规划、实体分析、实体活动分析。
(54) 企业模型图包括三个层次。这三个层次是
A) 职能、业务活动过程、业务活动
B) 职能、部门、业务活动
C) 职能、部门、业务活动过程
D) 部门、业务活动过程、业务活动
解析:企业模型图包括三个层次。这三个层次是职能、业务活动过程和业务活动。
(55) OOSE的核心技术是建立分析、设计和实现的模型,其中领域模型是属于下列哪个模型的手段?
A) 用例模型
B) 分析模型
C) 实现模型
D) 设计模型
解析:领域模型是从逻辑观点去处理系统,要求定义系统的所有功能并建立一个数据字典。领域模型是分析模型的一个手段。
(56) 定义应用需求的原型生命周期应是一个迭代的过程,而其迭代工作量主要是集中在
A) 识别需求
B) 开发模型
C) 模型认证
D) 模型修改
解析:初始模型的质量对生命周期的其他步骤的成败是重要的。如果为了追求完整而做得太大,它会不易反应而且对其中的一些不好的设想要进行大量的修改,而如果模型是应用的核心部分,那些迭代将从一个优秀的初始模型开始工作。
(60) 需求定义包括很多内容,其中一般首先应确定的、最基本的是用户对信息系统的
A) 性能需求
B) 可靠性需求
C) 功能需求
D) 开发费用和开发周期需求
解析:研究表明60%~80%的错误来自于需求定义,而在需求定义中,最基本的是用户对系统的功能需求。