项目 | 内容 |
---|---|
课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12976163.html |
团队名称 | GF4 |
团队成员分工 | 徐 思:编写博客,需求规格说明书撰写 杨其菊:软件设计说明书撰写 杨蓉庆:软件设计说明书撰写 张 燕:需求规格说明书撰写 |
团队的课程学习目标 | (1)学习使用UML建模工具; (2)掌握面向对象需求分析建模技术; (3)理解和掌握面向对象软件系统设计原理、设计过程和技术。 |
这个作业在哪些方面帮助团队实现学习目标 | 利用作图工具ProcessOn绘制用例图和UML模型,编写软件需求规格说明书和软件设计说明书 |
团队博客链接 | https://www.cnblogs.com/xzyy2017/ |
团队项目Github仓库地址链接 | https://github.com/sisi-713/Farm |
任务1:以团队协作学习方式掌握在线作图工具ProcessOn的软件操作方法。
ProcessOn是一款线上绘制流程图、原型、UML、网络拓扑图、组织拓扑图、思维导图、BPMN等图形非常便利的工具。
ProcessOn优点:
- 免费,页面简洁,功能易懂易用。
- 集成常用的流程图、思维导图、原型设计、UML等于一体,方便便利。
- 拥有协作功能:可以和好友同时编辑同一份文档,适合个人、团队开发。
- 拥有版本恢复功能:能够新建历史版本,并恢复到不同的版本。
- 拥有完整免费的下载功能:支持 PNG,PDF,POS,SVG等下载。
- 拥有发布、分享功能:能够美美哒分享自己的创作。
- 拥有小组功能:适合团队开发,并区分了编辑者和浏览者,更方便维护文档。
- 拥有推荐和模板功能:能够更便利找到所需的精彩模板。
ProcessOn缺点:
- 原型设计不如MockPlus;
- 拥有文件数量限制,需要开通会员或者其他方法获取;
- 需要联网使用,目前没有单机软件。
团队成员加入ProcessOn:
团队成员学习ProcessOn工具:
任务2:整理实验七作业成果,应用面向对象分析方法(OOA),参考国标GB8567—88中《软件需求规格说明书》格式,编制团队项目需求规格说明书,并将该文档上传到团队项目Github仓库,文档内容要求如下:
(1)采用用例图(或者DFD图)建模表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;
用例图如下所示,可视化地表达了系统的需求。参与者有用户和管理员。用户和管理员都可通过注册登录界面进入系统。对于用户而言,可以通过预约中心预约体验项目,通过土地租赁可以对土地进行购买及托管种植服务,后期也可通过实时监控查看农作物生长情况,在购物商城也可购买农产品。此外,个人中心包含个人设置及我的订单,我的订单可查看订单和对订单进行修改。对于管理员而言,可执行的操作有土地信息管理、土地租借管理、农作物管理、农产品管理、订单管理、预约管理及用户信息管理。
(2)参考《构建之法》8.5节功能的定位和优先级,给出功能分析的四个象限;
一般的四象限法多用于时间管理,他的主要观念是将主要时间和精力放到重要但不紧急的事情上,这样做到未雨绸缪。通过建立两个坐标轴,横轴代表事情的重要程度,纵轴代表事情的紧迫程度,这样就划分出四个象限。第一象限代表重要而且紧急的事务,第二象限代表紧急不重要的事务,第三象限代表不重要不紧急的事务,第四象限代表重要不紧急的事务。
针对每一象限,用这种划分对我们的项目功能进行了分析,结果如下图所示:
- 第一象限:土地租赁及托管种植,采取“差异化”的办法,为了吸引用户,全力以赴投资在土地租赁及托管种植方面,是我们产品的亮点。
- 第二象限:系统的登录注册功能和管理员对信息的增删改查功能,采取“抵消”的办法,快速地达到“和别人差不多”,对于大家都特别看重的功能,采取“优化”的办法,达到行业最佳。
- 第三象限:界面的跳转及良好的交互界面,采取“维持”的办法,以最低代价维持此功能,。
- 第四象限:实时监控,购物商场及项目预约,采取“维持”的办法,或者现在“不做”,等待好的时机,或者小规模实验。
(4)编制项目的WBS
完成需求分析后,若要开发能够满足用户需求的软件,持续有序实现团队目标,团队要在一段时间内完成诸多任务,编制项目WBS(Work Breakdown Structure,即工作分解结构,是根据项目目标把工作分解成层次分明的、可交付成果的工作任务,用逻辑图形或树形结构表示出来),是团队项目有序管理的工作依据。
WBS图:
看板图:
(5)估计各项任务所需时间
任务 | 估计所需时间 |
---|---|
用户模块 | 三周 |
管理员模块 | 两周 |
数据库设计 | 两天 |
界面美化 | 两天 |
(6)将《开心农场软件需求规格说明书》上传到团队项目Github仓库,博客中提供团队项目仓库中上传文档后的截图。
任务3:查阅资料,回答以下问题:
(1)何谓软件设计模式?
答:软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。利用软件设计模式可以做出质量更高,代码更少,扩充更容易的软件。一般模式有4个基本要素:模式名称(pattern name)、问题(problem)、解决方案(solution)、效果(consequences)。设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点。
可以提高程序员的思维能力、编程能力和设计能力。
使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。
使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。
(2)什么是C/S?
答:C/S是客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
工作模式:C/S 结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS(数据库管理系统)的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。
(3)什么是B/S?
答:BS,即B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式。该模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。Browser/Server结构主要是利用了不断成熟的Web浏览器技术:结合浏览器的多种脚本语言和ActiveX技术,用通用浏览器实现原来需要复杂专用软件才能实现的强大功能,同时节约了开发成本。B/S 建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息管理,一般只要有操作系统和浏览器就行。它最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。但它建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。
(4)什么是MVC设计模式?
答:MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。
M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
任务4:以任务1的成果为基础,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书,以回答:软件是如何实现用户需求的?文档内容要求如下:
(1)采用适合的软件设计模式设计软件系统总体结构;(具体见文档)
(3)说明软件重用方案;(具体见文档)
我们的重用主要是在源代码级,通过类的继承来实现的。其实可重用的范围是很大的,如设计的重用,测试用列的重用,可运行的代码的重用等。我们设想,将来扩大重用的力度,在目前框架基础上,进一步根据我们单位的软硬件环境定制出一一个适用于我们系统的框架,如加数据库连接的功能等。这样,我们可直接重用这个框架,这可以极大地提高软件的开发和维护的效率。其次重点考虑设计重用,我们的系统是面向大量顾客的,所以在界面美观方面占较重的比例,在设计重用这方面采用多人设计,阶段试用,及时收集反馈,不断迭代等操作。
(4) 设计关键类的重点服务。(具体见文档)
用户:用户可以租地种植;购买商城农产品,也可以售出自己的货物;通过实时监控查看作物的生长状况以及进行娱乐项目预约。
管理员:管理员可以进行用户、土地、土地租借、商城农产品、娱乐项目和预约、农作物种植记录信息和订单信息等的管理和维护。
(5)将《开心农场软件设计说明书》上传到团队项目Github仓库,博客中提供团队项目仓库上传文档后的截图
任务5:完成《实验八 团队作业4:团队项目需求建模与系统设计》团队博文作业。
任务6:各项任务实际花费的时间和分工
项目 | 时间(min) | 分工 |
---|---|---|
任务1 | 20 | 徐思,张燕,杨蓉庆,杨其菊 |
任务2 | 400 | 徐思,张燕,杨蓉庆,杨其菊 |
任务3 | 30 | 徐思,张燕,杨蓉庆,杨其菊 |
任务4 | 450 | 徐思,张燕,杨蓉庆,杨其菊 |
任务5 | 60 | 徐思,张燕,杨蓉庆,杨其菊 |
任务7:从团队分工和协作学习角度,陈述团队实施ProcessOn建模工具学习、项目需求分析建模、软件系统设计等学习活动的心得。
ProcessOn建模工具学习:本次实验用到Processon工具绘制需要的图,是我们团队第一次使用这个工具,实验前我们一起讨论练习了ProcessOn的基本操作,方便在分工后绘图完成任务。作为一款专业的在线作图工具,也支持多种图形的绘制,它可以在线画流程图、思维导图、U原型图、UML网络拓扑图、组织结构图等等。它不用下载客户端,只要打开浏览器输入网址登录就可以使用,另外画布会根据内容的大小自动向外进行扩展,十分方便。Processon有一个功能很不错,用户可以将自己制作的图形作为模板分享出去,并可以设置费用,作为别人复制你的模板的费用。这鼓励了用户去主动分享自己绘制的图形。但是唯一不足的地方是Processon的存放文件数太少,如果不升级只能建9个文件。总体来说,使用Processon给团队工作带来很大便利。
项目需求分析建模:在项目需求分析之前,我们对实验七的成果进行了总结,对用户需求和系统功能进行分析,在分析中讨论发现之前未考虑的问题,然后对需求进行改进,建立用例图和类图。团队成员分工明确,合作融洽,在多次合作后,成员之间越来越有默契,合作越来越愉快。
软件系统设计:在这次软件系统设计过程中,首先我们对系统的需求分析进行了讨论,画出了相应的用例图来辅助说明系统角色的划分和所具备的功能,其次是对系统模块的设计,在这个过程中,我们每个人都有了不同的分工,在合作和独立完成相交织的融合下,完成了系统的功能模块设计,然后是数据库设计,也是分工完成,进行建表,用数据库系统图来说明了各部分之间的关系,一目了然,总体来说,虽然系统设计过程耗时有些多,但最后我们还是圆满完成了,算是小胜利…