软件架构常用模型就是视图模型,类似于RM-ODP的视点模型,可以从多个角度描述一个复杂的软件系统。最流行的视图模型就是“4+1”视图模型,它由五个视图组成,包括场景视图、逻辑视图、进程视图、物理视图和开发视图,如图1-1所示。我们可以粗略地把“4+1”视图模型看作是参照软件生命周期五个阶段建立的视图模型,虽然实际上每个视图描述的内容并不是局限于生命周期的一个阶段,但显而易见的是,除了结构要素之外,这种视图模型也包含了流程要素。
“4+1”视图模型实际上使得有不同需求的人员能够得到他们对于软件体系结构想要了解的东西。系统工程师先从物理视图,然后从过程视图靠近体系结构。最终使用者、客户、数据专家从逻辑视图看体系结构;项目经理、软件配置人员从开发视图看体系结构。
逻辑视图也称概念视图,主要是支持系统功能需求的抽象描述,即系统最终将提供给用户什么样的服务。逻辑视图关注的是系统必须为用户提供的功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的系统功能。在UML中,逻辑视图包含了类、接口和协作,它展现了系统的静态或结构组成及特征,描述场景视图提出的系统功能的实现。逻辑视图在UML中通常表现为类图、交互图、顺序图和状态图。
开发视图也称模块视图,主要侧重于描述系统的组织,与逻辑视图密切相关,都描述了系统的静态结构。开发视图关注的是程序包,不仅包括要编写的源程序,还包括可以直接使用的第三份SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件等。开发视图关注软件开发环境下实际模块的组织,反映了开发难度、软件管理、重用性和通用性及由工具集、编程语言所带来的限制和约束等。开发视图和逻辑视图之间可能存在一定的映射关系。开发视图在UML中通常表现为包图。
过程视图主要侧重于描述系统的动态行为,即系统运行时所表现出来的相关特性,着重解决系统的可靠性、吞吐量、并发性、分布性和容错性。过程视图的关注点是运行中的线程、进程和对象等概念,以及相关的并发、同步、通信等问题。过程视图和开发视图相比,开发视图一般偏重程序包在编译时的静态依赖关系,而这些程序运行起来之后就会表现为对象、线程、进程以及它们之间的调用关系,过程视图比较关心的正式这些运行时单元的交互问题。过程视图在UML中通常表现为活动图、交互图和状态图。
物理视图描述如何把系统软件元素映射到硬件上,通常要考虑系统的性能、规模和容错等问题,展示了所需要的物理环境、硬件配置和分布状况。物理视图关注的是目标程序及其依赖的运行库和系统软件最终如何安装和部署到物理机器上,以及如何部署机器和网络来配置软件系统的可靠性、可伸缩性等要求。物理视图和过程视图相比,过程视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。物理视图在UML中通常表现为部署图。
根据精准扶贫管理系统所有的内容描述,我们可以大致拟定和精准扶贫管理系统有关的角色为以下四种。
序号名称描述权限1群众贫困村民1.查看公告通知 2.在线提出贫困申请 3.在线留言评论 4.管理个人基本资料 5.查看个人贫困户档案2基层工作人员村级干部或指定的扶贫工作人员,负责群众档案管理1.新建贫困户档案 2.查询贫困户档案 3.更新贫困户档案 4.删除贫困户档案3系统管理员指定的系统管理人员,按审核结果进行系统消息管理、发布通知公告和用户管理1.发布公告通知 2.处理群众贫困申请 3.留言评论管理 4.用户管理4主管领导镇级以及以上干部或指定的扶贫工作人员,负责扶贫审查和监督1.查询贫困户档案 2.查看群众留言评论 3.查看扶贫资金发放流程 4.查看扶贫过程情况和进度 5.查看贫困户信息数据库统计分析报表精准扶贫信息化平台的应用贯穿贫困户精确识别、精确帮扶、精确管理、帮扶成效评价、意见反馈、大数据分析等整个扶贫全过程;在贫困户精确识别阶段可实现扶贫信息公示、评选结果反馈、建立贫困户档案和数据库等功能;在帮扶阶段,可为精确帮扶、精确管理提供信息化手段支撑,包括贫困户信息管理、阳光操作管理、扶贫事权管理;在帮扶成效评估和意见反馈阶段,可提供基于互联网+的在线评价和网站在线反馈功能;通过对系统运行积累的大数据进行系统分析,可提供对贫困原因、帮扶措施、帮扶效果、贫困户分布等的关联性分析,趋势分析、预测,综合数据分析,数据挖掘,领导辅助决策,统计报表等功能。
精准扶贫管理系统功能性分析
精准扶贫管理系统的功能性分析可以反映这个系统能够完成的各项功能,它能够清晰、明确地把这个系统要完成的功能展示给后续的设计人员和使用者。精准扶贫管理系统的具体功能如下: 系统允许群众注册。系统允许群众登录系统。系统允许群众查看个人基本信息。系统允许群众修改个人基本信息。系统允许群众在线提出贫困户申请。系统允许群众进行在线留言。系统允许群众进行在线评价。系统允许群众查看个人的贫困户档案。系统为群众分配自己的账户和访问权限。系统允许基层工作人员登陆系统。系统允许基层工作人员查看群众用户基本信息。系统允许基层工作人员新建贫困户档案。系统允许基层工作人员更新贫困户档案。系统允许基层工作人员查询贫困户档案。系统允许基层工作人员删除贫困户档案。系统为基层工作人员分配自己的账户和访问权限。系统允许系统管理员登录系统。系统允许系统管理员管理群众用户贫困申请。系统允许系统管理员公告通知“贫困户”名额。系统允许系统管理员公告通知申请评选须知。系统允许系统管理员公告通知申请人名单信息。系统允许系统管理员公告通知贫困户评选结果。系统允许系统管理员修改公告通知。系统允许系统管理员删除公告通知。系统允许系统管理员查看公告通知。系统允许系统管理员查看群众在线留言。系统允许系统管理员删除群众在线留言。系统允许系统管理员回复群众在线留言。系统允许系统管理员查看群众在线评论。系统允许系统管理员删除群众在线评论。系统允许系统管理员回复群众在线评论。系统允许系统管理员查看用户基本信息。系统允许系统管理员修改用户基本信息。系统允许系统管理员管理用户权限。系统为系统管理员分配自己的账户和访问权限。系统允许主管领导登录系统。系统允许主管领导查看贫困户档案。系统允许主管领导查看公告通知。系统允许主管领导查看群众用户基本信息。系统允许主管领导查看贫困户信息数据库分析统计报表。系统允许主管领导查看群众留言评论。系统允许主管领导查看扶贫资金发放流程及进度。系统允许主管领导查看扶贫过程情况和进度。精准扶贫管理系统非功能性分析
网络响应速度应该尽量快。用户填写的信息应该尽量少,尽量采用选择和勾选方式。系统应该有预留接口,可以方便地连接到客服的电话。精准扶贫管理系统的功能模块图反映了精准扶贫管理系统的功能及各个功能之间的关系。总体分为“注册”、“登录”、“公告通知”、“档案管理”、“消息管理”、“留言反馈”、“用户管理”、“审查监督”八个模块,具体内容如图所示。
功能模块图说明:
注册 【功能描述】 群众用户在使用精准扶贫管理系统进行在线贫困申请、在线留言、在线评论之前,需要进行用户注册,并填写相应的注册信息。 【操作者】群众
登录 【功能描述】 系统所有用户,包括群众、基层工作人员、系统管理员以及主管领导,在本精准扶贫管理系统进行相应权限的操作之前都需要先登录系统,以便系统为其分配操作权限。 【操作者】群众、基层工作人员、系统管理员、主管领导
公告通知 【功能描述】 群众用户在公告通知面板上浏览查看由系统管理员发布最新通知公示信息。 【操作者】群众 【功能描述】 系统管理员在公告通知模块新建公告通知,编辑公告通知内容,并发布到公告通知面板上,供群众用户浏览查看。 【操作者】系统管理员
档案管理 【功能描述】 针对贫困申请通过的群众用户,需要对进行一系列的贫困户档案管理, 包括新建贫困户档案、查看贫困户档案、更新贫困户档案、删除贫困户档案的操作,其中贫困户档案中,包含了贫困户基本信息表、贫困户需求情况表、贫困帮扶情况表、脱贫计划、贫困户台账、帮扶结果、帮扶措施等内容。 【操作者】基层工作人员
消息管理 【功能描述】 主要针对群众用户对精准扶贫管理系统的一系列操作进行响应处理。包括群众用户的贫困申请、在线评论、在线留言等内容的查看、删除、回复等。 【操作者】系统管理员
留言反馈 【功能描述】 为了达到更好更准确的帮扶效果,精准扶贫管理系统为群众用户提供了 留言反馈功能模块,群众用户可以针对公告通知、帮扶措施、帮扶结果、帮扶成效等内容进行在线留言、在线评价等操作。 【操作者】群众
用户管理 【功能描述】 精准扶贫管理系统的用户有四种,系统为每个用户分配了自己的账户和权限,系统管理员可对用户的信心进行查看和修改,以及权限的设置。 【操作者】系统管理员
审查监管 【功能描述】 实现对扶贫资金、扶贫项目、项目审批的全流程监管。充分发挥省、市两级政府的扶贫资金和项目监管作用,主管领导可在该功能模块下查看扶贫项目进度,资金发放情况、扶贫审批情况以及贫困户信息数据库分析统计报表等内容。 【操作者】主管领导
群众用例图、基层工作人员用例图、系统管理员用例图以及主管领导用例图分别如图所示。
根据前面的系统用例分析,我们抽象出系统实体,并对实体进行了输入性分析,实体及其属性分析图如图2.4.1-1所示。
消息数据库类 由申请单、评论、留言、公告通知组成,包含了公告通知模块、留言反馈模块和消息管理模块。请申请单内容、评论内容、留言内容由群众用户产生,由系统管理员负责管理处理,包含了查看、删除、修改等操作。通知公告内容由系统管理员产生,群众用户可查看。主管领导可查看消息数据库类中的所有内容。
贫困户信息数据库类 由所有审核认证的贫困户档案组成,对应了功能模块为档案管理。内容由基层工作人员录入,并进行管理,包括新建、查看、修改、删除等操作。群众用户可查看自己的贫困户档案,主管领导可查看所有的贫困户档案。
用户数据库 由所有群众用户的基本信息组成,对应的功能模块为用户管理。内容由注册群众用户产生,系统管理员可对内容进行管理,包括查看、修改用户信息以及设置用户权限。基础工作人员和领导可查看用户数据库内容的用户基本信息。
项目统计数据库类 由扶贫项目、扶贫资金以及统计报表组成,对应的功能模块为审查监管。内容有用户数据库、贫困户信息数据库和消息数据库的数据统计生成。由主管领导负责管理,包括新建、查看、修改、删除报表和查看项目及项目资金等等操作。
【说明】
精准扶贫管理系统包图主要由“业务相关人员”、“业务界面”、“后台管理”以及“系统数据信息”是四包组成。业务相关人员包包括群众用户类、系统管理员类、主管领导类以及基层管理人员类。群众依赖业务界面,基层工作人员和系统管理员依赖后台管理。所有的数据内容都依赖于系统数据库。业务界面包包括申请单类、评论类、留言类以及公告通知类。主要为群众用户涉及处理的一系列界面操作内容,依赖于后台管理。后台管理包包括了贫困户档案类、扶贫项目类、扶贫资金类以及统计报表类。主要为基层工作人员以及主管领导需要处理和查看的一系列内容,依赖于系统数据信息。系统数据信息包包括消息数据库内、贫困户信息数据库类、用户数据库类以及项目统计数据库类,其他包提供数据内容支持。
【说明】
精准扶贫管理系统组件图主要包括图2.5.2-1所示的13个组件。消息通知管理组件由消息管理、公告通知以及留言反馈组件组成。消息通知管理组件依赖与消息数据库组件;档案管理组件依赖于贫困户信息数据库组件;用户管理组件依赖于用户数据库组件;审查监管组件依赖于项目统计数据库组件。项目统计数据库的数据内容由消息数据库、贫困户信息数据库以及用户数据库生成,所以项目统计数据依赖于三者。针对精准扶贫管理系统的部分关键用例作如下顺序图建模。
【说明】
精准扶贫管理系统部署图主要由客户计算机、应用服务器以及数据库服务器三个部分组成。客户计算机主要包括方便携带查看的手机客户端和方便操作处理的web浏览器端。消息通知管理、档案管理、审查监管、用户管理等一些列系统管理组件都部署在应用服务器上,以供系统管理员、基层工作人员以及主管领导操作管理。用户数据库、消息数据库、贫困户信息数据库以及项目统计数据库都部署在数据库服务器上,为其他节点提供数据内容支持。【说明】
精准扶贫管理系统的消息通知模块主要包括用户申请、用户评论、用户留言以及公告通知的管理。由于申请单、评论、留言和公告通知有共同的属性,所以我们抽象出一个消息公告的抽象类,做为四者的父类,以供继承。消息公告刚才类负责申请单、评论、留言以及公告通知的对象创建。【说明】
精准扶贫管理系统的消息通知模块主要包括用户申请、用户评论、用户留言以及公告通知的管理。申请单、评论、留言以及公告通知继承于消息公告抽象类。分别创建留言工厂类、申请单工厂类、评论工厂类以及公告通知工厂类以实现对留言、申请单、评论以及公告通知的创建。创建消息公告工厂抽象类,以供留言工厂类、申请单工厂类、评论工厂类以及公告通知工厂类继承。在上例中可以看到,原模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,加入必要的处理逻辑,这违背了“开闭原则”。在该模式中,所有的产品都是由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品与工厂类之间的耦合度高,严重影响了系统的灵活性和扩展性,而工厂方法模式则可以很好地解决这一问题。
工厂方法模式又称为工厂模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
在工厂方法模式中,抽象的的消息公告工厂类不再负责所有的消息公告的创建,而是将具体创建工作交给子类去做。这个抽象类仅仅负责给出具体工厂必须实现的接口,而不负责哪一个消息公告类被实例化这种细节,这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新消息公告类型。
本次课程设计利用“4+1”视图建模方法进行“精准扶贫管理系统”的软件架构设计。架构内容以及设计流程为精准扶贫管理系统内容描述、需求分析、场景视图之用例图设计建模、逻辑视图之类图设计建模、发开视图设计建模、过程视图之交互图设计建模、物理视图之部署图设计建模。其中需求分析包括角色分析、系统需求分析以及系统公告了模块图三个部分;开发视图设计建模包括包图设计建模和组件图设计建模。
最有利用设计模式对设计进行改进。主要针对消息公告管理模块来进行实现,利用工厂方法模式进行改进,并对两种设计方法进行了对比分析。
本次课程设计的完成主要依赖于软件架构课程所学的相关知识,再加上适当的相关参考文献的阅读,才得以将整个软件架构课程设计很好的完成。整个课程设计的过程中,除了对“4+1”视图建模方法的具体使用以及对设计模式的理解,还非常考验对整个软件从需求的提出到整个架构建模实现的流程思路,和处理逻辑。
根据提供的精准扶贫管理系统内容文档,结合自己的理解,提炼出系统需求并设计出大概的功能模块。在此基础上按照“4+1”视图建模方法的流程执行下来。其间可能会存在些许缺失或冗余的情况,不过重要的是在设计的过程中,加深了我对课堂所学知识的理解,通过实际的练习,熟练的掌握了整个软件架构设计的思路、流程以及方法,收获丰硕。
总的来说,这次课程设计加深我对软件系统架构基础理论和基本知识的理解,掌握软件系统架构设计的基本方法,达到进一步综合运用所学知识和增强实际动手能力的目的。