实验八 团队作业4:团队项目需求建模与系统设计

萌新入坑 《实验八 团队作业四:团队项目需求建模与系统设计》

 

项目 内容
课程班级博客链接 [https://edu.cnblogs.com/campus/xbsf/nwnu2020SE]
这个作业要求链接 [https://www.cnblogs.com/nwnu-daizh/p/12976163.html]
团队名称 萌新入坑
团队成员分工描述 张季跃项目经理,邹丰蔚需求分析,张云飞软件开发,周强数据库设计
团队的课程学习目标 (1)学习使用UML建模工具;(2)掌握面向对象需求分析建模技术;(3)理解和掌握面向对象软件系统设计原理、设计过程和技术。
这个作业在哪些方面帮助团队实现学习目标 简单的了解ProcessON等相关软件的用法,掌握面向对象需求分析建模技术;理解和掌握OOD、OOA
团队博客链接 [https://www.cnblogs.com/mxrk/]
团队项目Github仓库地址链接 [https://github.com/Fairber/-project]
 
任务1:以团队协作学习方式掌握在线作图工具ProcessOn的软件操作方法。

 

 


软件功能:
    1.跨端使用
    ProcessOn是在线作图工具,无需下载安装,便于跨端使用。
    2.在线协作
    在企业工作过程中,团队协作是很重要的一环。ProcessOn的文件可以进行协作,实现多人共同浏览和编辑。
    3.多格式导入导出
    ProcessOn支持vsdx、xmind、txt、excel等格式文件的导入,支持导出高清png、jpg、pdf等格式文件。满足多场景的下载需求。
    4.内容社区
    用户可以将自己有价值的知识绘制成图后发布到ProcessOn平台,与相关行业大V在站内进行交流。

优点:
    •免费。
    •页面简洁,功能易懂易用。
    •集成常用的流程图、思维导图、原型设计、UML等于一体,方便便利。
    •拥有协作功能:可以和好友同时编辑同一份文档,适合个人、团队开发。
    •拥有小组功能:适合团队开发,并区分了编辑者和浏览者,更方便维护文档。
    •拥有推荐和模板功能:能够更便利找到所需的精彩模板
 
缺点:
•原型设计不如MockPlus,毕竟MockPlus是专门做原型设计的。
•拥有文件数量限制,需要开通会员或者其他方法获取。但一般使用也足够了。

任务2:整理实验七作业成果,应用面向对象分析方法(OOA),参考国标GB8567—88中《软件需求规格说明书》格式,编制团队项目需求规格说明书,并将该文档上传到团队项目Github仓库,文档内容要求如下:
 
上传截图:

 

 


(1)采用用例图(或者DFD图)建模表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;

 

(2)参考《构建之法》8.5节功能的定位和优先级,给出功能分析的四个象限;

 

 

(3)选择适当的UML模型,建立问题域对象模

 

 


(4)编制项目的WBS
       完成需求分析后,若要开发能够满足用户需求的软件,持续有序实现团队目标,团队要在一段时间内完成诸多任务,编制项目WBS(Work Breakdown Structure,即工作分解结构,是根据项目目标把工作分解成层次分明的、可交付成果的工作任务,用逻辑图形或树形结构表示出来),是团队项目有序管理的工作依据。
该任务可参考:http://www.cnblogs.com/zhengrui0452/p/6653964.html

 

 

(5)估计各项任务所需时间
该任务可参考:https://www.cnblogs.com/xinz/archive/2011/04/06/2007294.html
任务 时间(min)
任务1 100
任务2 800
任务3 100
任务4 600
任务5 60

任务3:查阅资料,回答以下问题:
(1)何谓软件设计模式?
    软件设计模式,又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
    四个要素:
    1)模式名称:
      一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。
    2)问题:
      描述问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。
     3)解决方案:
      描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。
      4)效果
      描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。
 
(2)什么是C/S?
       服务器-客户机,即Client-Server(C/S)结构。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
C/S模式有以下特点:
   1)C/S模式将应用与服务分离,系统具有稳定性和灵活性。
   2)C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 。
   3)由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快。
   4)在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂。
C/S结构的优点:
    能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,客户端响应速度快。
     1)应用服务器运行数据负荷较轻。
     2)数据的储存管理功能较为透明。

(3)什么是B/S结构?
    答:B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。

(4)什么是MVC设计模式?
    答:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
 

任务4:以任务1的成果为基础,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书,以回答:软件是如何实现用户需求的?
(1)   采用适合的软件设计模式设计软件系统总体结构;
经过详细的讨论,我们的开心农场软件比较适合使用策略模式,策略模式是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换,且算法的变化不会影响到使用算法的客户。
选择策论模式的理由:
   1、 策略模式提供了管理相关的算法族的办法。策略类的等级结构定义了一个算法或行为族。恰当使用继承可以把公共的代码转移到父类里面,从而避免重复的代码。
   2、 策略模式提供了可以替换继承关系的办法。继承可以处理多种算法或行为。如果不是用策略模式,那么使用算法或行为的环境类就可能会有一些子类,每一个子类提供一个不同的算法或行为。但是,这样一来算法或行为的使用者就和算法或行为本身混在一起。决定使用哪一种算法或采取哪一种行为的逻辑就和算法或行为的逻辑混合在一起,从而不可能再独立演化。继承使得动态改变算法或行为变得不可能。
   3、 使用策略模式可以避免使用多重条件转移语句。多重转移语句不易维护,它把采取哪一种算法或采取哪一种行为的逻辑与算法或行为的逻辑混合在一起,统统列在一个多重转移语句里面,比使用继承的办法还要原始和落后。
 
(2)   设计软件系统数据库逻辑结构;

 

 


(3)   说明软件重用方案;
 首先我们讨论了关于什么代码应该重用?一方面是通用的,每个产品都能用到的代码,肯定要入库;另一方面是具有专业性的算法,比如图形算法等等,这种代码的通用性仅限于那个领域,不是所有产品都能用上的,但也要建立,因为他的技术含量高,避免二次反复开发。   对于客户而言,我们是一家人,是软件的开发和提供方,所以公司的代码一般不分服务与客户,代码大家都能看到,如果任其自由复制修改应用,那么虽然也叫重用但没办法统一,也就无法管理了。所以我主张,公司的重用库一般情况下最好实现封装,普通项目开发人员一般也得不到它的代码。他们要做的就是上报可重用的代码、查询库中已有的代码、直接调用。即使测试过程中发现是重用库的Bug,也和开发人员没有关系,由管理重用代码库的组织来解决,找到代码的作者,由其修改,新库一发布,就行了。所以说公司内部建立这种请求--服务的关系的话,各自的职责便明确化了。 
 
(4)   设计关键类的重点服务。
本系统所有关键类如下所示:
    普通用户类:定义了普通用户的基本属性
    管理员类:定义了管理员的基本属性
    用户功能类:定义与用户相关的功能实现基本方法
    管理员管理类:定义与管理员相关的管理功能实现基本方法
    用户控制类:控制用户的相关服务
    管理员控制类:控制管理员的相关服务
 
 
相关文件上传到githhub截图:

 

 



任务5:完成《实验八 团队作业4:团队项目需求建模与系统设计》团队博文作业:
 
    ProcessOn建模工具学习:在此次实验中我们首次接触了Processon工具,也初步对Processon工具有了一定得了解。其实起初我们小组对于这个网络软件是抱着不是十分重视的态度,因为我们之前也做过类似的制图工作,而且在wps等电脑自带软件中也完成的不错。但之后在真正使用的过程中我们才了解到了这款网络软件的便捷之处,作为一款专业的在线作图工具,也支持多种图形的绘制,它可以在线画流程图、思维导图、U原型图、UML网络拓扑图、组织结构图等等。
 
    项目需求分析建模:这一部分我们对于之前问卷反应以及团队思考出来的用户需求进行了一点的反思,并且总结出来几点心得。

A-业务建模——描述所研究组织内部各系统(人肉系统、电脑系统……)如何协作,使得组织可以为其他组织提供有价值的服务。我们的开心农场app,并不能只是做出一些想当然的功能,而是要切实的从用户的角度出发,为他们的使用体验,和实际需求着想。

B-需求——描述为了解决组织的问题,所研究系统必须具有的表现——功能和性能。软件需求不是由涉众直接提供的,而是由需求人员综合不同涉众的利益来决定的。涉众没有资格提供需求。从需求来源来定义,需求是需求人员平衡了涉众利益的契约。

C-分析——提炼为了满足功能需求,所研究系统需要封装的核心域机制。

D-设计——为了满足质量需求和设计约束,核心域机制如何映射到选定平台上实现。

 

    软件系统设计:这一次的作业,我们小组的每个人都对项目作业的每一部分进行了深度的参与。 软件架构设计的一个核心问题是能否使用重复的架构模式,即能否达到架构级的软件重用。也就是说,能否在不同的软件系绕中使用同一架构。软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomatic paradigm).架构风格定义了一个系统家族,即一个架构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。按这种方式理解,软件架构风格定义了用于描述系统的术语表和一组指导构件系统的规则。通过对于开心农场app设计的反复思考,得到的心得和体会,在我们今后的开发道路上是很有价值的经验。

posted @ 2020-06-06 00:39  萌新入坑,求大佬带  阅读(214)  评论(1编辑  收藏  举报