基于.Net扩展方法将用例图与权限控制结合的系统设计与实现
- 格式:doc
- 大小:28.00 KB
- 文档页数:7
面向对象分析与及设计习题及答案一、单项选择题1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A. Simula67语言B. Smalltalk语言C. Java语言D. 统一建模语言(UML)的标准2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++D. Java3.下列不属于面向对象技术的基本特征的是(B)。
A. 封装性B. 模块性C. 多态性D. 继承性4. 面向对象程序设计将描述事物的数据与(C) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是(C)。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6. (D)是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图B. 对象图C. 序列图D. 用例图7. (C) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图 B. 协作图 C. 状态图 D. 序列图9.(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A. 组件图B. 协作图C. 状态图D. 配置图10. 使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
UML用例图的扩展点与扩展用例讲解UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形化符号和规范,用于描述软件系统的结构、行为和交互。
其中,用例图是一种常用的建模工具,用于描述系统的功能需求和用户与系统之间的交互。
在用例图中,用例代表了系统的功能需求,用例之间的关系可以通过关联、包含和扩展等方式进行表示。
本文将重点讲解扩展点与扩展用例的概念及其在用例图中的应用。
一、扩展点的概念扩展点是指在原有用例的执行过程中,可以插入额外的功能或行为的特定位置。
它是用来定义系统在某个阶段或条件下是否可以执行扩展用例的标记点。
扩展点通常与原有用例的某个步骤或事件相关联。
扩展点的标记方式通常是在用例图中使用带有箭头的虚线表示,并在箭头上标注扩展用例的名称。
这样,当系统执行到该扩展点时,就可以根据特定的条件选择是否执行扩展用例。
二、扩展用例的概念扩展用例是指在特定的条件下,根据系统的需要,可以选择性地执行的用例。
它通常是对原有用例的功能进行扩展或增强,以满足某些特殊的需求。
扩展用例与原有用例之间的关系可以通过扩展关系来表示。
在用例图中,使用带有箭头的实线表示扩展关系,箭头指向扩展用例,并在箭头上标注扩展点的名称。
三、扩展点与扩展用例的应用扩展点与扩展用例的应用可以帮助系统设计者更好地理解系统的需求,并对系统进行更加灵活的设计。
通过定义扩展点和扩展用例,可以将系统的功能细化,并且在需要的时候选择性地引入额外的功能。
例如,假设我们正在设计一个电子商务系统,其中包含了一个购物车功能。
在购物车中,用户可以添加商品、修改数量、删除商品等操作。
我们可以将购物车的添加商品操作定义为一个扩展点,当用户添加商品时,系统可以根据特定的条件选择是否执行扩展用例。
在这个例子中,我们可以定义一个扩展用例为“优惠券使用”,当用户添加商品到购物车时,系统可以检查用户是否拥有可用的优惠券,并根据优惠券的规则进行相应的折扣计算。
网吧管理系统设计毕业论文江苏科技大学目录第一章系统概述 ..................................................................... .. (3)1.1 系统开发的背景和意义 ..................................................................... .. (3)1.2 系统开发技术 ..................................................................... ..................................... 3 第二章可行性分析 (5)2.1 可行性概述 ..................................................................... .. (5)2.2 可行性研究 ..................................................................... ......................................... 5 第三章系统需求分析.. (6)3.1 传统网吧管理 ..................................................................... . (6)3.2 系统优点 ..................................................................... .. (6)3.3 系统功能需求 ..................................................................... . (7)3.3.1 系统逻辑模型 ..................................................................... (7)3.3.2 服务端 ..................................................................... (7)3.3.3 客户端 ..................................................................... (8)3.4 系统的设计原则 ..................................................................... (8)3.5 系统设计的思想 ..................................................................... (9)3.5.1 系统设计结构 ..................................................................... (9)3.5.2 系统实现技术 ..................................................................... ........................... 9 第四章系统的总体设计 (10)4.1 系统功能设计 ..................................................................... .. (10)4.2 系统功能模块简介 ..................................................................... (10)4.2.1 客户端功能模块 ..................................................................... (10)4.2.2 服务端功能模块 ..................................................................... (11)4.2.3 数据库设计 ..................................................................... ............................. 11 第五章详细设计 (14)5.1 关键模块设计 ..................................................................... .. (14)5.1.1 登陆模块 ..................................................................... (14)5.1.2 客户端模块 ..................................................................... .. (14)5.1.3 服务端模块 ..................................................................... .. (15)5.2 系统界面设计 ..................................................................... .. (16)5.2.1 登录界面 ..................................................................... (16)5.2.2 客户端界面 ..................................................................... .. (16)5.2.3 服务端界面 ..................................................................... ............................. 17 第六章编码实现 (18)6.1 系统功能实现 ..................................................................... .. (18)6.2 登陆模块编码 ..................................................................... . (19)6.3 客户端模块编码 ..................................................................... . (23)6.4 服务端模块编码 ..................................................................... ............................... 28 第七章系统测试 (37)I江苏科技大学7.1 系统测试目标 ..................................................................... .. (37)7.2 具体测试 ..................................................................... (37)7.2.1 登录模块测试 ..................................................................... . (37)7.2.2 客户端测试 ..................................................................... ............................. 38 致谢辞 (40)II江苏科技大学第一章系统概述1.1 系统开发的背景和意义随着计算机技术的日月更新,越来越多的人们注重加强对计算机知识的学习,为了满足学校学生或者社会学员的需求,许多网吧都纷纷对外开放,实行计时收费。
RBAC的基本思想RBAC(角色访问控制)的基本思想可简单地用图1来表示,即把整个访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。
由于RBAC实现了用户与访问权限的逻辑分离,因此它极大的方便了权限管理。
例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。
用户权限在.NET中的设计与实现利用.NET中的用户控件实现权限控制的基本思想是:根据角色访问控制(RBAC)的基本原理,给用户分配一个角色,每个角色对应一些权限,然后利用中的用户控件(UserControl)来判断该用户对应的角色是否对访问页面有访问的权力。
下面将从数据库设计、添加角色和用户控件的使用等三方面来阐述具体实现过程。
1、数据库中表的设计首先,在数据库中设计功能模块表、功能表和角色表等三个表。
(1)功能模块表为了管理好用户的权限,首先要组织好系统的模块,为此设计了一个功能模块表。
见表1。
(2)功能表每个功能模块所具有的子功能称为功能,如商品管理模块goods(属于功能模块的范畴)包含商品信息查询、商品信息更新、商品信息删除、商品定价信息查询以及商品定价信息更新五种功能,功能表的设计见表2。
上面提到的例子可以作为这样几条记录分别插入功能模块表和功能表。
insert into TModule values(0,\'商品管理模块\',\'goods\',5);insert into Tfunction values(0,\'商品信息查询\',\'selectgoods\',0);insert into Tfunction values(1,\'商品信息更新\',\'updategoods\',0);insert into Tfunction values(2,\'商品信息删除\',\'deletegoods\',0);insert into Tfunction values(3,\'商品定价信息查询\',\'selectgoodsprice\',0);insert into Tfunction values(4,\'商品定价信息更新\',\'updategoodsprice\',0);(3)角色表角色表的设计关键在于角色值的定义,它是一个由0和1组成的类似二进制数的字符串。
UML基础与Rose建模实用教程课后习题及答案第1章面向对象概述1. 填空题(1)软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。
(2)类是具有相同属性和操作的一组对象的组合,即抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
(3)面向对象程序的基本特征是抽象、封装、继承和多态。
2. 选择题(1)可以认为对象是ABC。
(A)某种可被人感知的事物(B)思维、感觉或动作所能作用的物质(C)思维、感觉或动作所能作用的精神体(D)不能被思维、感觉或动作作用的精神体(2)类的定义要包含以下的要素ABD。
(A)类的属性(B)类所要执行的操作(C)类的编号(D)属性的类型(3)面向对象程序的基本特征不包括B。
(A)封装(B)多样性(C)抽象(D)继承(4)下列关于类与对象的关系的说法不正确的是A。
(A)有些对象是不能被抽象成类的(B)类给出了属于该类的全部对象的抽象定义(C)类是对象集合的再抽象(D)类用来在内存中开辟一个数据区,并存储新对象的属性3. 简答题(1)什么是对象?试着列举三个现实中的例子。
对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子.椅子.汽车等。
(2)什么是抽象?抽象是对现实世界信息的简化。
能够通过抽象将需要的事物进行简化、将事物特征进行概括、将抽象模型组织为层次结构、使软件重用得以保证。
(3)什么是封装?它有哪些好处?封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。
封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。
对象的私有属性只能够由对象的行为来修改和读取。
二是尽可能隐蔽对象的内部细节,与外界的联系只能够通过外部接口来实现。
通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:避免对封装数据的未授权访问、帮助保护数据的完整性、当类的私有方法必须修改时,限制了在整个应用程序内的影响。
权限管理模块设计权限管理模块设计是一个用于管理用户对系统资源的访问权限的模块。
在现代软件系统中,用户通常会被分为不同的角色,每个角色被赋予一组特定的权限。
权限管理模块的目标是确保只有授权用户才能访问系统资源,并且确保用户只能访问其被授权的资源。
以下是一个权限管理模块的设计,该设计包括用户管理、角色管理、权限管理和访问控制策略等几个关键方面。
1.用户管理:-用户注册和登录:实现用户的注册和登录功能,用户可以使用用户名和密码进行登录。
2.角色管理:-角色分配给用户:将角色分配给用户,使用户能够从属于一些角色并且获得该角色被授权的权限。
3.权限管理:-权限定义:管理员可以定义系统内的所有权限,并将权限分配给相应的角色。
4.访问控制策略:-基于角色的访问控制:根据用户所属的角色来控制用户对系统资源的访问权限。
不同角色有不同的权限,一些资源只能由特定角色访问。
-细粒度的访问控制:实现对系统资源的详细控制,可以设置每个资源的读取、写入、修改、删除等操作的权限。
5.审计日志:-记录用户的操作:实现用户行为的日志记录,包括登录和注销日志、角色分配和权限修改日志等。
-审计日志的查询:管理员可以查询审计日志来监控用户的操作行为,以及故障排查和安全审计。
6.安全性:-密码安全:用户密码应存储为哈希值,以确保用户密码的安全性。
-数据保护:对敏感数据进行保护,如用户个人信息和权限配置信息等。
以上是权限管理模块的设计,通过合理的用户、角色和权限管理,可以实现对系统资源的细粒度控制和访问权限管理。
这样可以确保只有授权用户才能访问系统资源,并且使管理员能够对用户的行为进行监控和审计。
这种设计有助于提高系统的安全性和可靠性。
Abstract硕士学位论文智能变电站一体化平台的设计与实现摘要电力工业是国民经济的关键部门,关系到民生民计。
近几年来,随着创一流供电企业的要求和提高供电可靠性的需要,变电站数字化向智能化转变成为电力部门各级领导放在战略高度重视和研究的课题。
由于传感器、光纤、计算机及通信技术的飞速发展,电力部门信息化水平迅速提高,同时变电设备的性能也得到了很大改善,开展智能变电站一体化平台趋向成熟。
本文重点讲述智能变电站一体化平台的设计过程和实现过程。
在功能设计上,将对生产设备监测,视频联动,设备状态分析,智能巡检,设备智能分析决策等进行重点展开。
在性能设计上,为了实现平台的高可靠性和高可用性,将对系统架构设计进行优化升级,采用双网设计,集群架构。
在软件体系结构上,为了达到平台的可维护和可扩张性,将采用分层架构结合SOA架构设计实现。
通过智能变电站一体化平台,将使传统数字化变电站更高效更智能。
在视频巡检和视频联动上,将为无人变电站的实现走出重要一步。
在生产设备监测基础上展开的设备智能分析决策系统,将是数字化向智能化转变的重要贡献。
关键词:智能变电站,视频联动,视频巡检,设备状态监测,设备状态评估I浙江大学硕士学位论文AbstractAbstractThe power industry is a key sector of the national economy, which is closely related to people's livelihood. In recent years, because of the requirements of building the first-class power-supplying enterprise and improving the reliability of power supplying, the strategies of transforming digital substation into intelligent substation become the key research topic of the power suplying department. Due to the rapid development of sensors, optical fibers, computer and communications technology, and the rapid improvement of the informationizing process of the power department and the functions of the equipments, the intelligent substation integration platform becomes possible.This article focuses on design process and implementation process of the intelligent substation integration platform. Considering the functions, I will focus on monitoring, video linkage, equipment state analysis, and intelligent data logging equipment intelligent analysis. Considering the performance, I will optimize and upgrade the dual-network design and cluster architecturein order to achieve the high reliability and high availability of the platform. On software architecture,I suggest using a layered architecture combined with SOA architecture design and implementation in order to reach the platform maintenance and expanssibility.Through the intelligent substation integration platform, the traditional digital substations are becoming more efficient and smarter. The video inspection and video linkage are a step forward to the realization of unmanned substation. The intelligent deciding system based on equipment monitoring will be an important contribution to the transformation from digital substation to intelligent substation.Key Words:Intelligent substation, Video linkage, Video inspection, Equipmen condition monitoring, Equipment condition assessmenii浙江大学硕士学位论文目录目录摘要 (I)Abstract (II)图目录 (V)表目录 (VI)第1章绪论 (1)1.1 研究背景 (1)1.2 变电站智能化的现状 (1)1.3 研究内容和目标 (1)1.4 研究方法 (3)1.5 本文结构组织 (4)1.6 本章小结 (5)第2章系统应用技术 (6)2.1 智能变电站一体化平台概述 (6)2.2 IEC61850概述 (6)2.3 智能变电站的统一建模 (6)2.4 分层和SOA架构 (7)2.5 SVG与VG技术 (9)2.6 本章小结 (10)第3章需求分析 (12)3.1 系统用例 (12)3.2 系统功能性能需求 (13)3.3 本章小结 (14)第4章系统架构和软件体系结构 (15)4.1 架构在系统性能上的要求 (15)4.2 系统架构对系统开发的要求 (15)4.3 系统的架构的设计 (16)4.4 本章小结 (18)第5章功能模块设计与实现 (19)5.1 引言 (19)5.2 系统底层通讯及IEC61850协议内部转化设计与实现 (19)5.2.1 通讯模块架构设计 (19)5.2.2 IEC61850客户端模块划分 (20)5.2.3 数据接口设计 (21)5.2.4 公司内部规约通讯设计与实现 (23)5.3 设备状态评估模块的设计与实现 (24)5.3.1 设备状态评估的总体架构 (24)5.3.2 模块的数据库模型 (25)5.3.3 具体设计与实现 (26)III浙江大学硕士学位论文目录5.4 在线状态监测模块的设计与实现 (30)5.4.1 实时消息展示模块 (30)5.4.2 VG图形化展示模块 (39)5.5 视频智能应该模块的设计与实现 (43)5.5.1 视频巡检 (44)5.5.2 视频联动 (46)5.6 系统管理配臵模块 (47)5.7 本章小结 (49)第6章总结与展望 (50)6.1 本文完成的主要研究工作 (50)6.2 本文的主要贡献以及创新点 (50)6.3 进一步的研究工作 (50)参考文献 (1)作者简历 ................................................................................... 错误!未定义书签。
第一章1.1什么是软件?软件和程序的区别是什么?答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。
软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。
⑵软件不是程序,程序是软件的一部分。
程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。
它是由软件开发人员设计和编码的。
程序执行时一般要输入一定的数据,也会输出运行的结果。
没有相关文档,仅有程序是不能称之为软件产品的。
1.2什么是软件生存周期?划分生存周期的主要原则是什么?答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。
(2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。
1.3什么是软件危机?它有哪些主要表现?为什么会产生软件危机?答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
(2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了解以及开发人员和用户又未能及时交换意见,导致已完成的软件不能满足用户的需要;软件产品质量差,可靠性得不到保证;软件产品可维护性差;软件成本在计算机系统总成本中所占的比例逐年上升,软件的发展跟不上硬件的发展;软件开发生产率提高的速度远远跟不上计算机应用速度普及深入趋势,软件发展跟不上用户的要求。
(3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。
软件是计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂。
给软件的开发和维护带来客观的困难;软件开发的管理困难。
由于软件规模大、结构复杂、又具有无形性,导致管理困难,进度控制困难,可靠性无法保证;软件开发费用不断增加,维护费用急剧上升,直接威胁计算机应用的扩大;软件开发技术落后;生产方式落后;开发工具落后,生产效率提高缓慢。
2020智慧树,知到《面向对象与UML》章节测试【完整答案】智慧树知到《面向对象与UML》(山东联盟)章节测试答案绪论1、UML是面向对象的软件建模语言,可应用到软件开发全过程。
A:对B:错正确答案:对2、面向对象是当今主流的软件开发思想。
( )A:对B:错正确答案:对3、下列哪些工具可以用来进行UML建模?( )A: Rational RoseB: Enterprise Architect (EA)C: Microsoft Office VisioD:StarUML正确答案:Rational Rose, Enterprise Architect (EA), Microsoft Office Visio,StarUML4、本课程的主讲教师是烟台大学计算机与控制工程学院的哪位老师?( )A: 螃蟹B: 郭艳燕C: 机器猫D: 哈利波特正确答案:郭艳燕5、我们要从本课程中学到哪些知识?( )A:面向对象的基础知识B:UML软件建模C:面向对象的设计原则D:面向对象编程语言正确答案:面向对象的基础知识,UML软件建模,面向对象的设计原则第一章1、以下对软件建模描述正确的是( )A:要正确建模,模型必须准确反映软件系统的真实情况。
B:每个模型可以有多种表达方式,从不同角度来刻画系统。
C:模型是对现实世界的简化,但不能掩盖重要的细节。
D:描述同一个系统的多个模型只能相对孤立,不能完全孤立,完全孤立的模型是不完整的E:越庞大复杂的系统,建模的重要性越大。
正确答案:要正确建模,模型必须准确反映软件系统的真实情况。
,每个模型可以有多种表达方式,从不同角度来刻画系统。
,模型是对现实世界的简化,但不能掩盖重要的细节。
,描述同一个系统的多个模型只能相对孤立,不能完全孤立,完全孤立的模型是不完整的,越庞大复杂的系统,建模的重要性越大。
2、模型的实质是什么?( )A:便于交流B:对现实的简化C:可视化D:对现实的复杂化正确答案:对现实的简化3、对软件模型而言,下面说法错误的是( )A:是人员交流的媒介B:是软件的中间形态C:是软件升级和维护的依据D:是软件的标准文档正确答案:是软件的标准文档4、以下关于模型的说法错误的是( )A:模型是对现实的简化。
基于.Net扩展方法将用例图与权限控制结合的系统设计与实现摘要:针对某些角色信息相对固定的专门行业开发的软件和项目,提出一种用.Net的扩展方法直接使用用例图模型和权限管理结合的方式来加快应用开发的方法。
关键词:.Net 扩展方法用例图RBAC
随着计算机技术的发展,用户可访问的数据资源的结构越来越复杂,规模越来越大,信息系统向着多应用和多用户的方向不断发展,对系统安全方面提出了更高的要求。
一个大型系统必须建立一个良好的权限控制系统,以保证系统的安全性。
目前权限访问控制模型,一般有DAC、MAC、RBAC三种。
(1)自主型访问控制(Discretionary Access Control,DAC)。
自主访问控制模型是根据自主访问控制策略建立的一种模型,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体,某些用户还可以自主地把自己所拥有的客体的访问权限授予其他用户。
目前主流操作系统Windows或Linux等都通过访问控制列表(ACLs)提供自主访问控制的功能,由于用户可以任意传递权限,安全防护相对比较低,不能给系统提供充分的数据保护。
(2)强制型访问控制(Mandatory Access Control,MAC)。
强制型访问控制模型是指通过专门设置的系统安全员对用户所
创建的对象进行统一的强制性控制,按照规定的规则决定哪些用户可以对哪些对象进行什么样操作类型的访问,即使是创建者用户,在创建一个对象后,也可能无权访问该对象,用于多层次安全级别的军事应用。
(3)基于角色的访问控制(Role-Based Access Control,RBAC)。
基于角色的访问控制方法将权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限,简化了权限的管理,在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色,角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收,角色与角色的关系可以建立起来以囊括更广泛的客观情况。
1 传统方式在角色信息相对固定的应用中存在的不足
上面的几种访问控制方法,都是面向通用的权限控制系统,在面向某个专门行业开发软件和项目时候,角色信息是固定不变而且具有继承属性的。
例如学校,各系统的角色可分为教工和学生,教工又可作为各部门的领导和管理员,学校领导和超级管理员又可根据实际情况继承于部门领导和管理员或直接派生自教工。
如图1所示。
在此类垂直应用的行业软件中,经常是一个项目解决一个需求,而用户的角色信息是需要复用的,整个系统的功能即实现角色的各类方法,角色和功能联系很紧密,在需求阶段已经确定,很难出现在运行时的角色功能分配情况。
以学校的相关项目开设与学生选修管理系统为例,功能即为教师建立项目,二级学院管理员和系统管理员审核开设申请,学生申请选修,学校和部门领导查看项目等功能。
在利用基于角色的访问控制等方法实现权限控制时,每次都需要配置用户权限,重复代码较多,不利于维护,对系统需求的变化应对也不足。
2 利用用例图和扩展方法改善此类应用的开发模式
2.1 用例图
用例图(use case diagram)就是由主角、用例以及它们之间的关系构成的图。
它能很好的说明了用例模型中的关系,如图2学校教学项目管理的例子所示。
用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头等组成。
参与者指系统以外的,在使用系统或与系统交互中所扮演的角色,用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。
除了系统边界、角色和用例,另外就是关系。
由于角色实质上也是类,所以它拥有与类相同的关系描述,即角色之间存在泛化关系,泛化关系的含义是把某些角色的共同行为提取出来表示为通用的行为,如图所示,教师和学生从普通用户处派生,管理员又从教师派生。
传统的基于软件模式的设计,是先开发功能模块,实现工具类的功能,并根据实际需求,将用户的角色与功能绑定,实现功能模块的复用。
在基于项目模式的开发中,项目往往具有创新性,没有可以复用的代码,而需要在开发中实现,但用户角色是可以复用的,对比用例图和项目结构,如果能将认证用户转化为系统定义的不同角色类,利用认证用户的基本信息,对角色类直接开发功能模块,就可以非常方便的实现系统的开发。
2.2 扩展方法
在Microsoft Visual Studio 2008及以后版本提供了扩展方法,扩展
方法能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。
扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。
对于用C#和Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。
扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。
利用这一特性,可以在不破坏已经完成的用户角色系统上,直接扩展业务逻辑,虽然和传统的权限相比,增加了角色与功能的耦合,失去了配置的灵活性,但在项目开发中,由于角色和功能在需求阶段已经确定,实际使用中,更多是用户的角色发生变化,而对角色的功能发生变化的需求极低,对项目的后期维护不会带来很大的压力,同时,由于省去了工具类的开发和角色的配置,并可复用角色的功能模块,用户的基本信息也可直接使用,在项目的需求确定了以后,即可立即开始功能模块的开发,加快了项目的进度。
3 利用C#实现用户角色的扩展
扩展方法由ExtensionAttribute类提供的特性支持,该类指示某个方法为扩展方法,或某个类或程序集包含扩展方法。
在Visual Basic中,需要使用此特性创建扩展方法,C#中,不必显式使用此特性,只需为第一个参数使用this修饰符来创建扩展方法,编译器自动发出
ExtensionAttribute用于扩展方法。
(1)首先实现角色类,利用传入的IPrincipal用户信息构造本系统的业务逻辑角色,并作好角色判断,不符合改角色的用户抛出异常,如实现教师(Teacher)和学生(Student)类,共同派生于用户(User)类,这些角色作为系统业务的核心,实现用例图中的功能,并可利用分部类(Partial)将业务功能分组。
4 结语
本文对权限管理机制的基本原理和实现做了简单的分析,结合校园网等应用中面临的用户统一而应用繁多问题,阐述了直接使用用例图模型和权限管理的方法来加快校园网应用的开发。
该机制利用角色进行扩展,大大提高应用系统开发的方便程度,简化角色访问控制的配置。
参考文献
[1] 肖严,梁少华.RBAC管理模型的分析与设计[J].电脑知识与
技术,2010,6(8):1903~1905.
[2] 张涛,王海鹏,胡正国.基于UML用例图的软件产品线需求建模方法[J].计算机应用研究,2004,10:90~91.。