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

项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12976163.html
团队名称 大眼呆萌
团队成员分工描述 温腾虎:PM
司绍斌:系统开发
常梦娇:测试
廖堃焱:文档
团队的课程学习目标 学习使用UML建模工具
掌握面向对象需求分析建模技术
理解和掌握面向对象软件系统设计原理、设计过程和技术
这个作业在哪些方面帮助团队实现学习目标 进一步深入学习软件需求建模技术
向团队其他同学学习提升自己
团队博客链接 https://www.cnblogs.com/dayandaimeng/p/12938974.html
团队项目Github仓库地址链接 https://github.com/dayandaimengdui/p2

任务一:以团队协作学习方式掌握在线作图工具ProcessOn的软件操作方法。

ProcessOn是一个在线作图工具的聚合平台,支持创作流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等,我们通过它可以在线画流程图、思维导图、UI原型图、UML、网络拓扑图、组织结构图等等,实现免费在线作图、实时协作等功能。 - 我们任务二和任务四的建模作图均采用该软件,对使用该软件制图有了较为深刻的理解
   1)跨平台:在线制图工具自带的特性,打破时间、地点、系统之间的壁垒,使用十分方便。
   2)操作简单:和visio操作基本相同,学习成本很低,有基础的软件使用经验即可。
   3)多人协作:很适合像我们一样的团队小组,每个人都能写作办公。
   4)在线存储:不需要随身带存储工具,直接登录就可以找到之前所做的工作。

任务2:整理实验七作业成果

(1)采用用例图(或者DFD图)建模表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;
(2)参考《构建之法》8.5节功能的定位和优先级,给出功能分析的四个象限;
(3)选择适当的UML模型,建立问题域对象模型;
(4)编制项目的WBS
(以上项目均在文档中有介绍,现已上传至GitHub中,请查阅。)


(5)估计各项任务所需时间

任务 时间
系统详细设计 4天
代码实现 10天
系统测试 2天

任务3:查阅资料,回答以下问题:

(1)何谓软件设计模式?

  • 软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
    设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。

  • 设计模式六大原则

    • 1)单一职责原则
    • 2)里氏替换原则
    • 3)依赖倒置原则
    • 4)接口隔离原则
    • 5)迪米特法则
    • 6)开闭原则
  • 四个要素

    1)模式名称

一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。

  
    2)问题

描述问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。

  
    3)解决方案

描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。

  
    4)效果

描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。

(2)什么是C/S?

  • C/S模式就是指客户端/服务器模式,是计算机软件协同工作的一种模式。全称为Client/Server模式。其中Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。

  • C/S模式有以下特点:

    • 1)C/S模式将应用与服务分离,系统具有稳定性和灵活性。
    • 2)C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 。
    • 3)由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快。
    • 4)在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂。
  • C/S结构的优点
        能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,客户端响应速度快。

    • 1)应用服务器运行数据负荷较轻。
    • 2)数据的储存管理功能较为透明。
  • 传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。

  • C/S 结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。

(3)什么是B/S结构?

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

    随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

  • 第一层是浏览器,即客户端,只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,所以界面设计得比较简单,通用。
  • 第二层是WEB服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。
  • 第三层是数据库服务器,他扮演着重要的角色,因为它存放着大量的数据。当数据库服务器收到了WEB服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给WEB服务器,接下来,WEB服务器将收到的数据结果转换为HTML文本形式发送给浏览器,也就是我们打开浏览器看到的界面。

(4)什么是MVC设计模式?

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

任务4:软件是如何实现用户需求的?

(1) 采用适合的软件设计模式设计软件系统总体结构;
(2) 设计软件系统数据库逻辑结构;
(3) 说明软件重用方案;
(4) 设计关键类的重点服务。
(以上项目均在文档中有介绍,现已上传至GitHub中,请查阅。)


任务5:完成各项任务实际花费的时间和分工

项目 时长 分工
任务一 2h 小组成员一起
任务二 10h 廖堃焱、温腾虎
任务三 2h 小组成员一起
任务四 10h 常梦娇、司绍斌
任务五 2h 廖堃焱、温腾虎

总结:从团队分工和协作学习角度,陈述团队实施ProcessOn建模工具学习、项目需求分析建模、软件系统设计等学习活动的心得

  • 司绍斌:通过这次实验,我理解了软件需求分析的过程,掌握了软件设计的步骤。掌握了在线绘图工具,学会了如何画流程图,E-R图以及逻辑结构的总体设计。明白了软件需求分析和软件设计在软件开发全过程中的重要作用,这让以后得开发更加便捷,大大提高了工作效率,让我们团结更加团结,分工明确,为以后的系统开发打下了坚实的基础。
  • 常梦娇:此次实验是到目前为止对自己团队的项目分析的最清晰的一次实验,需要团队成员之间的高度配合。组内分工明确,各自完成自己的任务后再进行交流沟通。通过这次实验,我对我们团队的项目系统结构分析的更加透彻了,发现了其中的不足并已得到改正,有关数据库的逻辑设计也进行了更进一步的优化,一些以前忽略的点,再进行从ER图向逻辑关系的转换中都得到了改善,总体来说此次作业我们组内配合默契,完成的不错,为以后的开发做好了铺垫。
  • 廖堃焱:经过本次团队作业的学习,我进一步了解了团队项目需求分析建模的相关内容。本次实验是针对项目整体的把握,在对团队项目有充分的认识和把控的基础上运用课堂上所学到的知识,结合制图技术来对项目进行建模研究,更加系统也更加明确。在建模的同时发现了之前的设计漏洞,也在不断更正和改进。此次的团队作业需要很强的逻辑思考以及整合能力,同时也考验团队的协作能力。总的来说分工明确各司其职,协同完成了此次的项目工程。
  • 温腾虎:这次试验processon的学习使我发现了一个好的软件,每个人不会因为自己有过了解而不认真,都在认真的体验,并且在这次的建模设计中使用。而这次的需求建模和系统设计让我对我们的项目“西师宿管”有了前所未有的清晰认知,并且规划的详细得当,在Leangoo的帮助下,我对项目的进度把控有了清晰的把控,希望在接下来的实践中能顺利完成,奥里给!
posted @ 2020-06-05 15:22  大眼呆萌队  阅读(285)  评论(1编辑  收藏  举报