《面向对象的需求分析.ppt》由会员分享,可在线阅读,更多相关《面向对象的需求分析.ppt(63页珍藏版)》请在金锄头文库上搜索。
1、课程名称:软件工程课程名称:软件工程 第第12讲讲班班 级:级:日日 期:期:教教 室:室:教学题目:第教学题目:第7章章 面向对象的需求分析。面向对象的需求分析。教学目的:理解面向对象的概念、教学目的:理解面向对象的概念、Coad/Yourdon方方法、熟悉需求分析法、熟悉需求分析CASE工具和工具和Rational过程。过程。教学重点:教学重点: Coad/Yourdon方法、方法、CASE工具。工具。教学难点:教学难点: CASE工具。工具。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:第第7章章面向对象的需求分析面向对象的需求分析面向对象(面向对象(Object
2、Oriented)方法是将现实世方法是将现实世界的事物以对象的方式映射到计算机世界的方界的事物以对象的方式映射到计算机世界的方法。用面向对象的方法求解现实世界问题的第法。用面向对象的方法求解现实世界问题的第一步便是面向对象分析。面向对象分析包含两一步便是面向对象分析。面向对象分析包含两个可以重叠的过程:用面向对象的方法对现实个可以重叠的过程:用面向对象的方法对现实世界的问题进行分析;用面向对象的工具对分世界的问题进行分析;用面向对象的工具对分析结果进行描述。析结果进行描述。本本章章重重点点介介绍绍面面向向对对象象的的方方法法,并并用用银银行行系系统统作作为为贯贯穿穿本本章章的的例例子子。在在介
3、介绍绍方方法法的的同同时时,还还将将简简单单介介绍绍面面向向对对象象的的CASE工工具具Rational Rose和和Rational统一过程。统一过程。7.1 面向对象的概念面向对象的概念从事物的过程侧面来描述事物的方法被称之为面向过从事物的过程侧面来描述事物的方法被称之为面向过程的方法。该方法在认识现实事物的整个过程中是把程的方法。该方法在认识现实事物的整个过程中是把事物内部的处理过程作为核心来描述的。事物内部的处理过程作为核心来描述的。从事物的属性侧面来描述事物的方法就是面向数据的从事物的属性侧面来描述事物的方法就是面向数据的方法,该方法在认识事物的过程中始终把事物的属性方法,该方法在认
4、识事物的过程中始终把事物的属性作为描述的核心。作为描述的核心。从事物的组成部件及每个部件的属性、功能来认识事从事物的组成部件及每个部件的属性、功能来认识事物。比如,汽车由发动机,底盘,变速箱等组成,发物。比如,汽车由发动机,底盘,变速箱等组成,发动机有排量,有冲程数等属性,同时发动机还具有启动机有排量,有冲程数等属性,同时发动机还具有启动,加大油门等操作。这就是将现实世界的事物的属动,加大油门等操作。这就是将现实世界的事物的属性和及其过程一并进行描述的方法,这种方法被称为性和及其过程一并进行描述的方法,这种方法被称为面向对象的方法。面向对象的方法。7.1 面向对象的概念面向对象的概念在抽象现实
5、世界的事物时,必须把抽象的范围限定在抽象现实世界的事物时,必须把抽象的范围限定在我们的问题域内。现实世界的事物都有很多侧面,在我们的问题域内。现实世界的事物都有很多侧面,我们只应关心那些跟我们要解决的问题相关的侧面。我们只应关心那些跟我们要解决的问题相关的侧面。 比如,在抽象和描述比如,在抽象和描述“学生学生”对象时,针对不同的对象时,针对不同的问题域,可能得到不同的抽象结果。对于学生管理问题域,可能得到不同的抽象结果。对于学生管理系统,学生的成绩、所选的课程等在问题域范围内,系统,学生的成绩、所选的课程等在问题域范围内,而学生的病史,过敏史则不在问题域内;如果是一而学生的病史,过敏史则不在问
6、题域内;如果是一个医管系统,病史,过敏史则落在问题域内。个医管系统,病史,过敏史则落在问题域内。7.1.1 对象(对象(Object)对象是现实世界事物或个体的抽象表示,抽象的结对象是现实世界事物或个体的抽象表示,抽象的结果不仅包括事物个体的属性,还包括事物的操作。果不仅包括事物个体的属性,还包括事物的操作。属性值表示了对象的内部状态。属性值表示了对象的内部状态。在分析阶段,对象的操作是对象展现给外部的服务。在分析阶段,对象的操作是对象展现给外部的服务。对象状态的改变是由对对象的操作引起的。对象状态的改变是由对对象的操作引起的。 例如,对于民航机场的指挥控制系统,例如,对于民航机场的指挥控制系
7、统,MU9114航班就是该问题域中的对象,该对象的属性可以包航班就是该问题域中的对象,该对象的属性可以包含:航班号、起飞机场、降落机场、起飞时间、降含:航班号、起飞机场、降落机场、起飞时间、降落时间,位置等;可能的操作包括离港、到港等。落时间,位置等;可能的操作包括离港、到港等。当对当对MU9114航班对象进行离港操作时,对象的状航班对象进行离港操作时,对象的状态将从停靠状态改变成飞行状态。态将从停靠状态改变成飞行状态。7.1.2 类(类(Class)类是对具有共同特征的对象的进一步抽象。类通常类是对具有共同特征的对象的进一步抽象。类通常被认为是对象的模板,通过该模板可以创建特性一被认为是对象
8、的模板,通过该模板可以创建特性一致的对象。使用类创建对象的过程实际上是类的实致的对象。使用类创建对象的过程实际上是类的实例化过程。例化过程。 7.1.3 继承(继承(Inheritance) 继承关系模拟了现实世界的一般与特殊的关系。继承关系模拟了现实世界的一般与特殊的关系。它允许我们在已有的类的特性基础上构造新类。被它允许我们在已有的类的特性基础上构造新类。被继承的类我们称之为基类(父类),在基类的基础继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生类(子类)。派生类上新建立的类我们称之为派生类(子类)。派生类的特性比基类的特性更细致。的特性比基类的特性更细致。 继承关
9、系可以表述为:派生类是基类。因此可以继承关系可以表述为:派生类是基类。因此可以说:动物是生物。生物比动物具有更一般的特性。说:动物是生物。生物比动物具有更一般的特性。7.1.4 聚合(聚合(Aggregation)聚合模拟了现实世界的部分与整体的关系。它允许利聚合模拟了现实世界的部分与整体的关系。它允许利用现有的类组成新类。比如说汽车,它是由发动机、用现有的类组成新类。比如说汽车,它是由发动机、变速箱、底盘等组成,那么我们就可以利用发动机、变速箱、底盘等组成,那么我们就可以利用发动机、变速箱、底盘等类聚合成一个新的类:汽车类。变速箱、底盘等类聚合成一个新的类:汽车类。7.1.5 消息(消息(M
10、essage) 消息是对象之间交互的唯一途径,一个对象要想使用消息是对象之间交互的唯一途径,一个对象要想使用其他对象的服务,必须向该对象发送服务请求消息。其他对象的服务,必须向该对象发送服务请求消息。而接收服务请求的对象必须对请求做出响应。而接收服务请求的对象必须对请求做出响应。 例如:当我们向银行系统的帐号对象发送取款消息时,例如:当我们向银行系统的帐号对象发送取款消息时,帐号对象将根据消息中携带的取款金额对客户的帐号帐号对象将根据消息中携带的取款金额对客户的帐号进行取款操作:验证帐号余额,如果帐号余额足够,进行取款操作:验证帐号余额,如果帐号余额足够,并且操作成功,对象将把执行成功的消息返
11、回给服务并且操作成功,对象将把执行成功的消息返回给服务请求的发送对象,否则发送交易失败消息。请求的发送对象,否则发送交易失败消息。面向对象需求分析方法的概念面向对象需求分析方法的概念面面向向对对象象的的需需求求分分析析方方法法通通过过提提供供对对象象、对对象象间间消消息息传传递递等等语语言言机机制制,让让分分析析人人员员在在解解空空间间中中直直接接模模拟拟问问题题空空间间中中的的对对象象,从从而而消消减减运运用用其其他他分分析析方方法法带带来来的的语语义义断断层层,为为需需求求建建模模活活动动提提供供直直观观、自然的语言支持和方法学指导。自然的语言支持和方法学指导。7.2 面向对象的分析方法面
12、向对象的分析方法面向对象的分析和设计面向对象的分析和设计(OOA&OOD)方法出方法出现在现在20世纪世纪70年代中期。从年代中期。从1989年到年到1994年,面向对象方法从不到年,面向对象方法从不到10种增加种增加到到50多种。这些不同的面向对象的方法多种。这些不同的面向对象的方法具有不同的建模符号体系,建模语言本具有不同的建模符号体系,建模语言本身又各有优劣,用户很难从这些方法中身又各有优劣,用户很难从这些方法中找到一个适合自己的方法。找到一个适合自己的方法。7.2.1 OMT方法方法对对 象象 建建 模模 技技 术术 ( Object Modeling Technique,OMT)由由
13、Rumbaugh等等提提出出,其其目目的的是是不不断断对对系系统统设计进行细化,直到最后的模型适合于实现为止。设计进行细化,直到最后的模型适合于实现为止。7.2.2 Booch方法方法 Booch方方法法提提出出了了描描述述对对象象系系统统的的两两个个模模型型:用用于于描描述述逻逻辑辑结结构构的的逻逻辑辑模模型型(Logical Model)和和描描述述系系统统物物理理结结构构的的物物理理模模型型(Physical Model),而而对对于于这这两两个个模模型型又又可可以以采采用用描描述述系系统统静静态态侧侧面面的的静静态态模模型型(Static Model)和和描描写写系系统统动动态态特特性
14、性的的动态模型(动态模型(Dynamic Model)两种方式来描述。两种方式来描述。7.2.3 OOSE方法方法OOSE (Object Oriented Software Engineering)是是用例(用例(use case)驱动的方法。在该方法中,用例模驱动的方法。在该方法中,用例模型是分析阶段的模型。用例模型主要用来描述系统外型是分析阶段的模型。用例模型主要用来描述系统外部角色和软件系统为这些外部角色提供的服务和功能。部角色和软件系统为这些外部角色提供的服务和功能。比如银行系统中的转帐功能既是客户角色的一个用例。比如银行系统中的转帐功能既是客户角色的一个用例。通过确定系统外部角色与
15、系统内部功能的交互作用,通过确定系统外部角色与系统内部功能的交互作用,用例模型描述了系统的完整功能。用例模型描述了系统的完整功能。 OOSE的分析阶段,要构造两种模型:的分析阶段,要构造两种模型: 需求模型从用户的角度描述了系统具有的所有功能。需求模型从用户的角度描述了系统具有的所有功能。 用例模型用例模型 需求模型由三部分组成需求模型由三部分组成 问题域对象模型问题域对象模型 接口描述接口描述需求模型需求模型分析模型分析模型7.2.3 OOSE方法方法 分析模型是通过对接口对象、实体对象分析模型是通过对接口对象、实体对象和控制对象的分析和描述而建立的模型。和控制对象的分析和描述而建立的模型。
16、接口对象、实体对象和控制对象可以完接口对象、实体对象和控制对象可以完成用例视图所要求的全部功能。成用例视图所要求的全部功能。 OOSE方法的最大的贡献就是引入了方法的最大的贡献就是引入了用例的概念。用例的概念。7.2.4 Coad/Yourdon的的OOA/OOD方法方法Coad/Yourdon面向对象的方法包含面向对象的方法包含5个步骤:个步骤: 识别对象识别对象 标识对象的属性标识对象的属性 标识对象的性为标识对象的性为 识别对象所属的类识别对象所属的类 定义主题词定义主题词 这些步骤之间并无严格的边界,比如可以在这些步骤之间并无严格的边界,比如可以在识别对象的同时标识对象的属性和行为等活
17、动。识别对象的同时标识对象的属性和行为等活动。7.2.4 Coad/Yourdon的的OOA/OOD方法方法1. 识别对象识别对象OOA最最困困难难的的部部分分就就是是如如何何将将系系统统分分解解成成相相互互作作用用的的对对象象集集合合。识识别别对对象象是是面面向向对对象象分分析析的的第第一一步步也也是是很很关关键键的的一一步步,分分析析阶阶段段的的模模型型基基本上决定了系统的可重用性和可修改性指标。本上决定了系统的可重用性和可修改性指标。分分析析阶阶段段所所得得到到的的对对象象应应该该是是实实际际问问题题域域中中有有意意义义的的个个体体或或概概念念实实体体。对对象象应应该该具具有有记记忆忆其
18、其自自身身状状态态的的能能力力。也也就就是是对对象象具具有有软软件件系系统统所所关关心心的的属属性性。而而且且对对象象不不应应该该是是孤孤立立的的。它它必必须以某种方式与系统中的其他对象进行交互。须以某种方式与系统中的其他对象进行交互。识识别别对对象象包包括括两两个个基基本本步步骤骤:标标识识潜潜在在的的对对象象和筛选对象。和筛选对象。1)标识潜在的对象)标识潜在的对象识别潜在对象主要依据用户的需求描述。识别潜在对象主要依据用户的需求描述。具具体体方方法法找找出出需需求求描描述述中中的的名名词词或或名名词词短短语语并并合合并并同同义义词词。除除去去有有动动作作含含义义的的名名词词,他他们们将被
19、描述为对象的操作而非对象本身。将被描述为对象的操作而非对象本身。可可修修改改性性和和可可重重用用性性是是面面向向对对象象系系统统的的目目标标,因因此此仅仅仅仅通通过过上上述述的的机机械械方方法法不不能能符符合合对对象象系系统统的的目目标标。其其中中正正确确的的分分析析类类之之间间的的继继承承、聚聚合合关系以及类之间的通讯方式是至关重要的。关系以及类之间的通讯方式是至关重要的。1)标识潜在的对象)标识潜在的对象需求描述中的对象可能呈现以下方式:需求描述中的对象可能呈现以下方式:外外部部实实体体。通通过过与与目目标标系系统统交交换换信信息息来来实实现现交交互互。例例如物理设备,操作人员或用户,其他
20、相关系统等。如物理设备,操作人员或用户,其他相关系统等。信息域内的概念实体。如信号、报表等。信息域内的概念实体。如信号、报表等。需需记记忆忆的的系系统统事事件件。如如交交通通监监管管系系统统中中的的一一次次汽汽车车超超速事件。速事件。角角色色。管管理理员员,工工程程师师,销销售售员员等等。不不同同的的角角色色具具有有不同的职能和权限。不同的职能和权限。场场所所、位位置置。如如卫卫星星定定位位系系统统中中被被定定位位对对象象的的位位置置,包括经度、纬度和高程。包括经度、纬度和高程。组织机构。如财务部,项目部等。组织机构。如财务部,项目部等。聚聚集集对对象象。如如物物理理设设备备,它它由由多多个个
21、成成分分对对象象聚聚集集而而成成,有时概念实体对象和外部实体对象也是聚集对象。有时概念实体对象和外部实体对象也是聚集对象。标识潜在的对象举例标识潜在的对象举例标识潜在的对象举例标识潜在的对象举例根据描述识别潜在的对象如表根据描述识别潜在的对象如表7-1 银行系统的需求描述:银行系统的需求描述: 一个银行可以有多个帐号。一个银行可以有多个帐号。 一个银行可以有多个客户。一个银行可以有多个客户。 一个客户可以持有多个帐号。一个客户可以持有多个帐号。 一个帐号可以被多个客户持有。一个帐号可以被多个客户持有。 可可以以开开户户、注注销销帐帐户户、存存钱钱、取取钱钱、银银行行内转帐、银行间转帐内转帐、银
22、行间转帐 表表7-1 银行系统潜在的对象银行系统潜在的对象潜在对象潜在对象理由理由 银行(银行(Bank) 帐号(帐号(Account) 资金(资金(Funds) 客户(客户(Client) 交易交易(Transaction)概念实体概念实体概念实体概念实体概念实体概念实体外部实体外部实体事件对象事件对象2)筛选对象)筛选对象对潜在的对象进行筛选的原则:对潜在的对象进行筛选的原则: 对对象象应应具具有有记记忆忆自自身身状状态态的的能能力力。并并且且对对象象的的属属性性应该是系统所关心的,或者是目标系统所必须的。应该是系统所关心的,或者是目标系统所必须的。对对象象应应具具有有有有意意义义的的操操
23、作作,以以某某种种方方式式修修改改其其状状态态。并并且且,对对象象应应利利用用其其操操作作为为目目标标系系统统中中的的其其他他对对象象提提供外部服务。供外部服务。对对象象应应具具有有多多种种意意义义的的属属性性。仅仅有有一一种种属属性性的的对对象象最最好表示为其他对象的属性。好表示为其他对象的属性。对对象象的的属属性性和和操操作作应应该该适适用用于于对对象象的的所所有有实实例例,这这是是对象所必须具备的基本条件。对象所必须具备的基本条件。对对象象应应是是软软件件需需求求模模型型的的必必要要成成分分,与与设设计计和和实实现现方方法法无无关关。需需求求分分析析阶阶段段只只关关心心对对象象的的外外部
24、部表表现现,而而对对象象的的具具体体实实现现则则在在设设计计阶阶段段才才会会考考虑虑。所所以以在在分分析析阶阶段不应包含实现对象功能所用到的对象。段不应包含实现对象功能所用到的对象。表表7-2 银行系统潜在对象的筛选结果银行系统潜在对象的筛选结果l对象的识别和筛选结果没有正确与错误之分,识别对象的识别和筛选结果没有正确与错误之分,识别和筛选对象的结果依赖于分析人员的素质和经验。和筛选对象的结果依赖于分析人员的素质和经验。好的分析员会得出一个易于重用和适应需求变更的好的分析员会得出一个易于重用和适应需求变更的分析结果。随着分析活动的逐步展开,需求分析员分析结果。随着分析活动的逐步展开,需求分析员
25、可以根据需要增加和删除原有的对象。可以根据需要增加和删除原有的对象。潜在对象潜在对象理由理由 银行(银行(Bank) 帐号(帐号(Account) 资金(资金(Funds) 客户(客户(Client) 交易(交易(Transaction)符合符合符合符合概念实体概念实体不符合不符合符合符合符合符合图图7-2-1 Account类类l在在Rational Rose中类用图中类用图7-2-1符号表示。其中第一框符号表示。其中第一框为类名(帐号);第二框为类的属性,为类名(帐号);第二框为类的属性,accountNo为为帐号号码、帐号号码、bank为银行、为银行、createDate为建立日期、为建
26、立日期、holder为持有人、为持有人、balance为余额;第三框是类的行为,为余额;第三框是类的行为,withdraw为取款操作。为取款操作。2. 标识对象的属性标识对象的属性1.对对象象属属性性的的组组合合标标明明了了对对象象状状态态,而而对对象象状状态态的的改改变变则则依依赖赖于于对对对对象象的的操操作作。对对于于银银行行帐帐号号对对象象来来说说,帐帐号号accountNo、帐帐号号创创建建时时间间createDate、帐帐号号归归属属银银行行bank、帐帐号号持持有有者者holder、帐帐号号余余额额balance表表明明了了该该帐帐号号当当前前状状态态。从从银银行行系系统统的的业业
27、务务描描述述中中得得知知,一一个个客客户户可可以以拥拥有有多多个个帐帐号号,同同时时一一个个帐帐号号可可为为多多个个客客户户 拥拥 有有 , 因因 此此 帐帐 号号 持持 有有 者者 holder为为 客客 户户 类类(Costumer)的的集集合合(可可以以是是链链表表或或静静态态数数组组)。帐帐号号余余额额的的改改变变只只能能通通过过三三种种操操作作来来实实现现:取取款款( Withdraw) 、 存存 款款 ( Deposit) 和和 转转 帐帐(Transfer)。)。2.在标识对象属性时,分析人员要保证识别出来对象的在标识对象属性时,分析人员要保证识别出来对象的属性落在所分析系统的信
28、息域内。为了更准确的标识属性落在所分析系统的信息域内。为了更准确的标识对象的属性,分析人员还要认真的研究用户的需求陈对象的属性,分析人员还要认真的研究用户的需求陈述,从中找到关键的形容词和带所有格的名词。述,从中找到关键的形容词和带所有格的名词。2. 标识对象的属性标识对象的属性1.例如在用户需求的描述中有例如在用户需求的描述中有“帐号的余额帐号的余额”这样的这样的短语,余额便可以识别为帐号的属性。而短语,余额便可以识别为帐号的属性。而“帐号可帐号可以有两种状态,开放的和关闭的,开放的帐号可以以有两种状态,开放的和关闭的,开放的帐号可以进行存入、提取、转帐操作进行存入、提取、转帐操作”这段描述
29、则可以识别这段描述则可以识别出帐号对象的一个重要的枚举类型的属性:帐号状出帐号对象的一个重要的枚举类型的属性:帐号状态,它可以取开放和关闭两个值,如果业务需要,态,它可以取开放和关闭两个值,如果业务需要,还可以取其他的值,比如还可以取其他的值,比如“只存入只存入”,处于这种状,处于这种状态的帐号只能进行存入和转入操作,而不能进行提态的帐号只能进行存入和转入操作,而不能进行提取和转出操作。取和转出操作。2.有时,客户的需求描述中并没有陈述,但是它是对有时,客户的需求描述中并没有陈述,但是它是对象必须的的属性,这时候。也要把该属性作为对象象必须的的属性,这时候。也要把该属性作为对象的属性。在帐号对
30、象中,用户可能没有描述帐号所的属性。在帐号对象中,用户可能没有描述帐号所属的银行,但它是银行跨行操作必须的一个属性。属的银行,但它是银行跨行操作必须的一个属性。2. 标识对象的属性标识对象的属性为为防防止止冗冗余余的的、不不正正确确的的属属性性,在在识识别别对对象象属属性性的的过程中应该注意以下过程中应该注意以下5个问题:个问题:去除对象的导出属性。去除对象的导出属性。 例例如如“年年龄龄”可可通通过过出出生生日日期期和和当当前前时时间间导导出出,因因此此没没有有必必要要将将“年年龄龄”作作为为人人的的基基本本属属性性。导导出出属属性性可可以以通通过过提提供供导导出出属属性性的的服服务务来来来
31、来实实现现。例例如如可可以以提提供供导导出出属属性性方方法法GetAge来来获获得得人人的的“年年龄龄”属属性。性。去去除除外外部部不不可可见见状状态态。在在需需求求分分析析阶阶段段,没没必必要要关关注对象的内部实现细节。注对象的内部实现细节。2. 标识对象的属性标识对象的属性 如果标识属性时出现以下情况,则对象的识别可能有如果标识属性时出现以下情况,则对象的识别可能有问题,应返回去调整。问题,应返回去调整。属性不适用于全部对象。属性不适用于全部对象。仅仅有有一一种种属属性性的的对对象象可可以以表表示示为为其其他他对对象象的的属属性性,而而不需要单独作为一个对象来实现。不需要单独作为一个对象来
32、实现。对对于于对对象象的的某某种种属属性性,如如果果该该对对象象的的特特定定实实例例会会有有多多重属性值,则应该将对象分成两个对象。重属性值,则应该将对象分成两个对象。 例例如如在在家家庭庭财财产产保保险险系系统统中中,每每个个客客户户对对象象都都具具有有名名字字、住住址址、家家用用汽汽车车排排照照等等属属性性。如如果果有有些些家家庭庭拥拥有有多多辆辆汽汽车车,则则应应考考虑虑分分裂裂“客客户户”对对象象,建建立立“家家用用汽车汽车”对象。对象。3. 识别对象的行为识别对象的行为对对象象的的行行为为是是对对象象所所能能完完成成的的功功能能,也也是是对对象象所所展展现现外部服务的总和。外部服务的
33、总和。对象的功能是由提供给其他对象的服务来定义的。对象的功能是由提供给其他对象的服务来定义的。对象的操作以外界的可见性可分为服务和内部操作。对象的操作以外界的可见性可分为服务和内部操作。 其其中中内内部部操操作作是是为为了了完完成成服服务务功功能能而而定定义义的的,外外部部不不可可见见,是是对对象象职职责责的的实实现现细细节节,因因此此不不是是分分析析阶阶段段的的描描述述的的内内容容。而而服服务务则则是是对对象象提提供供给给外外界界对对象象的的操操作作接口。是分析阶段要描述的重要内容。接口。是分析阶段要描述的重要内容。 面面向向对对象象的的系系统统是是一一个个庞庞大大的的对对象象系系统统,同同
34、类类对对象象之之间间和和不不同同的的对对象象之之间间通通过过相相互互通通信信来来完完成成复复杂杂的的系系统统状态的控制。状态的控制。3. 识别对象的行为识别对象的行为通常将对象的行为分为三类:通常将对象的行为分为三类:对象生存期行为:对象创建、维护和销毁行为;对象生存期行为:对象创建、维护和销毁行为;计算性行为;计算性行为;监视性行为或称状态事件响应行为。监视性行为或称状态事件响应行为。识别对象的行为的过程:识别对象的行为的过程:提提取取对对象象外外部部行行为为的的大大致致功功能能和和名名称称,同同时时进进行适当的精化;行适当的精化;标识对象之间的消息传递;标识对象之间的消息传递;使使用用模模
35、板板描描述述对对象象的的外外部部服服务务和和对对象象间间的的消消息息传传递递。所所谓谓模模板板是是软软件件组组织织制制定定的的用用于于描描述述对对象行为的标准格式。象行为的标准格式。3. 识别对象的行为识别对象的行为1)提取外部服务)提取外部服务v 分分析析人人员员通通过过对对问问题题陈陈述述的的分分析析,得得到到可可以以作作为为对对象象外外部部服服务务的的动动词词。如如“银银行行系系统统”中中用用户户的的问问题题描描述述“可可以以存存款款、取取款款、转转帐帐.”。分分析析员员通通过过分分析析得得到到“存存款款”操操作作是是帐帐号号的的外外部部行行为为。因因此此提提取取出出帐帐号的外部行为号的
36、外部行为“存款存款”,并命名为,并命名为Deposit。v有有些些外外部部服服务务可可能能需需要要分分析析员员通通过过对对对对象象生生存存期期、对对象象应应该该展展现现的的计计算算性性行行为为和和监监视视性性行行为为的的仔仔细细分分析析,才能得到对象潜在的外部服务。才能得到对象潜在的外部服务。 如如在在帐帐号号对对象象中中,应应添添加加潜潜在在的的服服务务:对对帐帐号号持持有有者者的的操操作作,GetHolders用用于于得得到到帐帐号号的的所所有有持持有有者者;AddHolders用用 于于 为为 帐帐 号号 添添 加加 新新 的的 持持 有有 者者 ;DeleteHolders用于删除帐号
37、中的持有者。用于删除帐号中的持有者。3. 识别对象的行为识别对象的行为对象生存期行为分析对象生存期行为分析 在面向对象系统中的对象必须提供用于在对象外部创在面向对象系统中的对象必须提供用于在对象外部创建、销毁和维护该对象的方法。这些方法就是对象的生建、销毁和维护该对象的方法。这些方法就是对象的生存期行为。在使用对象前应该先创建(存期行为。在使用对象前应该先创建(create)它,然它,然后可以不改变或多次改变对象的状态。当对象不再被使后可以不改变或多次改变对象的状态。当对象不再被使用的时候,要使用对象的用的时候,要使用对象的Destroy方法来销毁对象。方法来销毁对象。CreateDestro
38、yChange图图7-2-2 对象生存期对象生存期3. 识别对象的行为识别对象的行为对象计算性行为分析对象计算性行为分析 多多用用来来利利用用对对象象的的基基本本属属性性计计算算对对象象的的导导出出属属性性,或或者者应应其其他他对对象象的的请请求求完完成成数数据据处处理理。根根据据职职员员的的出出生生年年月月计计算算其其年年龄龄的的方方法法即即是是职职员员对对象象的的计计算算性性方法。方法。对象监视性行为分析对象监视性行为分析 为为了了分分析析和和提提取取对对象象的的监监视视性性行行为为。分分析析人人员员首首先先应应提提取取对对象象的的状状态态。然然后后列列出出该该状状态态在在外外部部事事件件
39、的的激激励励后后所所处处的的状状态态值值。表表7-3给给出出了了帐帐号号对对象象的的状状态态-事件事件-响应表。响应表。3. 识别对象的行为识别对象的行为表表7-3 帐号对象状态帐号对象状态-事件事件-响应表响应表状态状态事件事件响应(状态)响应(状态)opencloseclosedcloseopenopenedopenwriteoffwirteoffclosewriteoffwriteoffwriteoff 销帐(注销)销帐(注销)3. 识别对象的行为识别对象的行为l比状态比状态-事件事件-响应表更为有效的工具是对象状态图。响应表更为有效的工具是对象状态图。它可以精确地描述对象所有可能的状态
40、和导致状态跃它可以精确地描述对象所有可能的状态和导致状态跃迁的事件。下面给出了帐号对象的状态图:对象创建迁的事件。下面给出了帐号对象的状态图:对象创建时的状态为打开状态,当使用事件时的状态为打开状态,当使用事件close关闭帐号时,关闭帐号时,帐号的状态变成帐号的状态变成close。同样我们可以用注销事件使对同样我们可以用注销事件使对象的状态跃迁至注销状态。象的状态跃迁至注销状态。writeoffCloseopenwriteoffOpenCloseWriteoff图图7-2-3 “帐帐号号”对对象象状状态态图图3. 识别对象的行为识别对象的行为2)标识对象间的消息传递)标识对象间的消息传递v对
41、对象象之之间间的的交交互互和和通通讯讯是是由由对对象象之之间间的的消消息息传传递递来来实实现现的的。消消息息的的传传递递过过程程涉涉及及到到三三个个方方面面:消消息息的的发发送送者、消息的接收者和消息本身。消息可分为以下几类:者、消息的接收者和消息本身。消息可分为以下几类:Obj1激激活活Obj2;如如在在Obj1中中使使用用CreateObj2( )创创建建Obj2。Obj1提提供供信信息息给给Obj2;如如在在Obj1中中使使用用Obj2.SetPara( ),用于设置用于设置Obj2的某些属性。的某些属性。Obj1询询问问Obj2;如如在在Obj1中中使使用用Obj2.GetPara(
42、)获获得得Obj2的基本属性或导出属性。的基本属性或导出属性。Obj1命命令令Obj2 完完成成某某项项功功能能。如如调调用用Obj2.SendData( )发送数据。发送数据。3. 识别对象的行为识别对象的行为图图7-2-4 消息传递消息传递MessageObj1Obj23. 识别对象的行为识别对象的行为3)外部服务的表示)外部服务的表示v筛选和描述对象外部服务的策略:筛选和描述对象外部服务的策略:只有外部可以观察的行为才构成外部服务只有外部可以观察的行为才构成外部服务使用统一的模板或工具描述对象及其外部服务使用统一的模板或工具描述对象及其外部服务使使用用简简洁洁、精精确确、无无歧歧义义的的
43、文文字字描描述述外外部部服服务务的的处处理步骤和功能。理步骤和功能。v在在系系统统分分析析阶阶段段,对对象象行行为为的的定定义义只只局局限限在在对对象象的的外外部部行行为为上上,至至于于对对象象职职责责的的实实现现细细节节,则则是是面面向向对象设计的任务。对象设计的任务。v在在CASE工工具具中中可可以以使使用用活活动动图图对对服服务务过过程程进进行行详详细细描描述述,以以使使分分析析员员、客客户户、和和其其他他参参项项人人员员在在对对象的职责上达成共识。象的职责上达成共识。4. 识别对象所属的类识别对象所属的类具具有有共共同同特特性性的的对对象象可可以以抽抽象象成成类类,抽抽象象出出来来的的
44、类类又又可可以以实实例例化化成成对对象象。在在面面向向对对象象的的方方法法中中。每每个个对对象象都都是是通通过过实实例例化化类类来来创创建建的的,因因此每个对象应该有自己所属的类。此每个对象应该有自己所属的类。 面向对象的需求模型中,对象可能属于不同面向对象的需求模型中,对象可能属于不同的类,这些类之间可能存在继承关系和聚合关的类,这些类之间可能存在继承关系和聚合关系。因此在面向对象方法的分析阶段,主要任系。因此在面向对象方法的分析阶段,主要任务就是标识对象所属的类并建立类之间的继承务就是标识对象所属的类并建立类之间的继承关系和聚合关系。从而形成类族。关系和聚合关系。从而形成类族。5. 定义主
45、题词定义主题词当当分分析析模模型型中中的的某某些些类类具具有有很很大大的的相相关关性性、且且用用于于完完成成一一组组内内聚聚性性很很高高的的功功能能时时,我我们们可可以以把把这这些些类类定定义义为为一一个个主主题题,或或称称子子系系统统,不不同同主主题题词词下下的的类类的的耦耦合合则则较较松松散散,只只通通过过少少量量的的消息进行连接。消息进行连接。有有的的面面向向对对象象的的类类库库也也将将主主题题词词同同其其包包含含的的类类统统称称为为包包(Package)。如如JAVA 类类库库中中的的数数据据库库操操作作包包,界界面面包包等等。主主题题是是抽抽象象的的概概念念,需要分析员在分析的过程中
46、给予合适的概括。需要分析员在分析的过程中给予合适的概括。5. 定义主题词定义主题词定义主题词应遵循的策略:定义主题词应遵循的策略:由由经经验验丰丰富富的的的的分分析析人人员员标标识识系系统统的的对对象象和和类类,在在此此基基础础上上将将紧紧密密结结合合的的类类划划分分成成主主题题词词。这这些主题词在现实世界中应该是自然的。些主题词在现实世界中应该是自然的。根根据据主主题题词词将将需需求求分分析析的的任任务务划划分分给给各各分分析析小小组。组。随随着着分分析析的的进进行行,主主题题词词可可以以按按照照树树状状结结构构继继续续划划分分,直直到到主主题题词词的的内内容容是是类类而而不不是是主主题题词
47、词为止。为止。5. 定义主题词定义主题词l例如,银行系统通常可划分为三个主题词:例如,银行系统通常可划分为三个主题词:人机界面主题词人机界面主题词包含了用于实现人机界面操作的类;包含了用于实现人机界面操作的类;银行业务主题词银行业务主题词包含了所有实现银行业务的类,客包含了所有实现银行业务的类,客户类就在这个主题词下;户类就在这个主题词下;数据操作主题词数据操作主题词包含所有有关数据操作的类。比如包含所有有关数据操作的类。比如完成添加、更新、查询等操作的类。完成添加、更新、查询等操作的类。人机界面人机界面银行业务银行业务数据操作数据操作图图7-2-5 银行系统的主题词银行系统的主题词 5. 定
48、义主题词定义主题词人机界面主题词下还可进一步细分为前台主题人机界面主题词下还可进一步细分为前台主题词和分析主题词:词和分析主题词:前台主题词前台主题词包含所有前台操作界面的类,比包含所有前台操作界面的类,比如用于实现登录界面的登录界面类,用于实现如用于实现登录界面的登录界面类,用于实现存款界面的存款界面类。存款界面的存款界面类。分析主题词分析主题词包含银行决策者所使用的所有用包含银行决策者所使用的所有用于经营状况分析的界面。于经营状况分析的界面。前台前台分析分析图图7-2-6 人机界面的主题词人机界面的主题词 7.3 面向对象的需求分析面向对象的需求分析CASE工具工具Rational(现已被
49、现已被IBM公司兼并)公司遵公司兼并)公司遵循循UML(统一建模语言)标准的统一建模语言)标准的CASE工具工具Rational Rose集面向对象分析、面集面向对象分析、面向对象设计、测试、代码框架生成、逆向对象设计、测试、代码框架生成、逆向工程等工具于一身。在构建面向对象向工程等工具于一身。在构建面向对象系统的整个过程中,除编码之外,我们系统的整个过程中,除编码之外,我们可以不离开可以不离开Rational Rose的工具环境,的工具环境,就能生成软件工程全部配置。就能生成软件工程全部配置。7.3 面向对象的需求分析面向对象的需求分析CASE工具工具l用用例视、设计视、过程视、实现视和部署
50、视便可以用用例视、设计视、过程视、实现视和部署视便可以完整的描述一个面向对象的系统。完整的描述一个面向对象的系统。lUML的各种图则为系统的不同视提供了建模工具。的各种图则为系统的不同视提供了建模工具。图图7-3-1 面向对象系统的视面向对象系统的视设计视设计视实现视实现视过程视过程视配置视配置视用例视用例视7.3.1 视视1)用例视()用例视(use case view) 系系统统的的用用例例视视通通过过用用例例来来描描述述可可为为用用户户、分分析析人人员员和和测测试试人人员员所所能能看看见见和和理理解解的的系系统统行行为为,用用例例视视的的静静态态方方面面由由用用例例图图来来描描述述。动动
51、态态方方面面由由交交互互作作用用图图、状状态态图和活动图来描述。图和活动图来描述。2)设计视()设计视(design view) 系系统统的的设设计计视视包包括括系系统统中中的的类类、接接口口和和协协作作,也也包包括括系系统统应应该该提提供供给给用用户户的的服服务务。设设计计视视的的静静态态方方面面由由类类图图和和对对象象图图来来描描述述。动动态态方方面面也也由由交交互互作作用用图图、状状态态图和活动图来描述。图和活动图来描述。3)过程视()过程视(process view) 过过程程视视包包括括形形成成系系统统的的并并发发和和同同步步机机制制的的线线程程和和过过程程,描描述述了了系系统统的的
52、性性能能、可可扩扩展展性性和和总总的的处处理理能能力力。过过程程视视的的静静态态方方面面由由类类图图和和对对象象图图来来描描述述。动动态态方方面面由由交交互作用图、状态图和活动图来描述。互作用图、状态图和活动图来描述。7.3.1 视视4)实现视()实现视(Implementation view) 系系统统的的实实现现视视包包括括用用于于组组装装物物理理系系统统的的组组件件和和文文件件,主主要要描描述述了了系系统统版版本本的的配配置置管管理理。系系统统版版本本是是由由独独立立的的组组件件和和文文件件构构成成的的可可运运行行系系统统。实实现现视视的的静静态态方方面面由由组组件件图图来来描描述述,动
53、动态态方方面面也也由由交交互互作作用用图图、状态图和活动图来描述。状态图和活动图来描述。5)部署视)部署视(deployment view) 部署视包括了构成并能够与运行软件系统硬件拓部署视包括了构成并能够与运行软件系统硬件拓扑的节点,主要描述了物理系统组成部分的分布、扑的节点,主要描述了物理系统组成部分的分布、交付和安装,部署视的静态方面由部署图来描述;交付和安装,部署视的静态方面由部署图来描述;动态方面也由交互作用图、状态图和活动图来描述。动态方面也由交互作用图、状态图和活动图来描述。7.3.2 UML的图的图1)类图)类图 类图描述了类接口协作以及类之间的关系。类图是类图描述了类接口协作
54、以及类之间的关系。类图是 在面向对象系统建模中的最常用的图。在面向对象系统建模中的最常用的图。2)对象图)对象图 对象图描述了对象以及对象之间的关系。通常是系对象图描述了对象以及对象之间的关系。通常是系 统某一时刻对象的快照。统某一时刻对象的快照。3)用例图)用例图 用例图描述了用例、参与者以及它们之间的关系。用例图描述了用例、参与者以及它们之间的关系。4)交互作用图)交互作用图 交互作用图包括时序图和协作图两种。交互作用图交互作用图包括时序图和协作图两种。交互作用图 描述了对象之间的交互作用,它由对象和对象之间的描述了对象之间的交互作用,它由对象和对象之间的关系组成。时序图强调的是消息以时间
55、为顺序的交互关系组成。时序图强调的是消息以时间为顺序的交互作用;协作图则强调发送和接收消息的对象的结构组作用;协作图则强调发送和接收消息的对象的结构组织的交互作用。时序图和协作图可以相互转换。织的交互作用。时序图和协作图可以相互转换。7.3.2 UML的图的图5)状态图)状态图 状状态态图图描描述述了了一一个个状状态态机机,由由状状态态、跃跃迁迁、事事件件和和活活动动组组成成,状状态态图图强强调调了了对对象象按按事事件件排排序序的的行行为为,在对实时系统建模时在对实时系统建模时,状态图尤其有用。状态图尤其有用。6)活动图)活动图 一一种种特特殊殊的的状状态态图图,描描述述了了系系统统中中从从活
56、活动动到到活活动动的的控制流,活动图在为系统进行功能建模时尤其有用。控制流,活动图在为系统进行功能建模时尤其有用。7)组件图)组件图 描述了系统中组件的组织结构和依赖关系。描述了系统中组件的组织结构和依赖关系。8)部署图)部署图 描述运行处理节点和位于节点上的软件组件的配置。描述运行处理节点和位于节点上的软件组件的配置。7.3.3 银行系统的需求分析银行系统的需求分析1)用例图)用例图 用例图用于描述系统的参与者和系统应完成的用例图用于描述系统的参与者和系统应完成的功能,下面给出银行系统的用例图(图功能,下面给出银行系统的用例图(图7-3-2)。)。在用例图的设计过程中需要完成识别参与者和识在
57、用例图的设计过程中需要完成识别参与者和识别用例两个步骤。别用例两个步骤。v参与者即是用例的激发者,它可以是角色,也可参与者即是用例的激发者,它可以是角色,也可以是外部系统。以是外部系统。v用例则是系统提供给参与者的功能。图中的椭圆用例则是系统提供给参与者的功能。图中的椭圆代表的是用例,人形标记代表的是参与者。代表的是用例,人形标记代表的是参与者。7.3.3 银行系统的需求分析银行系统的需求分析图图7-3-2 银行系统的用例图银行系统的用例图存款存款取款取款转帐转帐登录登录帐号维护帐号维护银行职员银行职员客户客户银行银行行间转帐行间转帐行内转帐行内转帐银行职员银行职员7.3.3 银行系统的需求分
58、析银行系统的需求分析2)类图)类图 图图7-3-3仅给出银行系统中银行业务下的类图,其仅给出银行系统中银行业务下的类图,其中中Account和和Bank之间是聚合关系,而之间是聚合关系,而Withdraw和和Transaction则是子类和父类的关系。则是子类和父类的关系。图图7-3-3 “银行业务银行业务”类类图图 输入姓名输入姓名和密码和密码7.3.3 银行系统的需求分析银行系统的需求分析3)活动图)活动图 活活动动图图描描述述了了用用例例的的动动态态执执行行过过程程,活活动动图图强强调调从从活活动动到到活活动动的的控控制制流流。在在设设计计活活动动图图时时,每每个个用用例例对对应应一一个
59、个活活动动图图。登登录录用用例例的的活活动动图图,如如右右图所示。图所示。银行职员银行职员系统系统提示提示输入帐号输入帐号错误信息错误信息提交提交校验信息校验信息进入银行系统进入银行系统7.3.3 银行系统的需求分析银行系统的需求分析4)时序图)时序图v描描述述从从对对象象到到对对象象的的控控制制流流,即即完完成成特特定定功功能能发生在系统对象之间的信息交换。发生在系统对象之间的信息交换。v下下面面给给出出取取款款的的时时序序图图(如如图图7-3-5所所示示)。“取取款款”时时序序图图精精确确的的描描述述了了取取款款过过程程,也也就就是是银银行行系系统统中中各各对对象象以以时时间间为为基基准准
60、的的信信息息交交互互过过程。程。7.3.3 银行系统的需求分析银行系统的需求分析图图7-3-5 取款的时序图取款的时序图7.4 Rational 统一过程统一过程RUP(Rational Unified Process)属于软件工属于软件工程过程的范畴,它提供了在开发机构中分派任程过程的范畴,它提供了在开发机构中分派任务和责任的方法,其目标是在可预见的日程和务和责任的方法,其目标是在可预见的日程和预算前提下确保满足最终用户需求的高质量软预算前提下确保满足最终用户需求的高质量软件的产生。件的产生。RUP是是一一个个可可裁裁减减的的过过程程,RUP为为配配置置适适合合特特定定需需要要的的开开发发过
61、过程程提提供供了了支支持持,因因此此RUP适适用用于规模从小到大的各类软件的开发。于规模从小到大的各类软件的开发。7.4 Rational 统一过程统一过程RUP的二维结构包括时间和过程组件两个轴(如图的二维结构包括时间和过程组件两个轴(如图7-4-1所示)。为使软件项目开发成功,两个轴都要所示)。为使软件项目开发成功,两个轴都要被考虑。其中被考虑。其中:v商业建模(商业建模(Business Modeling)、)、需求需求(Requirements)、)、分析和设计(分析和设计(AnalysisDesign)、)、实现(实现(Implementation)、)、测试测试(Test)和部署(
62、和部署(Deployment)是是RUP的核心过的核心过程工作流。程工作流。v配置和变更管理(配置和变更管理(Configuration Change Management)、)、项目管理(项目管理(Project Management)和环境(和环境(Environment)是是RUP的的核心支持工作流。核心支持工作流。7.4 7.4 Rational Rational 统一过程统一过程统一过程统一过程图图7-4-1 RUP的二维结构的二维结构7.4.1 时间轴时间轴RUP过过程程是是一一个个迭迭代代递递增增的的开开发发过过程程。使使用用迭迭代代递递增增式式的的开开发发方方法法,不不是是在在
63、项项目目结结束束时时一一次次性性提提交交软软件件,而而是是分分块块逐逐次次开开发发和和提提交交,每每次次迭迭代代选选择择一一些些功功能能点点,添添加加到到现现有有的的软软件件中中去去,经经过过一一次次迭迭代代后后,再再选选择择其其他他的的功功能能点点,进进行行新的迭代过程。新的迭代过程。RUP将将软软件件生生命命周周期期划划分分成成小小的的执执行行周周期期,每每个个周周期期都都致致力力于于构构造造软软件件的的新新版版本本。RUP软软件件生生命命周周期期被被分分成成四四个个连连续续的的阶阶段段:初初始始阶阶段段(Inception);细细化化阶阶段段(Elaboration);构构 造造 阶阶
64、段段 ( Construction) ; 交交 付付 阶阶 段段(Transition)。)。7.4.1 时间轴时间轴1)初始阶段)初始阶段 初初始始阶阶段段的的主主要要任任务务是是建建立立软软件件系系统统的的商商业业模模型型,需需要要考考虑虑项项目目的的效效益益,并并进进行行初初步步的的需需求求分分析析。这这一阶段需要与系统的用户和领域专家进行讨论。一阶段需要与系统的用户和领域专家进行讨论。 在初始阶段,要为系统建立商业案例并确定项目在初始阶段,要为系统建立商业案例并确定项目的边界。为完成这些任务,必须识别出所有与系统的边界。为完成这些任务,必须识别出所有与系统交互的外部实体,并在较高层次上
65、定义交互的特性。交互的外部实体,并在较高层次上定义交互的特性。这包括识别出所有用例并描述几个重要的用例。这包括识别出所有用例并描述几个重要的用例。 商业案例包括验收标准、风险评估、所需资源的商业案例包括验收标准、风险评估、所需资源的估计以及体现项目开发重要里程碑的阶段计划。估计以及体现项目开发重要里程碑的阶段计划。7.4.1 时间轴时间轴初始阶段的主要输出:初始阶段的主要输出:蓝蓝图图文文档档:是是关关于于项项目目核核心心需需求求、关关键键特性和主要约束的总体蓝图。特性和主要约束的总体蓝图。用例模型:应完成至少用例模型:应完成至少20。项目术语表:规范项目范围内的术语。项目术语表:规范项目范围
66、内的术语。初始的商业案例和风险评估。初始的商业案例和风险评估。项目计划、体现阶段和迭代。项目计划、体现阶段和迭代。商业模型。商业模型。一个或多个原型。一个或多个原型。7.4.1 时间轴时间轴2)细化阶段)细化阶段 细化阶段的主要任务是分析问题域,建细化阶段的主要任务是分析问题域,建立坚实的体系结构基础、制定项目计划、立坚实的体系结构基础、制定项目计划、消除项目中高风险因素。消除项目中高风险因素。 在细化阶段,通过一次或多次迭代建在细化阶段,通过一次或多次迭代建立可执行的结构原型,这个工作应该至立可执行的结构原型,这个工作应该至少处理初始阶段中识别出来的关键用例少处理初始阶段中识别出来的关键用例
67、通常揭示了项目中存在的主要技术风险。通常揭示了项目中存在的主要技术风险。7.4.1 时间轴时间轴细化阶段的主要输出:细化阶段的主要输出:基本完成的用例模型:至少完成基本完成的用例模型:至少完成80以上。以上。补充非功能需求和无法与特定用例关联的需求。补充非功能需求和无法与特定用例关联的需求。软件体系结构的描述。软件体系结构的描述。可执行的软件原型。可执行的软件原型。修订过的风险清单和商业案例。修订过的风险清单和商业案例。整个项目的开发计划,包括每一次迭代系统应整个项目的开发计划,包括每一次迭代系统应实现的目标。实现的目标。更新的开发案例。更新的开发案例。初步的用户手册。初步的用户手册。7.4.
68、1 时间轴时间轴3)构造阶段)构造阶段 在构造阶段,系统的新特性被开发并集成到产在构造阶段,系统的新特性被开发并集成到产品中,所有的新特性都被充分和彻底的测试。品中,所有的新特性都被充分和彻底的测试。 构造阶段的输出:构造阶段的输出: 软件产品。软件产品。 用户手册。用户手册。 当前版本的描述。当前版本的描述。 4)交付阶段。)交付阶段。 部署和配置系统,并交付给用户。部署和配置系统,并交付给用户。7.4.2 工作流工作流沿沿着着过过程程组组件件轴轴,过过程程被被划划分分为为核核心心过过程程工工作作流流和和核核心心支支持持工工作作流流。工工作作流流是是由由活活动动构构成成的的活动序列。活动序列
69、。过过程程组组件件轴轴的的每每个个活活动动都都应应用用于于时时间间轴轴的的每每个个阶阶段段,例例如如,构构造造阶阶段段是是由由多多次次迭迭代代组组成成,每每一一次次迭迭代代都都包包含含商商业业建建模模、需需求求、分分析析和和设设计计、实实现现和和测测试试,在在构构造造的的最最后后一一次次迭迭代代还还应应包包括括配配置置,每每次次迭迭代代所所得得到到的的产产品品应应满满足足项项目目需需求求的的某某一一个个子子集集,或或被被提提交交给给用用户户,或或是是软软件件组组织织内内部部提提交交。每每一一次次迭迭代代都都包包含含了了软软件件生生命命周周期的所有阶段。期的所有阶段。7.4.2 工作流工作流活活
70、动动在在各各个个阶阶段段应应用用的的程程度度由由开开发发阶阶段段决决定定。例例如如,在在初初始始阶阶段段,商商业业建建模模的的工工作作要要比比需需求求工工作作多多;在在细细化化阶阶段段,分分析析与与设设计计的的工工作作要要比比实实现现的的工工作作多多;系系统统的的实实现现主主要要发发生生在在构构造造阶阶段段;系系统统的的配置工作主要发生在交付阶段。配置工作主要发生在交付阶段。7.4.3 微过程的划分微过程的划分由由图图7-4-1可可以以看看出出,每每次次迭迭代代通通常常都都包包含含一一个个微微过过程程,微微过过程程是是由由上上述述九九个个工工作作流流组组成成。每每个个微微过过程程的的任任务务类类似似于于瀑瀑布布模模型型的的各各个个阶阶段段,这里不再详述。这里不再详述。