信息系统的开发具有长期性、复杂性和风险性,需要科学的方法论作指导。常用的信息系统开发方法有结构化系统开发方法、面向对象系统开发方法和原型法三种。像决策支持系统这种具有开发性而无固定需求范围的系统,更适合用原型法进行开发。图1-15 原型法的开发过程本书的第2~5章主要讲述的是结构化的系统开发方法;第6~15章,主要介绍的是面向对象的系统开发方法。......
2023-11-23
参与者又被称为角色,是系统外部的一个实体,它以某种方式参与用例的执行过程。参与者通过向系统输入或请求系统输入某些事件来触发系统的执行。
1.参与者的表示
参与者在UML中通常以一个稻草人图符来表示,图符下面是参与者的名字,如图8-2所示。参与者是用例图的一个重要组成部分,它代表参与系统交互的用户、设备或另一系统。
图8-2 参与者图符
参与者通常有三大类:系统用户、与系统交互的其他系统和运行的进程。
1)参与者是真实的人(即用户),这是每个系统中最常用的参与者。命名这类参与者时,应当按照其在系统中具体扮演的角色而不是位置命名,因为一个人可能有很多业务。例如汽车租赁公司的客户服务代表,通常情况下是客户服务代表,但如果他(她)自己要租车的时候,就变成了客户。按照具体的角色命名可以获得更稳定的参与者。
2)参与者是其他的系统。例如汽车租赁系统需要网上支付,实现验证信用卡完成支付功能的是另一个系统。在当前项目的范围之外,与当前系统有联系的其他系统,也可以成为参与者。
3)参与者可以是一些运行的进程,如时间。当到达一定时间触发系统中的某个事件时,时间就成了参与者。例如,汽车租赁系统中,如果到了还车时间客户还没有归还,系统会提醒客户服务代表致电客户。这时,时间就成了参与者。
2.确定参与者
创建用例图的第一项任务是找出要建立的系统模型中的参与者,这项任务通常是由与潜在用户会见的系统分析员完成的。在某些情况下,该任务还包括与顾客面对面的访谈,在访谈过程中可以提出问题,了解他们的需求。访谈过程中,可以整理出一个手抄本,或者简单地做些记录以备后用。在另外一些情况下,公司中的一些人会提供项目的业务需求列表。对于这些业务需求,需要向提供者提出问题以得到所需要的答案。这些需求和得到的答案将成为创建用例图的笔记。
如何从系统中识别出角色,需要回答以下问题:
●谁使用系统的主要功能?
●谁需要系统的支持以完成其日常工作任务?
●谁负责维护、管理并保持系统正常运行?(www.chuimin.cn)
●系统需要应付(或处理)哪些硬设备?
●系统需要和哪些外部系统交互?
●谁(或什么)对系统运行产生的结果感兴趣?
这六个问题的答案往往包括了所有与系统具有关联的用户,进一步分析这些用户与系统关联时担当的作用便可得到参与者。参与者以其职责命名可以提高模型的可理解和可维护性。
例如,ATM自动柜员机在大街上随处可见,人们也经常会与它打交道。ATM能代替出纳人员或银行出纳的业务。用户通过ATM可以在24小时内享受银行提供的服务。当用户需要提款时,必须将银行卡插入到ATM机中,输入正确的口令后才能取款。通过回答以上六个问题,可识别出ATM系统的主要参与者,如图8-3所示。
再如教学管理系统的参与者有:教师、学生、教学管理人员和系统管理人员。
3.参与者间的关系
如果系统中存在几个参与者,它们既扮演自身的角色,同时也扮演更具一般化的角色,我们可以定义参与者之间的关系。参与者本质是类,所以参与者之间具有与类之间相同的关系。类之间用继承表示父类与子类间一般与特殊的关系,参与者间用泛化来描述。在UML中,用空心的三角箭头表示参与者间的泛化关系,箭头指向扮演一般角色的参与者。
如图8-4所示,例如一个汽车租赁公司,接受客户的电话预订和网上预订。参与者“客户”描述了参与者“电话客户”和“网上客户”所扮演的一般角色。如果不考虑客户是如何与系统接触的,可以使用一般角色的参与者,即父类。如果强调接触发生的形式,则用例必须使用实际的参与者,即子类。
图8-3 ATM系统的参与者
图8-4 参与者间的泛化关系
有关信息系统开发方法与实践教程的文章
信息系统的开发具有长期性、复杂性和风险性,需要科学的方法论作指导。常用的信息系统开发方法有结构化系统开发方法、面向对象系统开发方法和原型法三种。像决策支持系统这种具有开发性而无固定需求范围的系统,更适合用原型法进行开发。图1-15 原型法的开发过程本书的第2~5章主要讲述的是结构化的系统开发方法;第6~15章,主要介绍的是面向对象的系统开发方法。......
2023-11-23
UML是一种通用建模语言,它本身具有的可扩展性使其不仅可以用于软件系统开发各个阶段的建模,也可以用于商业和其他几乎所有类型的建模。总体来说,UML由以下几个部分构成。模型元素UML中的模型元素包括事物以及事物之间的联系。通用机制UML提供的通用机制可以为模型元素提供额外的注释、信息或语义。UML的组成结构如图6-1所示。图6-1 UML结构图用例图和类图是面向对象系统开发的重点内容。......
2023-11-23
用例是一组动作序列的描述,系统执行这些动作,并产生传递参与者意愿的可观察结果。用例的名字是一个字符串,分为简单名和路径名两种方式。用例Mainte nance是属于包Business的。基于这些参与者及其需求,通过回答前面的问题,可以建立如下用例:●记录成绩。......
2023-11-23
类图最直接的成效可以通过正向工程直接转化为程序代码,本节以当前流行的面向对象的程序设计语言Java为例,讲解类图的各个元素从UML到Java的映射方式。在UML中定义类属性和方法时,可见性、参数列表、返回类型用适当的修饰符进行修饰。图9-16 依赖关系示例4.关联关系关联、聚合和组合转换方法相似,都是转化为作用域的一个变量。如图9-17所示,类“公司”和类“职员”存在关联关系,映射成Java代码如下所示。......
2023-11-23
同顺序图一样,每个系统都可以有很多协作图,在这里只介绍图书管理系统中几个重要的协作图。图11-14 添加书籍的协作图2.图书管理员处理借书的协作图图11-15 处理借书的协作图●identify reservation():验证预订信息。......
2023-11-23
继承是指子类可以自动拥有父类的全部属性和操作。另外如图7-2所示,表示出了几种类之间的继承关系,位于上层的类是下层类的直接或间接父类,最下层是几种类实例化成的对象。图7-1 继承的描述图7-2 继承的例子继承性又分为单重继承和多重继承两类。单重继承时一个子类只能有一个父类,多重继承时一个子类可以有多于一个的父类。单重继承构成的类之间关系是一棵树,多重继承构成的类之间的关系是一个图。继承具有传递性。......
2023-11-23
封装是面向对象方法的一个重要原则。封装即信息隐藏,它保证软件具有较好的模块性。可以说封装是所有主流信息系统方法学中的共同特征,它对于提高软件清晰度和可维护性,以及软件的分工有重要的意义。以下从两个方面来理解封装的含义。首先,当设计一个程序的总体结构时,程序的每个成分都应该封装或隐蔽为一个独立的模块。其次,封装表现在对象概念上。对象是一个很好的封装,它把数据和服务封装于一个内在的整体。......
2023-11-23
相关推荐