1、信息管理技术信息管理技术1第七章第七章 信息系统开发方法信息系统开发方法信息管理技术信息管理技术2主要内容主要内容1 1、信息系统、信息系统开发开发概述概述2 2、面向过程开发方法面向过程开发方法3 3、面向数据开发方法面向数据开发方法4 4、面向对象开发方法面向对象开发方法信息管理技术信息管理技术37 7.1 .1 信息系统信息系统开发开发概述概述信息系统开发信息系统开发信息系统工程信息系统工程系统思想指导开发:系统思想指导开发:l 整体思想:整体规划、整体设计、生命周期整体思想:整体规划、整体设计、生命周期l 综合思想:子系统集成、综合思想:子系统集成、l 优化思想:多方案设计比较、优化优
2、化思想:多方案设计比较、优化信息管理技术信息管理技术4环境科学环境科学社会科学社会科学工程技术工程技术计算机科学计算机科学管理科学管理科学经济经济法律法律知识维(科学技术)知识维(科学技术)逻辑维(方法步骤)逻辑维(方法步骤)时间维(时间进程)时间维(时间进程)明确问题明确问题选择目标选择目标系统综合系统综合系统分析系统分析方案优化方案优化作出决策作出决策付诸实施付诸实施A B C D E F G6 5 4 3 2 1规划阶段规划阶段方案阶段方案阶段研制阶段研制阶段生产阶段生产阶段运行阶段运行阶段更新阶段更新阶段1 1、霍尔三维结构、霍尔三维结构信息管理技术信息管理技术52 2、信息系统生命周
3、期、信息系统生命周期信息管理技术信息管理技术6信息管理技术信息管理技术7新系统运行新系统运行小量修改、维护、评价活动小量修改、维护、评价活动原系统(现行系统)运行原系统(现行系统)运行系统开发的各个阶段系统开发的各个阶段小量修改、维护、小量修改、维护、评价活动评价活动新系统生命周期新系统生命周期原系统生命周期原系统生命周期系统开系统开发准备发准备可行性可行性研究研究系统分析系统分析(逻辑设计逻辑设计)系统设计系统设计(物理设计物理设计)系统系统实施实施维护维护评价评价信息管理技术信息管理技术83 3、信息系统开发的条件、信息系统开发的条件o 领导重视领导重视o 管理规范管理规范l 工作程序化工
4、作程序化l 业务标准化业务标准化l 报表统一化报表统一化l 资料完善化、代码化资料完善化、代码化信息管理技术信息管理技术94 4、开发方法的基本思想、开发方法的基本思想问题空间问题空间( (业务系统业务系统) )求解空间求解空间( (信息系统信息系统) )分析分析( (问题定义问题定义) )解决解决( (问题表达问题表达) )映射关系映射关系过程过程数据数据对象对象过程:结构化过程:结构化、原型、原型法法数据:信息系统工程数据:信息系统工程对象:面向对象对象:面向对象信息管理技术信息管理技术107 7.2 .2 面向过程面向过程开发方法开发方法信息管理技术信息管理技术11系统生命周期的管理策略
5、有两种:系统生命周期的管理策略有两种: 瀑布式瀑布式 迭代式迭代式信息管理技术信息管理技术12瀑布式瀑布式信息管理技术信息管理技术13迭代式迭代式信息管理技术信息管理技术141 1、结构化开发方法、结构化开发方法(SM Structured Method)(SM Structured Method)过程驱动过程驱动采取瀑布式开发管理策略采取瀑布式开发管理策略信息管理技术信息管理技术15信息管理技术信息管理技术16缺点:缺点:l开发周期过长开发周期过长l难以适应迅速变化的环境难以适应迅速变化的环境l在开发过程中用户很难参与评价在开发过程中用户很难参与评价 结构化开发方法的优、缺点结构化开发方法的
6、优、缺点优点:优点:l系统边界清晰,避免系统需求的无计划扩展系统边界清晰,避免系统需求的无计划扩展l系统文档完备、论证充分系统文档完备、论证充分信息管理技术信息管理技术17信息管理技术信息管理技术18信息管理技术信息管理技术19信息管理技术信息管理技术20信息管理技术信息管理技术21信息管理技术信息管理技术22(1)识别基本需求)识别基本需求(2)构造初始原型)构造初始原型(3)使用和验证原型)使用和验证原型(4)修正和改进原型)修正和改进原型(5)判断原型完成)判断原型完成(6)生成文档并交付使用)生成文档并交付使用强有力的开发工强有力的开发工具软件支持环境:具软件支持环境:CASECASE
7、工具工具信息管理技术信息管理技术23CASE工具工具 Computer Aided Software Engineering Computer Aided Software Engineering 可以帮助人们进行快速的开发可以帮助人们进行快速的开发信息管理技术信息管理技术24信息管理技术信息管理技术25信息管理技术信息管理技术26原型化方法适用于用户需求不清,管理及业务处理原型化方法适用于用户需求不清,管理及业务处理不稳定,需求常常变化不稳定,需求常常变化规模小,不太复杂,而且不要求集中处理的系统规模小,不太复杂,而且不要求集中处理的系统有比较成熟借鉴经验的系统开发有比较成熟借鉴经验的系统开
8、发原型法的最大优点是能提高用户满意度原型法的最大优点是能提高用户满意度使用原型法开发系统周期短,成本低使用原型法开发系统周期短,成本低 信息管理技术信息管理技术27原型化方法不适于开发大的系统原型化方法不适于开发大的系统原型化方法开发的时候,测试和文档工作常常容易被原型化方法开发的时候,测试和文档工作常常容易被忽略忽略原型化方法的另一个缺点是运行的效率可能会比较低原型化方法的另一个缺点是运行的效率可能会比较低 信息管理技术信息管理技术287 7. .3 3 面向数据面向数据开发方法开发方法 根据系统数据组织与存取要求来建立系统模型根据系统数据组织与存取要求来建立系统模型的方法。数据驱动的方法的
9、方法。数据驱动的方法l 实体关系图实体关系图l 业务域分析业务域分析l 信息模型信息模型信息管理技术信息管理技术291 1、业务域分析、业务域分析o第一步,找出用户。并定义这些用户之间的关系。第一步,找出用户。并定义这些用户之间的关系。o第二步,找出每个用户要做的事,即业务用例第二步,找出每个用户要做的事,即业务用例o第三步,利用业务场景图帮助分析业务流程第三步,利用业务场景图帮助分析业务流程o第四步,绘制用例场景图。第四步,绘制用例场景图。o第五步,从第三步或第四步中绘制的活动图中找到每第五步,从第三步或第四步中绘制的活动图中找到每一步活动将使用到的或产生的结果一步活动将使用到的或产生的结果
10、信息管理技术信息管理技术302 2、信息模型、信息模型数据的静态、动态、交互描述数据的静态、动态、交互描述信息管理技术信息管理技术31 以对象设计为基础,强调系统重用。具有较强的适应性以对象设计为基础,强调系统重用。具有较强的适应性面向对象继承面向对象继承+封装封装+抽象抽象7 7. .4 4 面向对象面向对象开发方法开发方法 (OOM (OOM Object Oriented Method)Object Oriented Method)信息管理技术信息管理技术32 真 正 的 面 向 对 象 程 序 设 计 (真 正 的 面 向 对 象 程 序 设 计 ( O b j e c t O r i
11、 e n t e d O b j e c t O r i e n t e d ProgrammingProgramming,简称,简称OOPOOP)是由)是由Alan KeyzAlan Keyz主持设计的主持设计的SmalltalkSmalltalk语言语言 面向对象(面向对象(Object OrientedObject Oriented,简称,简称OOOO)的概念应起源于)的概念应起源于挪威的挪威的K . NyguardK . Nyguard等人开发的模拟离散事件的程序设计等人开发的模拟离散事件的程序设计语言语言SimulaSimula 67 67 2020世纪世纪8080年代面向对象的分析
12、、面向对象的设计等方法和年代面向对象的分析、面向对象的设计等方法和技术才开始兴起技术才开始兴起 信息管理技术信息管理技术3319881988年年ShlaerShlaer和和 MellofMellof 首先在其首先在其面向对象的系统分析面向对象的系统分析(Object-Oriented System AnalysisObject-Oriented System Analysis)一书中,集中使用)一书中,集中使用ERER模型(模型( Entity-Relationship ModelEntity-Relationship Model)来捕捉用户需求信息)来捕捉用户需求信息19911991年年 C
13、oadCoad和和YourdonYourdon在在面向对象的分析面向对象的分析一书中提出了一书中提出了 OOAOOA方法方法在在19911991年,年,RumbaughRumbaugh等人提出了一个用于系统分析和设计的等人提出了一个用于系统分析和设计的“面向对象的建模技术(面向对象的建模技术(Object-Oriented Modeling Object-Oriented Modeling TechnologyTechnology,简称为,简称为OMTOMT)” ” 19921992年,年,EmbleyEmbley等人又提出了等人又提出了OSAOSA(面向对象的系统分析)方(面向对象的系统分析
14、)方法法 信息管理技术信息管理技术34o传统开发方法存在问题传统开发方法存在问题 1.1.软件重用性差软件重用性差 2. 2.软件可维护性差软件可维护性差 3.3.开发出的软件不能满足用户需开发出的软件不能满足用户需信息管理技术信息管理技术35对象是现实世界中的事物,面向对象系统运行过程中对象是现实世界中的事物,面向对象系统运行过程中的基本实体的基本实体对象的状态和行为:数据、操作对象的状态和行为:数据、操作对象是数据与操作的封装体对象是数据与操作的封装体 信息管理技术信息管理技术36l类是具有相同属性和功能的一组对象的集合。它为属于该类是具有相同属性和功能的一组对象的集合。它为属于该类的全部
15、对象提供统一的抽象描述类的全部对象提供统一的抽象描述l类与对象的关系如同一个模具与用这个模具铸造出来的铸类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。类给出了属于该类的全部对象的抽象定义,件之间的关系。类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。所以,也有人把类而对象则是符合这种定义的一个实体。所以,也有人把类称做对象的模板或对象又称做类的一个实例称做对象的模板或对象又称做类的一个实例信息管理技术信息管理技术37实例就是由某个特定的类所描述的一个具体的对象实例就是由某个特定的类所描述的一个具体的对象类是对具有相同属性和行为的一组相似的对象的抽象类是
16、对具有相同属性和行为的一组相似的对象的抽象类在现实世界中并不能真正存在类在现实世界中并不能真正存在 信息管理技术信息管理技术38信息管理技术信息管理技术39 例如例如, ,用类定义一个名为用类定义一个名为DateDate的关于日期的抽象的关于日期的抽象数据类型,它能设置年、月、日的具体值,并数据类型,它能设置年、月、日的具体值,并能判断该年是否为闰年,还能显示年、月、日能判断该年是否为闰年,还能显示年、月、日的具体值的具体值信息管理技术信息管理技术40class Date class Date public : / 3public : / 3个公有成员函数个公有成员函数 void setDat
17、e(intvoid setDate(int y = 2000,int m = 1,int d = 1); y = 2000,int m = 1,int d = 1); / / 设置具体的年、月、日,其默认值为设置具体的年、月、日,其默认值为20002000年年1 1月月1 1日日 int isLeapYearint isLeapYear( void ); / ( void ); / 判断该年是否为闰年判断该年是否为闰年 void printDatevoid printDate( void ); / ( void ); / 显示具体的年、月、日值显示具体的年、月、日值private :priva
18、te : int int year, month, day; year, month, day; / 3 / 3个私有数据成员,保存具体的年、月、日值个私有数据成员,保存具体的年、月、日值;信息管理技术信息管理技术41日期类日期类DateDate的实现部分,即各成员函数的定义部分为:的实现部分,即各成员函数的定义部分为:void Date:setDate( int y, int m, intvoid Date:setDate( int y, int m, int d ) d ) year = y;month year = y;month = m; day = d; = m; day = d;
19、/ / 判断该年是否为闰年判断该年是否为闰年int Date:isLeapYearint Date:isLeapYear( void ) ( void ) return ( year % 4 = 0 / return ( year % 4 = 0 / 能被能被4 4整除的年份是闰年整除的年份是闰年 & year % 100 != 0) / & year % 100 != 0) / 能被能被100100整除不是闰年整除不是闰年 | (year % 400 = 0); / | (year % 400 = 0); / 能被能被400400整除又是闰年整除又是闰年/ / 显示年、月、日的具体值显示年、
20、月、日的具体值void Date:printDatevoid Date:printDate( void )( void ) cout cout year year信息管理技术信息管理技术42 #include tdate.h#include tdate.hvoid main( void ) void main( void ) Date date1, date2; Date date1, date2; / / 定义日期类定义日期类DateDate的两个对象的两个对象date1date1和和date2date2 date1.setDate(2000, 5, 4); date1.setDate(20
21、00, 5, 4); / / 给对象给对象date1date1设置年、月、日的具体值设置年、月、日的具体值 date2.setDate(2000, 4, 9);date2.setDate(2000, 4, 9); / / 给对象给对象date2date2设置年、月、日的具体值设置年、月、日的具体值 / / 闰年闰年leap = 1leap = 1,否则为,否则为0 0intint leap = date1.isLeapYear( ); leap = date1.isLeapYear( );cout LEAP = leap endlcout LEAP = leap endl; ; / / 显示对
22、象年、月、日的具体值显示对象年、月、日的具体值 date1.printDate( void );date1.printDate( void ); date2.printDate( void ); date2.printDate( void ); 信息管理技术信息管理技术43对象与对象之间不是彼此独立的,它们之间存在着联系。对象与对象之间不是彼此独立的,它们之间存在着联系。在面向对象系统中,对象之间的联系是通过消息在面向对象系统中,对象之间的联系是通过消息(Message)传递的传递的消息是对象之间进行通讯的一种数据结构消息是对象之间进行通讯的一种数据结构消息用来请求对象执行某一处理或提供某些信
23、息,控消息用来请求对象执行某一处理或提供某些信息,控制流和数据流统一包含在消息中制流和数据流统一包含在消息中 程序的执行是靠对象间传递消息来连接的程序的执行是靠对象间传递消息来连接的 消息包括消息包括( (方法名、参数、方法体方法名、参数、方法体) )信息管理技术信息管理技术44消息传送与函数调用的区别消息传送与函数调用的区别 函数调用可以带或不带参数,但是消息至少带一个参函数调用可以带或不带参数,但是消息至少带一个参数,它表明接收消息的对象数,它表明接收消息的对象消息操作名类似于函数名,但它们之间的本质区别在消息操作名类似于函数名,但它们之间的本质区别在于:函数名代表一段可执行的代码,但消息
24、操作名具于:函数名代表一段可执行的代码,但消息操作名具体功能的选取还取决于接收消息的对象本身体功能的选取还取决于接收消息的对象本身函数调用是过程式的(如何做),消息传送是说明式函数调用是过程式的(如何做),消息传送是说明式的(做什么),具体如何做,由对象根据收到的消息的(做什么),具体如何做,由对象根据收到的消息自行确定自行确定 信息管理技术信息管理技术45继承指对象继承它所在类的结构、操作和约束继承指对象继承它所在类的结构、操作和约束也指一个类继承超类或子类继承父类的结构、操作或也指一个类继承超类或子类继承父类的结构、操作或约束。继承是自动共享类、子类和对象中的方法和数约束。继承是自动共享类
25、、子类和对象中的方法和数据的机制据的机制 信息管理技术信息管理技术46 在类层次中,子类只继承一个父类的数据结构和方法,在类层次中,子类只继承一个父类的数据结构和方法,则称为则称为单重继承单重继承。 在类层次中,子类继承了多个父类的数据结构和方法,在类层次中,子类继承了多个父类的数据结构和方法,则称为则称为多重继承多重继承。 在软件开发中,类的继承性使所建立的软件具有开放性、在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。了对象、类的创建工作量,
26、增加了代码的可重性。 采用继承性,提供了类的规范的等级结构。通过类的继采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。承关系,使公共的特性能够共享,提高了软件的重用性。 信息管理技术信息管理技术47class Baseclass Base float x, y; / float x, y; / 私有数据成员私有数据成员x x和和y ypublic:public: Base( float x1, float y1 ) / Base( float x1, float y1 ) / 基类的构造函数基类的构造函数 x = x1; y = y1; x =
27、 x1; y = y1; void print( void ) / void print( void ) / 输出输出x x和和y y值值 coutcout x = x n y = y x = x n y = y endlendl; ; ;信息管理技术信息管理技术48class Derived : public Base class Derived : public Base float z; / float z; / 派生类派生类DerivedDerived的新增数据成员的新增数据成员 public:public: Derived(float Derived(float x1,float y
28、1,float z1):Base(x1,y1) x1,float y1,float z1):Base(x1,y1) / / 派生类构造函数头中应包含基类的初始化列表派生类构造函数头中应包含基类的初始化列表 z = z1;z = z1; void print( void ); void print( void );void void Derived:printDerived:print( void )( void ) Base:printBase:print( );( ); cout cout z = z z = z endlendl ; ; 信息管理技术信息管理技术49void main( v
29、oid ) void main( void ) Derived d1(3.0, 4.0, 5.0); Derived d1(3.0, 4.0, 5.0); / / 定义派生类定义派生类DerivedDerived的对象的对象d1d1 d1.print( ); d1.print( ); / / 输出显示对象输出显示对象d1d1的数据成员的数据成员x x、y y和和z z值值 信息管理技术信息管理技术50多态性:相同的操作或函数,多态性:相同的操作或函数,可作用于多种类型的对象可作用于多种类型的对象上并获得不同的结果。上并获得不同的结果。所谓多态即一个操作或函数名字具有多种语义所谓多态即一个操作或
30、函数名字具有多种语义多态性允许每个对象以适合自身的方式去响应共同的多态性允许每个对象以适合自身的方式去响应共同的消息。消息。 多态增强了软件的灵活性和重用性多态增强了软件的灵活性和重用性 信息管理技术信息管理技术51class Complex class Complex double real, imag double real, imag; ;public: public: Complex(void)real=imag Complex(void)real=imag=0;/ =0;/ 无参数函数无参数函数 Complex( double r, double i ) Complex( doubl
31、e r, double i ) real = r; real = r; imagimag = i; / = i; / 一般函数一般函数 void operator = ( const Complex & c ); void operator = ( const Complex & c ); / / 重载赋值运算符的函数声明重载赋值运算符的函数声明 Complex operator + ( const Complex & c ); Complex operator + ( const Complex & c ); / / 重载加法运算符的函数声明重载加法运算符的函数声明 Complex oper
32、ator - ( const Complex & c );Complex operator - ( const Complex & c ); / / 重载减法运算符的函数声明重载减法运算符的函数声明 friend void print( const Complex & c ); friend void print( const Complex & c ); / / 输出显示一个复数输出显示一个复数;信息管理技术信息管理技术52void Complex:operatorvoid Complex:operator = ( const Complex & c ) = ( const Complex
33、& c ) static int static int i = 0; i = 0; real = c.real ; imag = c.imag real = c.real ; imag = c.imag; ; cout cout ( +i ) operator =( ) ( +i ) operator =( ) called ! ;called ! ; 信息管理技术信息管理技术53Complex Complex:operatorComplex Complex:operator + ( const Complex & c ) + ( const Complex & c )return Compl
34、ex( real + c.real , imag + c.imagreturn Complex( real + c.real , imag + c.imag ); ); Complex Complex:operatorComplex Complex:operator - (const Complex & c ) - (const Complex & c )return Complex( real-c.real ,imag- c.imagreturn Complex( real-c.real ,imag- c.imag ); ); void print( const Complex &c )vo
35、id print( const Complex &c )if( c.imagif( c.imag 0 ) 0 ) / / 当复数的虚数部分为负数时直接输出当复数的虚数部分为负数时直接输出 cout c.real c.imag i endlcout c.real c.imag i endl; ; / / 当复数的虚数部分为正数时,在前面加一个当复数的虚数部分为正数时,在前面加一个+ +号号 elseelse cout c.real + c.imag i cout c.real + c.imag i endl endl; ; 信息管理技术信息管理技术54void main( void )void
36、main( void ) Complex a(2.0 , 3.0) , b(4.0 ,-2.0) , c; Complex a(2.0 , 3.0) , b(4.0 ,-2.0) , c; c = a + b;/ c = a + b;/多态加法运算多态加法运算 coutcout a + b = ; a + b = ; / / 输出显示输出显示 a + b = a + b = 的提示信息字符串的提示信息字符串 print( c ); / print( c ); / 输出显示输出显示“a + b”a + b”运算结果值运算结果值 c = a - b;c = a - b; cout cout a -
37、 b =; / a - b =; /多态减法运算多态减法运算 / / 输出显示输出显示 a - b = a - b = 的提示信息字符串的提示信息字符串 print( c ); / print( c ); / 输出显示输出显示“a - b”a - b”运算结果值运算结果值 信息管理技术信息管理技术55所谓所谓“封装封装”是指把对象的属性和操作方法同时封装是指把对象的属性和操作方法同时封装在定义对象中在定义对象中用操作集来描述可见的模块外部接口,从而保证了对用操作集来描述可见的模块外部接口,从而保证了对象的界面独立于对象的内部表达象的界面独立于对象的内部表达对象的操作方法和结构是不可见的,接口是
38、作用于对对象的操作方法和结构是不可见的,接口是作用于对象上的操作集的说明,这是对象唯一的可见部分象上的操作集的说明,这是对象唯一的可见部分 信息管理技术信息管理技术56o 20 世纪世纪80 年代,随着面向对象技术成为研究的年代,随着面向对象技术成为研究的热点,先后出现了几十种面向对象的热点,先后出现了几十种面向对象的软件软件开发方法。开发方法。其中,其中,Booch、OMT 和和OOSE等方法得到了广等方法得到了广泛的认可。然而,采用不同方法进行建模不利于开泛的认可。然而,采用不同方法进行建模不利于开发者之间的交流。而发者之间的交流。而UML则统一了则统一了Booch、OMT 和和OOSE
39、的表示方法,而且对其作了进一的表示方法,而且对其作了进一步的发展。步的发展。1997 年,年,UML 被国际对象组织被国际对象组织OMG采纳为面向对象的建模语言的国际标准,它采纳为面向对象的建模语言的国际标准,它溶入了软件工程领域的新思想、新方法和新技术。溶入了软件工程领域的新思想、新方法和新技术。UML不限于支持面向对象的分析与设计,还支持不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。从需求分析开始的软件开发的全过程。 信息管理技术信息管理技术57 作为一种建模语言,它的作用域不限于支持面向作为一种建模语言,它的作用域不限于支持面向对象的分析与设计,还支持从需求分析
40、开始的软件开对象的分析与设计,还支持从需求分析开始的软件开发全过程。发全过程。 lUMLUML:图和元模型组成,图是语法,元模型是语义。:图和元模型组成,图是语法,元模型是语义。lUMLUML:三个基本构造块:事物(:三个基本构造块:事物(ThingsThings) 关系(关系(RelationshipsRelationships) 图(图(DiagramsDiagrams)。)。 信息管理技术信息管理技术587.4.3.1 UML7.4.3.1 UML的基本构造块的基本构造块1.1.事物事物 事物是是实体抽象化的最终结果,是模型中的基事物是是实体抽象化的最终结果,是模型中的基本成员,本成员,
41、UMLUML中包含结构事物、行为事物、分组事物中包含结构事物、行为事物、分组事物和注释事物。和注释事物。信息管理技术信息管理技术59(1 1)结构事物()结构事物(Structural thingsStructural things) 类(类(ClassClass):;):;接口(接口(InterfaceInterface):):协作(协作(CollaborationCollaboration):): 用例(用例(Use CaseUse Case):):活动类(活动类(Active ClassActive Class):): 组件(组件(ComponentComponent):):结点(结点(
42、NodeNode):):信息管理技术信息管理技术60(2 2)行为事物()行为事物(Behavioral thingsBehavioral things)行为事物指的是行为事物指的是UMLUML模型中的动态部分,代表语句里模型中的动态部分,代表语句里的的 动词动词 ,表示模型里随着时空不断变化的部分,包含,表示模型里随着时空不断变化的部分,包含两类:两类:交互(交互(interactioninteraction):交互是由一组对象之间在特):交互是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作;换而组成的动作;状
43、态机(状态机(state machinestate machine):状态机由一系列对象的):状态机由一系列对象的状态组成。状态组成。信息管理技术信息管理技术61(3 3)分组事物()分组事物(Grouping thingsGrouping things)可以把分组事物看成是一个可以把分组事物看成是一个 盒子盒子 ,模型可以在,模型可以在其中被分解。目前只有一种分组事物,即包其中被分解。目前只有一种分组事物,即包(packagepackage)。结构事物、动作事物甚至分组事物都)。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于有可能放在一个包中。包纯粹是概念上的
44、,只存在于开发阶段,而组件在运行时存在。开发阶段,而组件在运行时存在。信息管理技术信息管理技术62(4 4)注释事物()注释事物(An notational thingsAn notational things)注释事物是注释事物是UMLUML模型的解释部分。模型的解释部分。信息管理技术信息管理技术632.2.关系关系关系是将事物联系在一起的方式,关系是将事物联系在一起的方式,UMLUML中定义了四种中定义了四种关系:关系:(1 1)依赖()依赖(DependenciesDependencies):两个事物之间的语义关系,):两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义;
45、其中一个事物发生变化会影响另一个事物的语义;(2 2)关联()关联(AssociationAssociation):一种描述一组对象之间连接):一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关的结构关系,如聚合关系(描述了整体和部分间的结构关系);系);(3 3)泛化()泛化(GeneralizationGeneralization):一种一般化):一种一般化- -特殊化的关特殊化的关系;系;(4 4)实现)实现(Realization) (Realization) :类之间的语义关系,其中的:类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。一个类指定了
46、由另一个类保证执行的契约。 信息管理技术信息管理技术643.3.图图图是事物集合的分类,图是事物集合的分类,UMLUML中包含多种图:中包含多种图:(1 1)类图)类图(Class Diagram)(Class Diagram):(2 2)对象图)对象图(Object Diagram)(Object Diagram):(3 3)包图()包图(Package DiagramPackage Diagram):):(4 4)组件图)组件图(Compoment(Compoment Diagram Diagram,也称构件图,也称构件图) ):(5 5)部署图)部署图(Deployment Diagra
47、m)(Deployment Diagram):(6 6)用例图)用例图(Usecase(Usecase Diagram) Diagram):(7 7)顺序图)顺序图(Sequence Diagram)(Sequence Diagram):(8 8)协作图)协作图(Collaboration Diagram)(Collaboration Diagram):(9 9)状态图)状态图(Statechart(Statechart Diagram) Diagram):(1010)活动图)活动图(Activity Diagram)(Activity Diagram):。:。 信息管理技术信息管理技术65类
48、型类型包含包含静态图静态图类图、对象图、包图类图、对象图、包图行为图行为图状态图、活动图状态图、活动图用例图用例图用例图用例图交互图交互图顺序图、协作图顺序图、协作图实现图实现图组件图、部署图组件图、部署图信息管理技术信息管理技术66从应用的角度上来讲,面向对象的系统设计一般需要从应用的角度上来讲,面向对象的系统设计一般需要完成如下工作:完成如下工作:(1 1)需求描述;)需求描述;(2 2)建立系统的静态模型;)建立系统的静态模型;(3 3)系统的行为描述。)系统的行为描述。(1 1)和()和(2 2)中所建立的模型是静态的)中所建立的模型是静态的(采用用(采用用例图、类图、对象图、组件图和
49、部署图等例图、类图、对象图、组件图和部署图等),是标准),是标准建模语言建模语言UMLUML中的静态建模机制;而(中的静态建模机制;而(3 3)中所建立的)中所建立的模型则表示执行时的序列、状态或交互关系模型则表示执行时的序列、状态或交互关系(以状态(以状态图、活动图、顺序图和协作图描述),图、活动图、顺序图和协作图描述),是标准建模语是标准建模语言言UMLUML中的动态建模机制。中的动态建模机制。信息管理技术信息管理技术677.4.3.2 7.4.3.2 用例与用例图用例与用例图 用例是需求分析中最重要的概念,需求表征了一用例是需求分析中最重要的概念,需求表征了一个系统的设计特性、特征和行为
50、个系统的设计特性、特征和行为 信息管理技术信息管理技术68图书管理系统用例图图书管理系统用例图参与者参与者参与者参与者信息管理技术信息管理技术69信息管理技术信息管理技术70参与者泛化关系参与者泛化关系信息管理技术信息管理技术71用例扩展关系用例扩展关系信息管理技术信息管理技术72用例泛化关系用例泛化关系信息管理技术信息管理技术737.4.3.3 7.4.3.3 类图类图 在在UMLUML中,类图显示了一组类、接口、协作以及中,类图显示了一组类、接口、协作以及它们之间的关系。在它们之间的关系。在UMLUML的静态机制中类图是一个重的静态机制中类图是一个重点,它不但为设计人员所关心,更为实现人员