任务 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE/ |
这个作业的要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12976163.html |
团队名称 | 你说什么都不队 |
团队成员分工描述 | 王艳:任务2和软件设计说明书 王玉兰:任务二和撰写博客 马兴德:任务4和软件设计说明书 苏浪浪:任务1和任务3 |
团队的课程学习目标 | (1)学习使用UML建模工具;(2)掌握面向对象需求分析建模技术;(3)理解和掌握面向对象软件系统设计原理、设计过程和技术 |
这个作业在哪些方面帮助团队实现学习目标 | 利用作图工具ProcessOn绘制用例图和UML模型,编写软件需求规格说明书以及软件设计说明书 |
团队博客链接 | https://www.cnblogs.com/wwms/p/13050559.html |
团队项目Github仓库地址链接 | https://github.com/JAVAWY/Team-Project |
一、实验目的与要求
(1)学习使用UML建模工具;
(2)掌握面向对象需求分析建模技术;
(3)理解和掌握面向对象软件系统设计原理、设计过程和技术。
二、实验环境要求
常用UML图形绘制工具:
Visio、Rational Rose、PowerDesign,建议采用轻量级的Visio。
在线作图工具ProcessOn:https://www.processon.com/
三、实验内容与步骤
任务1:以团队协作学习方式掌握在线作图工具ProcessOn的软件操作方法。
- 总结ProcessOn软件功能特点:
ProcessOn软件具体分为图形栏、设置面板、工具栏,产品主要围绕用户的绘图需求。它的功能有如下:
1)图形连接后会有导通标志;
2)对图形进行调整会有调整信息展示;
3)文件可进行“协作”;
4)丰富的图形管理库;
5)绘图过程会快速进行自动保存;
ProcessOn绘图软件操作简单,菜单栏、图形库、设置面板都满足用户基本的使用需求,学习成本低,且其具有团队协作功能,可以进行团队协作完成绘图。 - 使用processOn绘图软甲设计系统模型图
任务2:整理实验七作业成果,应用面向对象分析方法(OOA),参考国标GB8567—88中《软件需求规格说明书》格式,编制团队项目需求规格说明书,并将该文档上传到团队项目Github仓库,文档内容要求如下:
-
(1)采用用例图(或者DFD图)建模表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;
本系统主要是面向小型医疗机构和诊所,根据调研得知,小型医疗机构通常医生和护士,有的也设置有管理员;而乡镇诊所一般只有少数几位工作人员,他们既负责医药和诊疗,也负责工作人员信息的管理。因此,根据这些机构的真实情况,我们主要设计有管理员和医师两类权限。管理员可以对所有信息进行查看(这也是考虑到诊所的情况),此外,管理员具有特殊的权限是进行系统设置,主要表现为对密码进行管理,其余情况下,管理员和医生具有相同的权限,可以对基本信息进行管理。用户登录后,首先是主页面,左侧设置有导航栏,可以看到一些日常的操作,比如病人信息或者就以档案的管理等等。
-
(2)参考《构建之法》8.5节功能的定位和优先级,给出功能分析的四个象限;
四象限分析法:源于四象限图,又叫二维象限图。四象限分析法是在平面内通过对两个相互独立的指标(属性、性质、特征)的正反两个方向进行两两组合,最终将事务划分到四个组合区域,对每一个区域进行分析并制定相应的策略。
用四象限分析法将对我们项目进行划分如下:
-
(3)选择适当的UML模型,建立问题域对象模型;
在学习面向对象分析之后,我们知道它的首要的工作,是建立问题域的对象模型,模型描述了现实世界中的“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构。建立对象模型的工作步骤,首先确定对象类和关联,对于大型复杂的问题还要进一步划分若干个主题,然后给类和关联增添属性,以进一步描述它们,接下来利用适当的继承关系进一步合并和组织类。而对象类中的操作的最后确定,则需要建立了动态模型和功能模型确定之后,因为这两个子系统模型更准确地描述了对类中的提供的服务需求。根据建立问题域的对象模型步骤,我们建立了系统的UML模型:
系统中类与类之间的关系图:
-
(4)编制项目的WBS
完成需求分析后,若要开发能够满足用户需求的软件,持续有序实现团队目标,团队要在一段时间内完成诸多任务,编制项目WBS(Work Breakdown Structure,即工作分解结构,是根据项目目标把工作分解成层次分明的、可交付成果的工作任务,用逻辑图形或树形结构表示出来),是团队项目有序管理的工作依据。WBS图:
看板图:
-
(5)估计各项任务所需时间
任务 | 内容 |
---|---|
网页设计 | 三周 |
数据库设计 | 三天 |
美化测试 | 五天 |
- (6)将《小型医疗机构诊疗管理系统需求规格说明书》上传到团队项目Github仓库,博客中提供团队项目仓库中上传文档后的截图。
任务3:查阅资料,回答以下问题:
- (1)何谓软件设计模式?
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。它总共分为三大类:
①创建型模型;②结构型模型;③行为型模型
软件设计模式的重要意义在于设计复用。设计模式可以使设计者更加方便地借鉴或直接使用已经过证实的成功设计方案,而不必花费时间进行重复设计。一些设计模式甚至提供了显示的类图设计及代码实例,为设计的文档化及软件的开发提供了直接的支持。
- (2)什么是C/S?
服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。在C/S结构中,应用程序分为两部分:服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
- (3)什么是B/S结构?
B/S中的B指的是browsers,是浏览器的意思,S值Server指服务器的意思。B/S架构采取浏览器请求,服务器响应的工作模式。用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。B/S架构的软件一般都是通过访问一个网页的形式来使用的,而将一些运算等操作放到远端的服务器上。这样就降低了对客户端的要求,我们的计算机上只需要安装一个浏览器即可使用。像我们常用的京东、taobao、12306等这些网站都是B/S架构的软件。
- (4)什么是MVC模式?
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。Model(模型),是程序的主体部分,主要包含业务数据和业务逻辑。在模型层,还会涉及到用户发布的服务,在服务中会根据不同的业务需求,更新业务模型中的数据。View(视图),是程序呈现给用户的部分,是用户和程序交互的接口,用户会根据具体的业务需求,在View视图层输入自己特定的业务数据,并通过界面的事件交互,将对应的输入参数提交给后台控制器进行处理。Controller(控制器),Controller是用来处理用户输入数据,已经更新业务模型的部分。控制器中接收了用户与界面交互时传递过来的数据,并根据数据业务逻辑来执行服务的调用和更新业务模型的数据和状态。MVC模式将它们分离以提高系统的灵活性和复用性,不使用MVC模式,用户界面设计往往将这些对象混在一起。MVC模式实现了模型和视图的分离。
任务4:以任务1的成果为基础,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书,以回答:软件是如何实现用户需求的?文档内容要求如下:
-
(1) 采用适合的软件设计模式设计软件系统总体结构;(具体在文档中详见)
-
(2) 设计软件系统数据库逻辑结构;
医生和病人实体
科室和就医档案实体
收费管理和价格管理实体
小型医疗机构系统总体数据库逻辑结构图
-
(3)说明软件重用方案;
1)代码的重用性
因为在开发软件的过程当中,我们采用的软件代码都是比较简单的,所以在某种程度上来说,如果有人想在我们的代码上继续研究开发,可以继续使用我们的代码去开发,但是如果他们想用自己的代码去实现自己的软件目标,也可以采用我们软件的相关类,以及对象的重用,这些都是相对来说比较简单的,开发者可以简单的读懂代码的类以及对象,然后可以根据他们的想法去开发自己的项目。
2)项目的重用性
在开发项目的过程中,因为我们设计的是小型的医疗管理系统,所以在各项功能方面相对于一些大型医院的要求来说,可能还达不到一定的标准,但是在小型的医疗的机构还是可以用的,在后期的开发研究的过程当中,我们还是可以继续在这个项目的研究上进行开发,当然,一些同行要是想在我们的系统上继续进行开发,也是相对来说可以的,因为在一些功能的设计上,可能还是不太健全,但是在经过后期的修改之后,这样的情况相对来说是可以改变的,然后将系统的功能完善,应用与一些大型的医疗机构。
3)项目的领域上
在项目的领域方面,我想我们的项目是跟着社会的发展走,未来的医疗机构肯定是最重要的,在这一方面肯定是毋庸置疑的,所以随着社会的发展,现在设计的这种医疗机构的功能可能是不够健全的。然后我们可以在这个医疗的领域,不停的将我们这个系统进行重用,进行一个项目的改进,最终让这个项目的功能越来越完善,以至于最后可以用于一些大型的医疗机构。 -
(4)设计关键类的重点服务。
1)就医信息查询
本项目提供基础信息查询,可以查询到患者信息、就以档案等。计算机代替传统手工方式,这样既方便了患者有可能遗忘一些在过往的就医情况当中的一些重要信息,同时也让医生能够及时了解到患者的信息,能够对症下药,及时对患者做出诊治。
2)用药查询
使用此功能可以查询患者的过往用药记录,查看患者对哪些药物过敏,前期都服用了哪些药物,这样可以以更好的方法来医治患者。还有最重要的一点就是,此功能可以查询一些药物的价格,这样可以更加方便于医药价格和收费的管理,能够很好地提高工作效率。 -
(5)将《小型医疗机构诊疗管理系统软件设计说明书》上传到团队项目Github仓库,博客中提供团队项目仓库上传文档后的截图
任务5:完成《实验八 团队作业4:团队项目需求建模与系统设计》团队博文作业
- 记录完成《实验八 团队作业4:团队项目需求建模与系统设计》各项任务实际花费的时间和分工
1)各项任务预计与实际花费时间
任务 | 预计花费时间 | 实际花费时间 |
---|---|---|
任务1 | 1.5 | 2 |
任务2 | 15 | 17 |
任务3 | 0.6 | 0.6 |
任务4 | 16 | 17 |
任务5 | 1 | 2 |
2)成员任务分工如下:
成员 | 任务分工 |
---|---|
王艳 | PM 任务1学习 任务2和软件设计文档撰写 |
王玉兰 | 任务1学习 任务2和博客撰写 |
马兴德 | 任务1学习 任务4和软件设计文档撰写 |
苏浪浪 | 任务1学习 任务3和系统软件模型设计图 |
- 从团队分工和协作学习角度,陈述团队实施ProcessOn建模工具学习、项目需求分析建模、软件系统设计等学习活动的心得
王艳:本次实验任务感觉相比之前的稍微繁琐一些,从学习在线工具到创建各类图,一步一步越来越复杂。但是也在这次实验中明显感受到实验的逐步进行,感觉实验进入了重要环节,实验的架构功能也逐渐清晰起来。这次的实验任务二和任务四还是有一定的难度,我们在完成任务的过程中,出现了很多问题,还好现在大家可以见面进行讨论,同时通过上网搜索资料,也顺利完成了任务。在整个实验过程中,大家齐心协力,有问题就随时提出,大家在一起解决,后面的任务肯定会越来越艰巨,但是相信我们可以的,加油!
王玉兰:本次团队作业,首先是要学会ProcessOn绘图软件,然后用此工具设计系统软件UML,由于初次接触建模图过程比较繁琐,只能慢慢一步一步探索着学习,最后基本学会使用ProcessOn绘图软件,发现它很方便也很使用也容易上手。从项目需求分析建模以及软件系统设计后把小型医疗机构系统清晰明了地展现了出来,虽然在设计的过程中方存在很多的问题,但是经过和组员探讨修改,初步完成了本次的模型设计。在我们组员同伴的分工明确和大家积极配合的情况下,我们顺利完成了本次实验,经历了几次团队作业,慢慢地大家有了默契,任务完成也积极,大家继续保持。
马兴德:通过本次的学习中,我们在老师上课发布任务之后我们在课堂上经过讨论之后,然后分布任务做好项目的顺利完成。然后我们学习了绘图工具的使用,在实验的过程中通过这个软件来绘制软件项目开发的流程图,在这个过程中刚开始接触这个软件还是有一点陌生的,所以在学习的时候还是稍微有一点困难,希望在以后的软件开发当中可以更加熟练这个软件吧。
苏浪浪:在本次实验中,我们团队通过学习并且掌握在线作图工具ProcessOn的软件操作方法。知道了ProcessOn软件具体分为图形栏、设置面板、工具栏,并且查阅资料了解到了什么是c/s等等一些重要问题,深刻的认识到团队协作的重要性以及必要性,它能让你快速的学习以及掌握一些自己不懂的知识,通过这次实验也理解了一些在课堂上所不懂的知识点,受益匪浅