项目 内容
课程班级博客链接 2018级卓越班
这个作业要求链接 实验八—团队作业5
团队名称 零基础619
团队成员分工描述 任务1:鑫,荣娟
任务2:亚楠,桂婷
任务3:亚楠,桂婷
任务4:鑫,荣娟
任务5:鑫,荣娟
团队的课程学习目标 学习使用UML建模工具Visio;
掌握面向对象需求分析建模技术;
理解和掌握面向对象软件系统设计原理、设计过程和技术
这个作业在哪些方面帮助团队实现学习目标 在完成任务2和任务3时学习使用了UML建模工具Visio,掌握了面向对象需求分析建模技术,掌握了面向对象软件系统设计原理、设计过程和技术
团队博客链接 零基础619团队
团队项目Github仓库地址链接 团队仓库

实验内容:

任务1:

任务要求:按团队项目互评名单,对互评方《实验七 项目需求分析建模与系统设计(1)》的项目成果进行评价。

任务完成情况:

  • 下载并阅读互评方团队项目资料:

  • 结合实验七评分标准,给出互评团队作业评分成绩为:135分。

任务2:

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

任务完成情况:

  • 文档有满足(1)的内容:

学生用例图:

教务人员用例图:

教师用例图:

  • 文档有满足(2)的内容:

功能分析的四个象限:

  • 文档有满足(3)的内容:

问题域对象模型:

  • 文档有满足(4)的内容:

项目的WBS以及各项任务所需时间:

  • 《高校教务微信公众平台需求规格说明书1.2》已上传至github:github地址

任务3:

任务要求:查阅资料,回答以下问题。

任务完成情况:

  • C/S结构:C/S结构就是客户机和服务器结构。C/S架构是一种比较早的软件架构,主要应用于局域网内,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。其中,服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server;客户端需要安装专用的客户端软件。在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架构,不过一直很流行也比较经典的是我们所要研究的两层C/S架构。

    C/S架构软件(即客户机/服务器模式)分为客户机和服务器两层:第一层是在客户机系统上结合了表示与业务逻辑,第二层是通过网络结合了数据库服务器。简单的说就是第一层是用户表示层,第二层是数据库层。客户端和服务器直接相连,这两个组成部分都承担着重要的角色,第一层的客户机并不是只有输入输出,运算等能力,它可以处理一些计算,数据存储等方面的业务逻辑事务;第二层的服务器主要承担事务逻辑的处理,本来事务很重,但是由于客户机可以分担一些逻辑事务,所以减轻了服务器的负担,使得网络流量增多。

  • C/S结构的优缺点:

    • 优点

      1、客户端和服务器直接相连

      a)点对点的模式使得更安全。
      b)可以直接操作本地文本,减少获取文本的时间和精力。
      c)由于直接相连,减少了通信流量,这对于客户来说可以节约一大笔费用。
      d)直接相连,中间没有什么阻隔或岔路,所以响应速度快。当通信量少的时候没什么感觉,但是如果通信量庞大,就不会出现拥堵的现象。

      2、客户端可以处理一些逻辑事务

      a)充分利用两者的硬件设施,避免资源的浪费。
      b)为服务器分担一些逻辑事务,可以进行数据处理和数据存储。可以处理复杂的事务流程。
      c)客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。

      3、客户端操作界面

      a)可以提高客户的视觉体验,满足客户需求。

      b)客户端操作界面可以随意排列,充分满足客户的需要,展现特点与个性。

    • 缺点

      1、客户端

      a)只能处理一些功能单一的多系统。

      b)C/S架构适用于局域网,对网速的要求比较高。

      c)由于需要安装客户端,安装部署困难,所以不易扩展。

      d)若客户端使用的系统不同,就要针对这些系统分别编写程序。

      e)客户端界面缺乏通用性,且当业务更改时就需要更改界面,重新编写。

      f)客户端需要专门的客户端程序,比较麻烦,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。

      2、服务器

      a)用户数增多会出现通信拥堵,服务器响应速度慢等情况。

      b)当服务器难当大任时,只能将其废弃,使用更强大的服务器。

      c)当客户端用户增多时,服务器难以承担重负,是名副其实的“胖”客户端。

      d)用户是通过ODBC连接到数据库的,且每个连接到数据库的用户都会保持一个ODBC连接,会一直占用中央服务器的资源,对服务器的要求很高。

      3、用户

      a)没有安装客户端的外部用户不能访问。

      b)只有安装了客户端才能访问服务器,所以用户不能随时随地的访问。

      c)用户是通过ODBC连接到数据库的,所以用户数受限,不易扩张。

      d)由于针对小范围的客户,所以不能实现真正大范围的信息共享,信息传达和发布。

  • B/S结构:B/S结构就是浏览器和服务器结构。它是WEB兴起后的一种网络结构模式,它是C/S架构的一种改进,可以说属于三层C/S架构,该模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。它与C/S结构不同,其客户端不需要安装专门的软件,只需要浏览器即可,浏览器通过Web服务器与数据库进行交互,可以在不同平台下工作;其服务端可采用高性能计算机,并安装Oracle、Sybase、Informix等大型数据库。

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

    • 优点

      1、浏览器

      a)能面对广大的用户实现信息传播共享。

      b)浏览器只处理一些简单的逻辑事务,负担小。

      c)页面的更新能实现同步,所有用户都能看到。

      d)界面设计开发简单,对程序员的要求较低,不需要大量的培训。

      e)业务扩展方便,只需要增加几个业务扩展的页面即可,不需要大量的编程。

      f)界面不需要太多的编写,比较通用,更改界面也比较简单,所以几乎不需要维护。

      g)由于Web的平台无关性,可以从一台服务器、几个用户的工作组级扩展成为拥有成上万用户的大型系统。

      2、数据库

      a)数据都集中存放在数据库服务器,所以不存在数据不一致现象。

      b)能有效地保护数据平台和管理访问权限,服务器数据库也很安全。

      c)在数据库服务器上不一定使用WINDOWS系统,选择更多,成本更少。

      d)如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。

      e)在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

      f)数据存放在数据库服务器,客户端并不存放任何业务数据或者数据库连接信息,所以数据比较安全。

      g)随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。

      3、客户端操作界面

      a)B/S建立在广域网上,所需的网速不高。

      b)外部的用户也可以对浏览器进行访问。

      c)界面人性化,通用化,不需要多少培训就能掌握。

      d)不需要安装客户端,只要能连上网,就能随时随地的浏览页面。

      e)借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。
      f)所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。

      4、成本

      a)软件重用性强,节省了大量的成本。

      b)不需要安装特殊的软件,客户端几乎零维护。

      c)开发简单,升级便捷,人员不需要太多培训,节省了大量的资金。

      d)客户端几乎不需要维护,只要盯紧服务器就可以了,所以成本较小。

      e)一般只有初期一次性投入成本,有利于软件项目控制和避免IT黑洞。

      f)建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备等,成本较小。

    • 缺点

      1、客户端

      a)面通用化,不突出个性。

      b)页面需要不断地动态刷新,尤其是用户增多,网速慢得情况,很费时。

      c)由于不需要安装客户端,客户端易扩展,还有就是外部用户也可以访问,所以B/S面对大量的不可知用户。

      2、服务器

      a)用户增多时,服务器响应速度慢。

      b)功能虽然多样化,但是不能专门化,不能实现复杂的功能。

      c)服务器承担着重要的责任,数据负荷较重。一旦发生服务器“崩溃”等问题,后果不堪设想。

  • C/S与B/S的区别:

    1.硬件环境不同:
    C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务;
    B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行 。
    2.对安全要求不同
    C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息;
    B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群。
    3.对程序架构不同
    C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑;
    B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟。
    4.软件重用不同
    C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好;
    B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子 。
    5.系统维护不同
    系统维护是软件生存周期中开销较大,而且很重要的一部分。
    C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级较难。可能是因为需要再做一个全新的系统;
    B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级。
    6.处理问题不同
    C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统;
    B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的,与操作系统平台关系最小。
    7.用户接口不同
    C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高;
    B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本。
    8.信息流不同
    C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低;
    B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心。

  • MVC设计模式:

    MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

    MVC结构提供了一种按功能对各种对象进行分割的方法(这些对象是用来维护和表现数据的),其目的是为了将各对象间的耦合程度减至最小。MVC结构本来是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。

    根据MVC模式,一个软件应该将商务逻辑(Model)和显示(View)分开。分开有许多好处,最主要的有两个方面:
    1、同一的商务逻辑层(Model)可能会对应多个显示层(View),如果商务逻辑层和显示层放在一起的话,再添加一个显示层的时候就会极大的增加组件的复杂性。一个商务逻辑对着两个显示层的例子是:银行的帐户的商务逻辑层对应ATM和Internet两个显示层。
    2、通常情况下,每次修改显示层的时候一般并不需要修改商务逻辑层。

    • 优点

      1.低耦合性

      2.高重用性和可适用性

      3.较低的生命周期成本

      4.快速的部署

      5.可维护性

      6.有利于软件工程化管理

任务4:

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

任务完成情况:

  • 使用Visio,应用面向对象设计(OOD)方法所得到的类图:

  • 文档有满足(1)的内容:

  • 文档有满足(2)的内容:

  • 文档有满足(3)的内容:

  • 文档有满足(4)的内容:

  • 《高校教务微信公众平台设计说明书1.2》已上传至github:github地址

任务5:

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

任务完成情况:

  • 博文已完成。

附件:各项任务实际花费的时间和分工

任务要求 时间(h) 分工
任务1 1 荣娟,鑫
任务2 30 亚楠,桂婷
任务3 2 亚楠,桂婷
任务4 30 荣娟,鑫
任务5 2 荣娟,鑫

总结:

总结1:结合实验七、实验八的学习体验,对比陈述结构化软件分析与设计、面向对象分析与设计两类软件开发技术的异同。

  • 不同点:(1)处理问题的处发现不同。结构化方法是强调过程抽象化和模块化,以过程为中心构造或处理客观世界问题,它是一种面向过程的开发方法,是一种典型的面向数据流分析设计方法;面向对象方法强调的是把问题域的要领直接映射到对象及对象之间的接口上,符合人们的通常思维。(2)处理问题的基本单位不同。结构化方法处理问题的基本单位是能清晰表达过程的模块;面向对象方法处理问题的基本单位是对象的集合类。(3)数据处理程序和控制程序方式不同。结构化方法是直接通过程序来处理数据,处理完毕后就可显示出结果,在控制程序方式上是按照设计调用或返回程序不能自由导航,各模块程序之间存在着控制与被控制的关系;面向对象方法将数据与对应代码封装成一个整体,原则上其它对象不能直接修改其数据,即对象的修改只能由自身的成员函数完成,控制程序方式上是通过“时间驱动”来激活和运行程序(4)分析设计间的转换方式不同。结构化方法中的分析设计按照规定的规则进行转换,分析设计之间实现的是一种有缝连接;面向对象方法从分析到设计采用的是一致性的模型表示,使得从分析到设计之间不存在转换,只需要做必要的修改和调整。

  • 相同点:(1)两者在分解和抽象原则上一致。分解即化整为零,将问题剥茧抽丝,层层细化;抽象则是通过分解体现,在逐层分解上,上层是下层的抽象,下层是上层的解释和体现,运用抽象可以不用一次考虑太多细节,而逐渐的有计划的有层次的了解更多的细节。结构化分析设计和面向对象分析设计在分解和抽象原则上完全一致(2)局部化和重用性设计上一致。在结构化方法中,局部化主要体现在代码与数据的分隔化,即程序各部分除必要的信息交流外彼此相互隔离而不互相影响;而面向对象方法则采用数据、代码的封装,即将数据、代码和操作方法封装成一个“黑暗的”整体对象。提高了程序的可靠性和安全性,同时增强了系统的可维护性。也就是说面向对象方法比结构化方法的应用更加的深入、更加的彻底。

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

  • 实施Visio建模工具学习:我们先是下载安装了2010版本的Microsoft Visio,通过网上学习怎样使用Visio,发现Visio的使用方法并不是很难,Visio是一款可以绘制流程图与示意图的软件,我们本次主要使用的是UML模型图。整体上来说,实施Visio建模工具学习的过程还是比较容易的。

  • 项目需求分析建模:在项目需求分析建模时,只需要根据文档对项目需求进行分析建模,建模的过程主要有业务建模、功能建模、结构建模、交互建模和状态建模。模型关注的是问题域或业务域内的可见需求,抽象的级别相对高一些,不需要陷入细节。

  • 软件系统设计:在进行软件系统设计的过程中,包括了系统功能、设计方针以及方法,产生理想系统并作出草案,然后我们通过收集信息对草案作出修正产生了设计方案,再将系统分为若干子系统,最后进行总系统和子系统的详细设计。整个过程相对较难,我们团队经过学习与讨论后,团队合作完成此过程。

  • 小结:本次作业还是有一定的难度,特别是任务2和任务4耗时很多,最开始还不知道OOA和OOD方法,后来上网查阅资料学习后完成此次作业,完成本次作业,离不开团队内每一位成员的努力,有了团队的合作才顺利的完成本次作业,作业中可能还有一些不足的地方需要修改。在未来的学习过程,相信我们团队会做的更好。

Copyright © 2024 零基础619
Powered by .NET 8.0 on Kubernetes