202210-团队9527 实验八 团队作业5:团队项目需求建模与系统设计(2)

项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2019nwnucs
这个作业要求链接 https://edu.cnblogs.com/campus/xbsf/2019nwnucs/homework/12662
团队名称 团队9527
团队成员分工描述 任务1:李健康、李治江; 任务2 :梁春云; 任务3: 梁春云、李治江; 任务4:李健康;
团队的课程学习目标 (1)学习使用UML建模工具Visio;(2)掌握面向对象需求分析建模技术;(3)理解和掌握面向对象软件系统设计原理、设计过程和技术。
在实现学习目标上的帮助 了解学会实验建模工具visio,理解了面向对象软件系统的设计原理
团队博客链接 https://www.cnblogs.com/tuandui01/
团队gitub链接 https://github.com/liangchunyun/01

任务一 使用Visio,应用面向对象分析方法(OOA),完善团队项目的《软件需求规格说明书》,并将该文档上传到团队项目Github仓库。

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


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


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


  • (4)完善项目的WBS,估计各项任务所需时间


    各项任务所需时间

    任务 所需时间(min)
    项目管理 300
    市场调研 400
    需求分析 120
    系统定义 90
    系统实现 600
    系统运行 80
  • (5)系统需求规格说明书


上传到gitub

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

    1. C/S结构
    • (1)C/S结构含义:C/S架构是客户端/服务器体系结构,其中客户端依靠服务器来获取资源,cs架构通过提供查询响应来减少网络流量,它具有三种类型结构分别是一层架构、两层架构和三层架构。C/S架构是当今网络开发架构的一大主流技术,由美国Borland公司最早研发。


    • (2)C/S架构的基本特征:客户端进程包含特定于解决方案的逻辑,并提供用户与应用程序系统其余部分之间的接口。服务器进程充当管理共享资源(如数据库,打印机,调制解调器或高性能处理器)的软件引擎;前端任务和后端任务对计算资源有着根本不同的要求,例如处理器速度,内存,磁盘速度和容量以及输入/ 输出设备;客户端和服务器的硬件平台和操作系统通常不相同。客户端和服务器进程通过一组明确定义的标准应用程序接口(API)和RPC进行通信;C/S架构的一个重要特征是可扩展性,它们可以水平或垂直缩放。水平扩展意味着添加或删除客户端,工作站只会对性能产生轻微影响。垂直扩展意味着迁移到更大更快的服务器计算机或多服务器中。

    • (3)C/S架构的类型
      一层架构:在此类型C/S架构设置中,用户界面,营销逻辑和数据逻辑存在于同一系统中。但是由于数据差异导致难以管理。例MP3播放器,MS Office都属于单层应用程序。
      两层架构:在这种类型中,用户界面存储在客户端机上,数据库存储在服务器上。数据库逻辑和业务逻辑在客户端或服务器上归档,但需要进行维护。如果在客户端收集业务逻辑和数据逻辑,则将其命名为胖客户端瘦服务器体系结构。如果在服务器上处理业务逻辑和数据逻辑,则称为瘦客户端胖服务器体系结构。在双层体系结构中,客户端和服务器必须直接合并。如果客户端向服务器提供输入,则不应该有任何中间件。这样做是为了快速获得结果并避免不同客户之间的混淆。
      三层架构:在三层架构中,需要使用到额外的中间件,这意味着客户端请求需要通过该中间层进入服务器,服务器的响应首先由中间件接收,然后再接收到客户端。中间件存储所有业务逻辑和数据通道逻辑,中间件提高了灵活性并提供了最佳性能。三层结构被分成三个部分,即表示层(客户层),应用层(业务层)和数据库层(数据层)。客户端系统管理表示层,应用程序服务器负责应用程序层,服务器系统负责监视数据库层。

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

    • (2)架构:随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
      第一层是浏览器,即客户端,只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,所以界面设计得比较简单,通用。
      第二层是WEB服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。
      第三层 是数据库服务器,他扮演着重要的角色,因为它存放着大量的数据。当数据库服务器收到了WEB服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给WEB服务器,接下来,WEB服务器将收到的数据结果转换为HTML文本形式发送给浏览器,也就是我们打开浏览器看到的界面。

    • (3)工作原理:B/S架构采取浏览器请求,服务器响应的工作模式。用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己Internet在 B/S 模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由Web Server完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。


    • (4)C/S和B/S不同点

      C/S B/S
      硬件环境 专用网络 广域网
      安全需求 面向相对固定的用户群信息安全的控制能力强 面向不可知的用户群对安全的控制能力相对较弱
      程序架构 更加注重流程系统运行速度可较少考虑 对安全以及访问速度都要多重的考虑,是发展趋势
      软件重用
      系统维护 升级难 开销小,方便升级
      处理问题 集中 分散
      用户接口 与操作系统关系密切 跨平台,与浏览器相关
      信息流 交互性低 交互密集
    1. MVC设计模式?
    • (1)MVC设计模式简介:MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。

    • (2) MVC编程模式:M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。V即View视图是指用户看到并与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操作的方式。C即controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

    • (3) 框架内容:MVC指MVC模式的某种框架,它强制性地使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式。


      视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和像XHTML,XML/XSL,WML等一些标识语言和Web services.MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
      模型:模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 [6]
      控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

任务三 以任务1的成果为基础,使用Visio,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书,

  • 文档内容要求如下:
    (1)采用适合的模式设计软件系统总体结构;
    (2)设计软件系统数据库逻辑结构;
    (3)说明软件重用方案;
    (4)设计关键类的重点服务。

上传截图


任务4:完成《实验八 团队作业5:团队项目需求建模与系统设计(2)》团队博文作业:

    1. 各项任务完成时间
    任务内容 所用时间(min) 主要负责人
    任务1 300 李健康、李治江
    任务2 80 梁春云
    任务3 400 梁春云、李治江
    任务4 100 李健康
  • 2.对比陈述结构化软件分析与设计、面向对象分析与设计两类软件开发技术的异同。
    结构化软件分析与设计:结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。
    基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
    面向对象分析与设计:面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。
    基本思想:尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,也就是使描述问题的问题空间与实现解法的求解空间在结构上尽可能一致。
    两类软件开发技术的异同
    不同: 1、基本单位不同结构化方法的基本单位是模块。面向对象方法的基本单位是对象。2、分析方法不同结构化分析方法是一种面向数据流而基于功能分解的分析方法,在该阶段主要通过采用数据流程图、编制数据字典等工具,描述边界和数据处理过程的关系,力求寻找功能及功能之间的说明。面向对象分析是把对问题域和系统的认识理解,正确地抽象为规范的对象(包括类、继承层次)和消息传递联系,最终建立起问题域的简洁、精确、可理解的面向对象模型,为后续的面向对象设计和面向对象编程提供指导。面向对象分析通常建立三种模型:对象模型、动态模型、功能模型。其中,对象模型描述了系统的静态结构,确定类的名称和类间的关系;动态模型表示瞬时的、行为化的系统的“控制”性质,规定了对象模型中的对象的合法变化序列;功能模型表明了系统中数据之间的依赖关系,以及有关数据的处理功能。
    相同:1、结构化开发方法和面向对象的方法都是软件系统的开发方法。2、结构化开发方法和面向对象的方法在运用分解和抽象原则上的要求是完全一致的。分解即化整为零,将问题剥茧抽丝,层层消化;抽象则是通过分解体现,在逐层分解时,上层是下层的抽象,下层是上层的具体解释和体现,运用抽象可以不用一次考虑太多细节,而逐渐的有计划有层次的了解更多细节。3、局部化和重用性设计上的一致。局部化是软件开发中的一个重要原则,即不希望软件一部分过多地涉及或影响软件的其它部分。在结构化方法中,局部化主要体现在代码与数据的分隔化,即程序各部分除必要的信息交流外,彼此相互隔离而互不影响,而面向对象方法则采用数据、代码的封装,即将数据、代码和操作方法封装成一个类似“黑箱”的整体对象,提高了程序的可靠性和安全性,同时增强了系统的可维护性。也就是说面向对象方法比结构化方法的运用更加深入更彻底。

  • 3.本次作业的心得与体会:

模块 心得与体会
Visio建模工具学习 本次实验运用了visio绘图软件,我们在网上下载并学习了如何使用Visio。Visio 原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到Visio 2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具。它跟微软的office产品的能够很好兼容,能够把图形直接复制或者内嵌到WORD的文档中。我们组内进行了较长时间的学习与讨论,明白了这个软件的用法之后,顺利的完成了实验目标。
项目需求分析建模 这里所做的是对之前学习成果的一个梳理与完善,通过建模更直观地呈现出各方对项目的需求。因为之前准备工作做的比较充分,所以在项目需求分析建模中没有遇到太大的麻烦,因此这一项任务比较快速地就完成了。
软件系统设计 在软件系统设计这部分内容中,我们通过亲自操作体验了如何使用软件设计模式设计软件系统总体结构,设计软件系统数据库逻辑结构,以及掌握了软件设计模式等概念,在协作过程中,出现问题及时交流,互帮互助,深切体验到了合理分配任务对于团队的重要性,且为之后的相关分工设计等工作积累了经验。
posted @ 2022-06-13 16:24  团队9527  阅读(32)  评论(1编辑  收藏  举报