1、信息系统项目管理师考试大纲考试科目1:信息系统项目管理综合知识21信息系统基础2信息系统2信息系统建设3软件工程知识5软件构件技术知识15软件体系结构15面向对象系统分析与设计15典型应用集成技术22软件工具23电脑网络知识242信息系统项目管理35信息系统项目管理基础35项目生命周期和组织36项目管理过程37项目立项与招投标管理40项目整体管理44项目范围管理492.7 项目进度管理52项目成本管理55项目质量管理57项目人力资源管理582.11项目沟通管理59项目风险管理62项目采购和合同管理64文档与配置管理66需求管理68大型、复杂项目和多项目管理70战略管理71用户业务流程管理BPM
2、71知识管理73项目绩效考核与绩效管理73信息系统工程监理744.信息化基础知识76信息与信息化764.2政府信息化与电子政务76企业信息化与电子商务76信息资源管理774.5 CIO的职责、条件和重要性785.信息安全知识786.法律法规和标准标准84法律84软件工程的国家标准85基础标准85开发标准85文档标准85管理标准857管理科学基础知识858项目管理师职业道德869专业英语86考试科目2:信息系统项目管理案例分析861项目启动862项目管理计划863项目实施864项目监督与控制865项目收尾86考试科目3:信息系统项目管理论文87二、考试范围考试科目1:信息系统项目管理综合知识1信
3、息系统基础 信息系统概念是一个由人、电脑及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。以电脑为信息处理工具,以网络为信息传输手段的信息系统。信息系统是由电脑硬件、网络和通讯设备、电脑软件、信息资源、信息用户和规章制度组成的以处理信息流为目的的人机一体化系统。 信息系统的功能输入功能;存储功能;处理功能;输出功能;控制功能; 信息系统的类型 信息系统的发展信息资源管理标准化的指导原则,效益原则、系统原则、动态原则、优化原则、协商原则 信息系统建设的复杂性 信息系统的生命周期各阶段目标及其主要工作内容1.立项阶段 即其概念阶段或需求阶段,这一阶段分为两个过程:一是概念
4、的形成过程,根据用户单位业务发展和经营管理的需要,提出建设信息系统的初步设想;二是需求分析过程,即对企业信息系统的需求进行深入调研和分析,形成需求标准说明书,经评审、批准后立项。 2.开发阶段 1总体规划阶段:是系统开发的起始阶段,以立项阶段所做的需求分析为基础,明确信息系统在企业经营战略中的作用和地位,指导信息系统的开发,优化配置并利用各种资源,包括内部资源和外部资源,通过规划过程标准或完善用户单位的业务流程。一个比较完整的总体规划应当包括信息系统的开发目标、总体结构、组织结构、管理流程、实施计划、技术标准。 2系统分析阶段:目标是为系统设计阶段提供系统的逻辑模型,内容包括组织结构及功能分析
5、、业务流程分析、数据和数据流程分析及系统初步方案。 3系统设计阶段:根据系统分析的结果设计出信息系统的实施方案,主要内容包括系统架构设计、数据库设计、处理流程设计、功能模块设计、安全控制方案设计、系统组织和队伍设计及系统管理流程设计。 4系统实施阶段:是将设计阶段的成果在电脑和网络上具体实现,即将设计文本变成能在电脑上运行的软件系统。由于系统实施阶段是对以前全部工作的检验,因此用户的参与特别重要。 5系统验收阶段:通过试运行,系统性能的优劣及其他各种问题都会暴露在用户面前,即进入了系统验收阶段。 3.运维阶段 信息系统通过验收,正式移交给用户以后,就进入运维阶段,系统长时间的有效运行是检验系统
6、质量的试金石。 要保障系统正常运行,系统维护是不可缺少的工作。维护可分为4种类型:排错性维护、适应性维护、完善性维护、预防性维护。 4.消亡阶段 开发一个信息系统并希望它一劳永逸地运行下去是不现实的。企业的信息系统经常不可防止地会遇到系统更新改造、功能扩展,甚至报废重建等情况。对此,用户单位应当在信息系统建设的初期就注意系统消亡条件和时机,以及由此而花费的成本。 信息系统建设的原则 信息系统开发方法1结构化方法 按照信息系统生命周期,应用结构化系统开发方法,把整个系统的开发过程分为假设干阶段,然后一步一步地依次进行,前一阶段是后一阶段的工作依据;每个阶段又划分详细的工作步骤,顺序作业。每个阶段
7、和主要步骤都有明确详尽的文档编制要求,各个阶段和各个步骤的向下转移都是通过建立各自的软件文档和对关键阶段、步骤进行审核和控制实现的。 结构化方法具有如下特点。 (l)遵循用户至上原则。 (2)严格区分工作阶段,每个阶段有明确的任务和取得的成果。 (3)强调系统开发过程的整体性和全局性。 (4)系统开发过程工程化,文档资料标准化。 该方法的优点是:理论基础严密,它的指导思想是用户需求在系统建立之前就能被充分了解和理解。由此可见,结构化方法注重开发过程的整体性和全局性。 该方法的缺点是:开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的信息需求,充分预料各种可能发生的变化,但
8、这并不十分现实;假设用户参与系统开发的积极性没有充分调动,造成系统交接过程不平稳,系统运行与维护管理难度加大。2原型法 原型法的基本思想与结构化方法不同,原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。 原型应当具备的特点如下。 (1)实际可行。 (2)具有最终系统的基本特征。 (3)构造方便、快速,造价低。 原型法的特点在于原型法对用户的需求是动态响应、逐步纳入的,系统分析、设计与实现都是随着对一个工作模型的不断修改而同时完成的,相互之
9、间并无明显界限,也没有明确分工。系统开发计划就是一个反复修改的过程。适用于用户需求开始时定义不清、管理决策方法结构化程度不高的系统开发,开发方法更宜被用户接受;但如果用户配合不好,盲目修改,就会拖延开发过程。 3面向对象方法( Object Oriented,OO) 面向对象方法的基本思想如下。 (1)客观事物是由对象组成的,对象是在原事物基础上抽象的结果。 (2)对象是由属性和操作组成的,其属性反映了对象的数据信息特征,而操作则用来定义改变对象属性状态的各种操作方式。 (3)对象之间的联系通过消息传递机制来实现,而消息传递的方式是通过消息传递模式和方法所定义的操作过程来完成的。 (4)对象可
10、以按其属性来归类,借助类的层次结构,子类可以通过继承机制获得其父类的特性。 (5)对象具有封装的特性,一个对象就构成一个严格模块化的实体,在系统开发中可被共享和重复引用,到达软件程序和模块复用的目的。 面向对象的信息系统开发,其关键点是能否建立一个全面、合理、统一的模型,它既能反映问题域,也能被电脑系统求解域所接受。 软件需求分析与定义对需求的精确性要求:能确认需求;能验证需求的实现;能评估需求变更的影响软件需求是系统必须完成的事,以及必须具备的品质。软件需求包括:功能需求: 系统必须完成的那些事,即为了向它的用户提供有用的功能,产品必须执行的动作。非功能需求:产品必须具备的属性或品质。如可靠
11、性、性能、响应时间、容错性、扩展性等。设计约束:限制条件、补充规约。业务需求:反映组织机构或客户对系统、产品高层次的目标要求,通常问题定义本身就是业务需求。用户需求:描述用户使用产品必须要完成什么任务,怎么完成的需求,通常是在问题定义的基础上进行用户访谈、调查,对用户使用的场景进行整理,从而建立从用户角度的需求。系统需求:从系统的角度来说明软件的需求,包括用特性说明的功能需求,质量属性,以及其他非功能需求,还有设计约束。三者之间的关系:业务需求生成范围文档、用户需求生成用例文档、系统需求和用户需求生成功能需求,三者结合加上质量属性、非功能需求、设计约束成为SRS软件需求说明书。Philippe
12、 Kruchten 4+1模型:从五个不同的视角来描述软件体系结构,每个视角只关心系统的一个侧面,五个视角结合在一起才能反映软件体系结构的全部内窑。这五个视角分别为: 1、逻辑视图:主要支持系统的功能需求,它直接面向最终用户; 2、开发视图:主要支持软件模块的组织和管理,它直接面向编程人员: 3、进程视图:主要关注一些非功能性的需求,如系统的性能和可用性等,它直接面向系统集成人员: 4、物理视图:主要关注如何把软件映射到硬件上,通常要解决系统拓扑结构、系统安装、通信等问题,它直接面向系统工程人员: 5、场景视图:是重要系统活动的抽象描述,可以使上述四个视图有机联系起来,可认为是最重要的需求抽象
13、。 逻辑视图、开发视图描述系统的静态结构;进程视图和物理视图描述系统的动态结构。需求工程需求工程是一个包括创建和维护系统需求文档所必需的一切活动的过程,通常包括需求开发和需求管理两大工作。需求开发:需求捕获、需求分析、编写规格说明书需求规格化和需求验证四个阶段。需求管理:定义需求基线、处理需求变更、需求跟踪。流行的需求分析方法论结构化分析方法SA、软系统方法、面向对象分析方法OOA、面向问题域的分析PDOA结构化分析与面向对象分析方法之间最大差异是:SA把系统看做一个过程的集合体,包括人完成的和电脑完成的,OOA把系统看成一个相互影响的对象集。SA常用的工具包括:数据流图DFD、数据字典DD、
14、结构化语言、判定表、判定树Context图:系统上下文范围关系图:将整个待开发的系统表示为一个过程,将所有的外部实体和进出系统的数据流都画在一张图中,可以把整个系统的范围勾画出来。DFD 0层图是对Context图的细化。数据字典:对与系统相关的数据元素有组织的列表和精确定义,使用户和系统分析员对输入、输出、存储成分和中间计算结果有共同的理解。结构化语言说明加工处理流程,用来描述一些重要的、复杂的过程的程序逻辑;决策表和决策树是对处理逻辑的表示方法。结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 软件设计、测试与
15、维护功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚1、功能内聚:实现一个功能,内聚性最强。2、信息内聚:完成多个功能,各个功能在同一数据结构上操作。3、通信内聚:模块内各功能部分使用了相同的输入数据或产生相同的输出数据。4、过程内聚:把流程图中某一部分划出组成模块,即过程内聚,如循环部分、判定部分、计算部分分成三个模块。5、时间内聚:又称为经典内聚,大多为多功能模块,模块的各个功能的执行与时间有关,如初始化模块和终止模块。6、逻辑内聚:把几种相关的功能组合在一起,由传送给模块的判定参数来确定执行哪一种功能。7、巧合内聚:模块内各部分之间没有联系,或即使有联系,也很松散,是内聚程序最低
16、的模块。非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。1、非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,非直接耦合的模块独立性最强2、数据耦合:一个模块访问另一个模块时,彼此之间是通过简单变量不是控制参数、公共数据结构和外部变量来交换输入、输出信息的,这种耦合为数据耦合3、标记耦合:一组模块通过参数表传递记录信息,就是标记耦合,这个记录是某一数据结构的子结构,而不是简单变更。4、控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,称为控制
17、耦合5、外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称为外部耦合。6、公共耦合:假设一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区。7、内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口。结构化设计方法四种模块:传入模块、传出模块、变换模块、协调模块结构图着重反映模块间的隶属关系,着眼于软件系统的总体结构,即模块间的调用关系和层次关系。程序流程图着重表达程序执行的顺
18、序,以及执行顺序所依赖的条件。常用的系统结构图包括:变换型系统结构图、事务型系统结构图、混合型事务结构图 黑盒测试不考虑程序的内部逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,又称为功能测试或数据驱动测试。黑盒测试主要是在程序的接口上进行测试,主要是为了发现以下错误: 是否有不正确或遗漏了的功能; 在接口上,能否正确的接收输入,能否输出正确的结果 是否有数据结构错误或外部信息访问错误 性能上是否能够满足要求 是否有初始化或终止错误黑盒测试的测试用例设计方法主要有:等价类划分:是一种典型的黑盒测试方法,依据程序的规格说明书来设计测试用例,将所有可能的输入数据
19、划分为假设干个部分,然后从每一部分中选取少数有代表性的数据作为测试用例,分为划分等价类和选取测试用例两步。边界值分析:是对等价类划分方法的补充,选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,从经验得知,大量的错误是发生在输入或输出范围的边界上。错误推测法:可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性编写检查这些错误的用例因果图:如果在测试时必须考虑输入条件的各种组合,可使用一种适于描述多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。白盒测试允许测试人员利用程序内部的逻辑结构和有关
20、信息,设计或选择测试用例,对程序所有逻辑路径进行测试。确定实际的状态是否与预期的状态一致,又称为结构测试和逻辑驱动测试。白盒测试主要对程序模块进行如下检查: 对程序模块的所有独立的执行路径至少测试一次 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次 在循环的边界和运行界限内执行循环体 测试内部数据结构的有效性等逻辑覆盖逻辑覆盖是以程序内部的逻辑结构为基础的设计用例的技术。它属白盒测试,包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖等软件测试策略单元测试:集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试:把已
21、测试过的模块组装起来,主要对与设计相关的软件体系机构的构造进行测试。确认测试:检查已实现的软件是否满足了需求规格说明书中确定了的各种需求,以及软件配置是否完全,正确。系统测试:把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。验收测试:系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。测试的目的是评价软件产品的功能、局域化、可使用性、可
22、靠性、性能和支持,尤其注重产品的界面和特色,测试可以从软件产品编码结束之时开始,或者在模块测试完成之后开始,也可以在确认测试过程中产品到达一定的稳定性和可靠程度之后再开始测试:测试是由软件的多个用户在实际使用环境下进行的测试,这些用户返回有关错误信息给开发者,测试是在开发者无法控制的环境下进行的软件现场应用。测试着重于产品的支持性,包括文档、客户培训和支持产品。只有当测试到达一定的可靠程度时,才开始测试。它处在整个测试的最后阶段。软件维护(1)更正性维护:软件产品交付后进行的修改,以更正发现的问题。 (2)适应性维护:软件产品交付后进行的修改,以保持软件产品能在变化后或变化中的环境中可以继续使
23、用。 (3)完善性维护:软件产品交付后进行的修改,以改良性能和可维护性。 (4)预防性维护:软件产品交付后进行的修改,以在软件产品中的潜在错误成为实际错误前,检测和更正它们。 软件质量保证及质量评价软件质量:软件特性的总合,软件满足规定或潜在用户需求的能力。“软件满足规定或潜在用户需求的能力”要从软件在内部、外部和使用中的表现来衡量。软件质量管理过程包括:质量保证过程、验证过程、确认过程、评审过程、审计过程等。1软件质量保证软件质量保证过程通过计划制订、实施和完成一组活动提供保证,这些活动保证项目生命周期中的软件产品和过程符合其规定的需求。软件质量保证计划定义了用于保证为特定产品开发的软件满足
24、用户需求并在项目的约束内具有最高的质量的手段。2验证与确认验证与确认过程使用能够定位缺陷并便于以后改正的测试技术直接处理软件产品质量问题。验证与确认过程确定某一开发和维护活动的产品是否符合活动的需求,最终的软件产品是否到达其意图并满足用户需求。验证过程试图确保活动的输出产品已经被正确制造,即活动的输出产品满足前面活动施加的标准说明;确认过程则试图确保建造了正确的产品,即产品满足其特定的目的。3评审与审计评审与审计过程包括:管理评审、技术评审、检查、走查、审计等。管理评审的目的是监控进展,决定计划和进度的状态,确认需求及其系统分配,或评价用于到达目标适应性的管理方法的有效性。它们支持有关软件项目
25、期间需求的变更和其他变更活动。技术评审的目的是评价软件产品。以确定其对使用意图的适合性,目标是识别标准说明和标准的差异,并向管理提供证据,以说明产品是否满足标准说明并遵从标准,而且可以控制变更。检查的目的是检测和识别软件产品异常。一次检查通常针对产品的一个相对小的部分。发现的任何异常都要记录到文档中,并提交。走查的目的是评价软件产品,走查也可以用于培训软件产品的听众,主要目标是:发现异常、改良软件产品、考虑其他实现、评价是否遵从标准和标准说明。走查类似于检查,但通常不那么正式。走查通常主要由同事评审其工作,以作为一种保障技术。软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划
26、和流程的遵从性的独立评价。审计是正式组织的活动,识别违例情况,并产生一个报告,采取更正性行动。CMMI:软件能力成熟度模型集成模型。一级,已执行级。过程不可预知,不能很好地被控制且是被动的。二级,已管理级。项目级别定义了过程且经常是被动的。 需求管理:管理项目产品和产品组件的需求,识别需求与项目计划和工作产品间的不一致性。 项目策划:建立和维护定义项目活动的计划。 项目监督和控制:了解项目进展,以便当项目性能明显偏离计划时采取适当的纠正措施。 供给商协议管理:管理来自供给商的产品和服务的采购。 度量分析:开发和保持测量能力,以支持管理信息的需要。 配置管理:利用配置标识、配置控制、配置状态记录
27、和配置审计建立和维护工作产品的完整性。 产品和过程质量保证:使职工和管理者对过程和相关的工作产品能有客观洞察。三级,已定义级。组织定义了过程且能起到积极主动的作用。 需求开发:引导、分析及建立客户、产品和产品部件的需求。 技术方案:设计、开发和实现对需求的解决方案。 产品集成:将产品组件组装成产品,确保组装后的产品能正常地运行并交付产品。 验证:确保所选择的工作产品满足指定的需求。 确认:证实产品或产品部件被置于其预定的环境中时,可以满足预期的使用需求。 组织过程焦点:基于组织过程和过程资产的现有强项和弱项的深入理解,策划、实施和部署组织的过程改良。 组织过程定义:建立和维护可用的组织过程资产
28、集,工作环境标志,以及对团队的规则和指南。 组织培训:开发人员的技能和知识,以便他们能有效且高效地履行其角色。 集成项目管理:是根据由组织的标准过程集剪裁所得的集成的、已定义的过程,建立并管理项目以及利益相关方的参与。 风险管理:在风险发生前,标识出潜在的问题,以便在产品或项目的整个生存周期中规划风险处理活动,并于必要时启动这些活动,以缓解对目标实现的不利影响。 决策分析和方案:使用正式的评价过程分析可能的决策,此评价过程按所建立的准则评价所标识的备选方案。四级,已定量管理级。过程度量和控制。 组织过程性能:建立并维护对组织的标准过程集合的定量了解,并且为定量管理组织的各个项目提供过程性能数据
29、、基线和模型。 定量项目管理:对项目已定义过程实施定量管理,以便使项目实现所确定的质量和过程性能目标。五级,优化级。注重过程改良。 组织性能管理:对选择并部署渐进式的改良项目和革新式的改良项目,对组织的过程和技术实施可度量的改良。 原因分析和决策:识别导致缺陷和其他问题的原因,并采取措施,防止将来再次发生这些问题。 软件配置管理配置管理员根据项目计划文档、配置管理计划、配置项管理表等文档,创建构造或发行基线,供内部使用或交付给顾客。软件配置管理是通过在软件生命周期的不同的时间点上对软件配置进行标志并对这些被标志的软件配置项的更改良行系统控制,从而到达保证软件产品的完整性和可追溯性的过程。软件配
30、置管理的四个功能:配置标识、配置控制、配置状态发布、配置的评审。接受软件配置管理过程控制的软件受控配置项应包括一切可能对软件产品的完整性和一致性造成影响的组成要素。比方项目文档、产品文档、代码、支撑数据、项目编译建立环境、项目运行环境等。配置项是逻辑上组成软件系统的各组成部分,是软件配置管理的基础和前提。基线是一个配置项或一组配置项在其生命周期的不同时间点通过正式评审而进入正式受控的一种状态,这个过程被称为基线化。每一个基线都是其下一步开发的出发点和参考点。上一个基线加上增加和修改的基线内容形成下一个基线。这就是基线管理,基线具有以下属性:1、通过正式的评审过程建立2、基线存在于基线库中,对基
31、线的变更接受更高权限的控制。3、基线是进一步开发和修改的基准和出发点配置标识是软件生命周期里选择定义各类配置项,建立各类基线、描述相关软件配置项及其文档的过程。配置标识分为三个步骤:1、将软件分组成一系列软件配置项2、定义对配置项命名规则3、对配置项的描述文档功能,性能,物理特性等配置控制是对配置项的变更申请进行初始化、评估、协调、实现,包括将通过和实现的变更加入到基线中的更改控制过程。变更控制变更分为两种类型:功能变更和错误修复变更1、功能变更:根据客户的需要增加或删除某些功能,或者修改实现功能的方法所引起的变更2、错误修改变更是为了修改漏洞的需要而产生的变更变更申请成本/效益分析决定是否进
32、行变更实施变更审查检入配置状态报告是跟踪对软件的更改的过程,它保证对正在进行和已完成的变更进行记录、监视并通报。用以跟踪对已建立基线的需求、源代码、数据,以及相关文档的更改。1、配置状态记录2、编制配置状态报告:软件配置项的状态、变更申请和已批准的变更实现情况3、配置状态发布:通知相关管理人员和软件工程师配置库收集所有与配置有关的信息,评价系统变更的效果,为配置管理过程提供管理信息1、开发库:专供给开发人员使用,内容可由开发人员决定是否修改2、受控库:也称为软件配置管理库3、产品库:存放最终产品、等待交付用户或现场安装的产品配置评审是验证一个可发布的软件基线是否包含了它应包括的所有内容。包括功
33、能配置评审和物理配置评审。1、功能配置评审:确认软件已通过测试并满足基线规定的需求说明,保证正确性。2、物理配置评审:确认将发布的软件包含了所有必需的组成部分代码、文档、数据保证完整性判断变更是否正确完成,需进行正式技术评审和软件配置审核1、正式技术评审:检查已完成修改的软件配置对象的技术正确性2、软件配置 各项产品在技术上和管理上的完整性。 软件开发环境软件开发环境的结构为层次性结构,分为四层1、宿主层:包括基本宿主硬件和基本宿主软件2、核心层:包括工具组、环境数据库和会话系统3、基本层:包括至少一组工具,如编译工具、调试工具等4、应用层:以基本层为基础补充某些工具,以适应应用软件的要求。
34、软件过程管理软件过程改良SPI:帮助软件企业对其软件制作过程的改变进进行计划、措施制定以及实施的过程,一般从问题分析开始。五条核心原则:注重问题;强调知识创新;鼓励参与;领导层的统一;计划不断地改良。 构件及其在信息系统项目中的重要性 常用构件标准COM/DCOM/COM+、CORBA和EJB 软件体系结构定义 典型体系结构 软件体系结构设计方法 软件体系结构分析与评估软件体系结构评估的主要方式:基于调查问卷或检查表的评估方式;基于场景的评估方式;基于度量的评估方式。 软件中间件 面向对象的基本概念面向对象=对象+类+继承+消息通信面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口、消
35、息、组件、模式和复用等。对象是是用来描述客观事物的一个封装,是构成系统的基本单位。 对象包含三个基本要素,对象标识、对象属性和对象服务。每一个对象必须有一个名字以区别于其他对象,这就是对象标识;属性用来描述对象的某些特征静态;服务用来封装对象所拥有的业务操作动态。 类是对象的抽象定义,是一组具有相同数据结构和相同操作的对象的集合。对象是类的实际例子。封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。 继承表示类之间的层次关系,这种关系使得某类对象可以继承另外一类对象的特征attributes和能力operations,继承又可分为单继承和多继承,
36、单继承是子类只从一个父类继承,而多继承中的子类可以从多于一个的父类继承,Java是单继承的语言,而C+允许多继承。假设类B继承类A,即类B中的对象具有类A的一切特征包括属性和操作。类A称为基类或父类或超类,类B称为类A的派生类或子类,类B在类A的基础上还可以有一些扩展。如图3-2所示,Dog和Cat类都是从Mammal继承而来,具有父类的eyeColor属性特征,因此在子类中就下用重复指定eyeColor这个属性。多态使得一个属性或变量在不同的时期可以表示不同类的对象。如图3-3所示,Rectangle和Circle都继承于Shape,对于Shape而言,会有getArea0的操作。但显而易见
37、,Rectangle和Circle的getArea()方法的实现是完全不一样的,这就表达了多态的特征。接口就是对操作标准的说明。接口只是说明操作应该做什么( What),但没有定义操作如何做( How)。接口可以理解成为类的一个特例,它只规定实现此接口的类的操作方法,而把真正的实现细节交由实现该接口的类去完成。接口在面向对象分析和设计过程中起到了至关重要的桥梁作用,系统分析员通常先把有待实现的功能封装并定义成接口,而后期程序员依据此接口进行编码实现。消息Message是对象间的交互手段,其形式如下:Message: dest.op,para其中dest指目标对象Destination Obje
38、ct,op指操作Operation,para指操作需要的参数Parameters。 统一建模语言UMLUML是一种可视化建模语言。UML标准并没有定义一种标准的开发过程,但它比较适用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的。 可视化建模UML提供了如下9种主要的图来对待建系统进行建模。1用例图:用例模型描述的是外部执行者Actor所理解的系统功能,用于需求分析阶段。参与者Actor代表与系统接口的任何事物或人,它是指代表某一种特定功能的角色,参与者都是虚拟的概念。用例Use Case是对系统行为的动态描述,它可以促进设计人员、开发人员与用户的沟通,理解正确的需求,还可以
39、划分系统与外部实体的界限,是系统设计的起点。 对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可观察的静态视图。包含和扩展:一种用于重用的包含关系,用构造型include可以从两个或者两个以上的原始用例中提取公共行为,或者发现能够使用一个组件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系。另一种是用于别离出不同的行为用构造型extend如果一个用例明显地混合了两种或两种以上地不同场景,即根据情况可能发生多种事情。我们可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰 2类图:描述类和类之间的静态关系。不仅显示信息的结构,同时还描述了系统的行为
40、。类和对象:类的命名最顶部的格子包含类的名字;类的属性中介的格子包含类的属性,用以描述该类对象的共同特点,“可见性属性名:类型=默认值约束特性”。可见性包括Public、Private、Protected 分别用号表示;类的操作Operation,“可见性:操作名参数表:返回类型约束特性”类之间的关系:依赖关系如果元素A的变化会引起元素B的变化,则称元素B依赖Dependency于元素A、泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类和子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类中继承的,而父类则是子类的泛化,在UML中,使用带空心箭头的实线表示,箭头指向
41、父类、聚合关系表示整体和部分的关系,用一个带空心菱形的实线表示电脑、显示器;组合关系:如果聚合关系中的表示“部分”的类的存在,与表示“整体”的类有紧密的关系,如公司和部门,则使用组合关系,使用带实心菱形的实线表示、实现关系用来规定接口和实现的类或组件之间的关系,接口是操作的集合,这些操作用于规定类或组件的服务,使用一个带空心箭头的虚线表示 依赖关系 泛化关系 聚合关系 组合关系 实现关系3对象图:类图的一个实例。与类图的图形表示相似。展示了一组对象及它们之间的关系。4)顺序图:用来描述对象之间动态的交互关系,着重表达对象间消息传递的时间顺序。反映系统的动态关系。箭头指向的对象提供箭头上的方法。
42、5协作图:用于描述相互合作的对象间的交互关系和链接关系;顺序图着重表达交互的时间顺序,协作图则着重体系交互对象间的静态链接关系。 6状态图:用来描述对象状态和事件之间的关系。通常用状态图来描述单个对象的行为。 7活动图:表示系统中各种活动的次序,可以用来描述用例的工作流程,也可以用来描述类中某个方法的操作行为。 8构件图:物理建模构件图、部署图可以有效的显示一组构件,以及它们之间的逻辑关系。构件图通常包括构件、接口,以及各种关系。9部署图:也称实施图,构件图是说明构件之间的逻辑关系,而布署图描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。 面向对象系统分析OMTObject Modeli
43、ng Technique方法:建立对象模型确定类和对象、确定结构与关联、划分主题、定义属性、定义服务、建立动态模型、建立功能模型。用UML进行分析:建立域模型寻找类、确定类之间的关联、为类添加职责、域模型的详细度、建立用例模型用例是什么?用例模型是如何产生的?识别参与者、合并需求获得用例、绘制成用例图、细化用例描述软件构件是“一个描述软件系统的子系统和组件,以及它们之间相互关系的学科”。架构视图定义软件的内部结构。通过试图可以从不同角度描述软件结构,主要包括逻辑视图满足功能需求、过程视图并发问题、组件视图实现问题、部署视图分布问题。 面向对象系统设计 Web Service技术Web服务的典型
44、技术包括:用于传递信息的简单对象访问协议Simple Object Access Protocol,SOAP用于描述服务的Web服务描述语言Web Services Description Language,WSDL用于Web服务的注册的统一描述、发现及集成Universal Description Discovery and Integration,UDDI用于数据交换的XML可扩展标记语言。业务流程执行语言BPEL:将一组现有的服务组合起来,从而定义一个新的WEB服务。超文本标记语言HTML:WEB组件:Java applet、 ASP 、VB脚本 J2EE架构 NET架构 工作流技术工作
45、流是针对工作中具有固定程序的常规活动,通过将其分解成定义良好的任务、角色、规则和过程来进行执行和监控,到达提高生产组织水平和工作效率的技术。1. 工作流包括过程及活动的启动和终止条件。2. 工作流包括对每个活动描述3. 工作流管理系统与工作流执行者交互,推进工作流实例的执行,并监控工作流的运行状态。工作流就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。工作流Workflow就是工作流程的计算模型,即将工作流程中的工资如何前后组织在一起的逻辑和规划在电脑中以恰当的模型表示并对其实施计算。工作流属于CSCW的一部分,它是普遍地研究一个群体如
46、何在电脑的帮助下实现协同工作的。随着Web service技术的兴起,出现了许多与工作流技术相关的Web服务标准,其中业务流程执行语言BPEL的作用是将一组现有的服务组合起来,从而定义一个新的Web服务。 建模工具IBM Rational Rose 、Borland-Together、sybase-PowerDesigner 软件开发工具Visual Studio.Net 、Borland JBuilder 软件测试工具WinRunner、LoadRunner、TestDirector 项目管理工具Microsoft Project Server 、PMOffice 网络技术标准与协议网络技术标准与协议TCP/I