项目 内容
课程班级博客链接 班级博客
这个作业要求连接 作业链接
团队名称 这是个小队
团队成员分工描述 祁英红(组长):负责安排工作,协调各个组员的工作以及代码编写
帖佼佼:主要负责文档撰写工作以及代码编写
高文利:主要负责代码设计以及主要编写工作
李华:主要负责文档撰写工作以及代码测试审查工作
团队的课程学习目标 (1)学习使用UML建模工具;
(2)掌握面向对象需求分析建模技术;
(3)理解和掌握面向对象软件系统设计原理、设计过程和技术。
这个作业在哪些方面帮助团队实现学习目标 (1)促进了团队之间的合作加深,成员之间得互相借鉴学习,互助提升;
(2)学会熟练使用ProcessOn,Visio等常用UML图形绘制工具;
(3)学会绘制UML图等;
(4)了解了软件设计模式;
(5)完成了需求建模与系统设计说明书。
团队博客链接 团队博客链接
团队项目Github仓库地址链接 Github仓库链接

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

结对方团队博客链接:https://www.cnblogs.com/dizao/p/14716734.html
结对方Github项目仓库链接:https://github.com/InTentzhou/daizao_code/tree/master
符合(1)要求的博客评论:

结合实验七评分标准,给出互评团队作业评分成绩(5分)。
互评团队作业评分成绩:135(140)

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

(1)采用用例图表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;
本系统主要是面向生态梨园门票销售管理系统,根据调研得知,生态梨园门票销售管理系统通常管理员和游客,游客主要是注册登录上去之后进行浏览、查看、预订等一些操作,管理员既负责票务管理和货物管理,也负责订单信息的管理。因此,根据生态梨园门票销售管理的真实情况,我们主要设计有管理员和游客两类权限,管理员可以对所有信息进行查看,此外,管理员具有特殊的权限是进行系统设置,主要表现为对票务、货物、以及其让他订单进行管理,其余情况下,管理员和游客具有相同的权限,可以对基本信息进行管理。用户登录后,首先是主页面,可以清晰的看到一些主要模块,比如客服中心、购物车、个人信息中心等等。

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

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

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

任务 估计所花时间(h)
任务一 0.5
任务二 2
任务三 1
任务四 10
任务五 4

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

(1)什么是C/S结构?

  • C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式,是计算机软件协同工作的一种模式。
  • C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、QQ、王者荣耀等应用程序就是C/S结构。
  • 优点:
    (1)界面和操作简单丰富。
    (2)管理信息系统具有较强的事务处理能力。
    (3)安全性能可以很容易保证,实现多层认证也不难。
    (4)响应速度快。由于客户端实现与服务器的直接相连,没有中间环节,只有一层交互,因此响应速度较快。
    (5)交互性好,对服务器压力小,安全。
  • 缺点:
    (1)适用面窄,通常用于局域网中。
    (2)客户端需要安装专用的客户端软件。
    (3)维护升级成本高,进行一次维护升级,需要所有客户端的程序进行重新安装。
    (4)对客户端的操作系统一般也会有限制。
    (5)服务器更新时需要同步更新客户端。

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

  • B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。
  • B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
  • 优点:
    (1)无需安装,客户端不需要安装有浏览器即可。
    (2)分布性特点,可以随时随地进行查询、浏览等业务处理。
    (3)业务扩展便捷,通过增加页面即可增加服务器功能。
    (4)升级维护便捷,无需升级多个客户端,升级服务器即可,就可以实现所有用户的同步更新。
    (5)共享性强特点,可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
  • 缺点:
    (1)在跨浏览器上,BS结构不尽如人意。
    (2)在速度和安全性上需要花费很多设计成本,响应速度不及C/S,随着AJAX技术的发展,相比传统B/S结构软件速度有很大提升。
    (3)用户体验不是很理想,B/S需要单独界面设计,各个浏览器厂商的对浏览器的解析的标准不同。客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。交互性差,安全性低。
B/S结构和C/S结构的区别
方面 B/S C/S
硬件环境 B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行; C/S通常是建立在专用的网络上,小范围的网络环境。
安全性 安全性较低 因为用户群相对固定,对信息的保护更强,所以C/S结构比B/S结构更安全。
维护升级难度 比较简单 维护升级相对困难

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

  • 从设计模式的角度来看,MVC模式是一种复合模式,它将多个设计模式在一种解决方案中结合起来,用来解决许多设计问题。MVC模式把用户界面交互分拆到不同的三种角色中,使应用程序被分成三个核心部件:Model(模型)、View(视图)、Control(控制器)。
  • 从全局的角度来看,MVC则表示为:M层负责业务的构建和实现、V层负责展示和进行输入输出交互、C层则负责进行整个系统的协调和控制。
  • “MVC”模式即是:“Model-View-Controller”模式。在这种模式中,通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作,实现用户的商业逻辑。
    在这种模式中,Servlet用来处理请求的事务,充当了控制器(Controller即“C”)的角色,Servlet负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。JSP页面处于表现层,也就是视图(View即“V”)的角色。JavaBean则负责数据的处理,也就是模型(Model即“M”)的角色。
    Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,JSP负责数据显示,javabean负责封装数据。 Servlet+JSP、JavaBean模式程序各个模块之间层次清晰,WEB开发推荐采用此种模式。
  • MVC架构
  • Model-View-Controller架构模式是80年代中期在Smalltalk-80 GUI(一种经典的面向对象程序设计语言)实验室发明的。
  • 根据MVC模式,一个软件应该将商务逻辑(Model)和显示(View)分开。分开有许多好处,最主要的有两个方面:
    • 1.同一的商务逻辑层(Model)可能会对应多个显示层(View),如果商务逻辑层和显示层放在一起的话,再添加一个显示层的时候就会极大的增加组件的复杂性。一个商务逻辑对着两个显示层的例子是:银行的帐户的商务逻辑层对应ATM和Internet两个显示层。
    • 2.通常情况下,每次修改显示层的时候一般并不需要修改商务逻辑层。

任务4:以任务2的成果为基础,使用Visio,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书,以回答:软件是如何实现用户需求的?文档内容要求如下:

(1) 采用适合的软件设计模式设计软件系统总体结构;

(2) 设计软件系统数据库逻辑结构;
生态梨园的数据库逻辑结构设计:
1)景点门票一售票员关系是多对一关系,将其转换为关系模型为,
景点门票(票号、门票类型、类型属性、优惠情况)
销售员(编号、姓名、密码)
2)景点门票一游客关系是多对一关系,将其转换为关系模型为:
景点门票(票号、门票类型、类型属性、优惠情况、游客信息、时间、门票信息、票价、退票时间、应退款)
游客(游客信息、游客类型)
3)景点门票一票价关系是多对一关系,将其转换为关系模型为: .
景点门票(票号、门票类型、类型属性、优惠情况)
票价(门票类型、门票属性、价格)
4)总体关系模型为:
景点门票(票号、门票类型、类型属性、优惠情况、游客信息、时间、门票信息、价格、退票时间、应退款)外键:游客信息
销售员(编号、姓名、密码)
游客(游客信息、游客类型)
票价(门票类型、门票属性、价格)
E-R图如下:

(3) 说明软件重用方案;
1)代码的重用性:
   因为在开发软件的过程当中,我们采用的软件代码都是比较简单的,所以在某种程度上来说,如果有人想在我们的代码上继续研究开发,可以继续使用我们的代码去开发,但是如果他们想用自己的代码去实现自己的软件目标,也可以采用我们软件的相关类,以及对象的重用,这些都是相对来说比较简单的,开发者可以简单的读懂代码的类以及对象,然后可以根据他们的想法去开发自己的项目。
2)项目的重用性:
   在开发项目的过程中,因为我们设计的是指定的生态梨园门票销售管理系统,所以在各项功能方面与其他系统不符,因此重用性较低,但是在类似的旅游景点的门票销售系统中可以借鉴使用,在后期的开发研究的过程当中,我们还是可以继续在这个项目的研究上进行开发,当然,一些同行要是想在我们的系统上继续进行开发,也是相对来说可以的,因为在一些功能的设计上,可能还是不太健全,但是在经过后期的修改之后,这样的情况相对来说是可以改变的,然后将系统的功能完善,应用在实际生活中。
3)项目的领域上:
   在项目的领域方面,我们的项目是根据实际生态梨园设计的系统,对实际项目进行需求分析与系统设计,为游客和商家管理员提供方便,虽然现在设计的这种门票销售管理系统的功能还不够健全,但通过我们对项目不停改进,最终让这个项目的功能越来越完善,以至于最后可以直接用于生态梨园。
(4) 设计关键类的重点服务。
本系统设计为管理员与游客两个身份的登录,关键类的重点服务如下:
(1)游客类:游客通过注册登录访问系统后,可以查看景区门票价格时间详情,进行门票预订;以及纪念品,百货餐饮的购买;儿童可购买游乐设施门票进行体验;
(2)管理员类:管理员登录系统后,管理后台数据(查询、修改、删除等),进行日、周、月的订单统计;并且进行门票、以及其他物品价格的设定;
(3)票务类:包括门票(门票类型、门票价格、门票编号、优惠情况、门票数量等),游乐设施(设施名称、设施编号、单人价格、游乐时间等),百货(百货价格、百货编号、百货数目、百货总价等),餐饮(餐饮编号、餐饮价格、餐饮数量、餐饮名称等)等。

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

  1. 满足任务1-任务4评分要点中未要求上传到团队项目仓库的材料;

  2. 记录完成《实验八 团队作业5:团队项目需求建模与系统设计(2)》各项任务实际花费的时间和分工(4分);

任务 完成所花时间(h)
任务一 0.5
任务二 2
任务三 1
任务四 8
任务五 4.5
  1. 结合实验七、实验八的学习体验,对比陈述结构化软件分析与设计、面向对象分析与设计两类软件开发技术的异同。(10分)
结构化软件分析与设计 内容
基本思想 结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。它的要点是是把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。(1)自顶向下,逐步求精:把程序看成是一个逐步演化的过程。
(2)模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。
(3)语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。
结构化分析方法的实质 实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。
结构化分析的步骤 (1)通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型
(2)去掉具体模型中非本质因素,抽象出当前系统的逻辑模型
(3)根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型
(4)完善目标系统并补充细节,写出目标系统的软件需求规格说明
(5)评审直到确认完全符合用户对软件的需求。
结构化设计的步骤 (1)评审和细化数据流图;
(2)确定数据流图的类型;
(3)把数据流图映射到软件模块结构,设计出模块结构的上层;
(4)基于数据流图逐步分解高层模块,设计中下层模块;
(5)对模块结构进行优化,得到更为合理的软件结构;
(6)描述模块接口。
结构化设计的特点 (1)面向用户,用户自始至终参与系统的分析工作;
(2)强调调查工作的重要性;
(3)对管理业务中的各种数据进行分解;
(4)采用了层次分解的系统思想;
(5)用图形工具来分析和构建新方案。
面向对象分析与设计 内容
面向对象的出发点和基本原则 尽可能的模拟人类习惯的思维方式,使开发软件的发法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是描述问题的问题空间与实现解法的解空间在结构上尽可能不一致。
面向对象技术实质 面向对象技术包括面向对象分析、面向对象设计及面向对象程序设计三部分内容。OOP是在结构化程序设计的基础。封装是整个OOP方法的基础,主要用于在数据段外围构造保护层,以限制外界变化的影响,所有的数据访问都由保护层内的过程间接处理。
面向对象方法的四个要点 (1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。
(2)把所有对象都划分成对象类,每一个对象类都定义了一组数据和一组方法,数据用于表示对象的静态属性,方法用来表示对象的状态信息。
(3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。
(4)对象彼此之间仅能通过传递消息互相联系。
面向对象的特点 (1)强调系统开发的整体性和全局性;(2)侧重于数据转换的过程而不是数据本身;
(3)系统的开发周期长;
(4)封装性;
(5)继承性;
(6)多态性;
(7)易维护性。
面向对象简历模型的方法 (1)对象模型;
(2)动态模型;
(3)功能模型。
  • 如何选择适合的开发方法
    (1)结构化方法最为成熟,对于预先制定需求的系统开发,非常有效。对于需求模糊或者随时间变化的系统开发,不太适应。
    (2)从提高程序的重用性和可维护性的角度看,面向对象方法有较好的应用前景,形式化方法对于安全性要求很高的系统,比较适用。但面向对象程序设计方法的基础仍然是结构化程序设计。
    (3)因为成本问题和技术变更,所以形式化方法在实际应用中受到限制。
    (4)SOFL方法集成了结构化方法,面向对象方法,和形式化方法于一体,
    (5)在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。
  1. 从团队分工和协作学习角度,陈述团队实施Visio建模工具学习、项目需求分析建模、软件系统设计等学习活动的心得(每项3分,合计9分)
学习活动 学习心得
Visio建模工具学习 在本次实验中,学习了UML建模工具、OOP、等,明白了软件设计的步骤,代码复用、软件重用等技术,我们在设计过程中虽然也遇到了一些小麻烦,但是通过团队成员的沟通,通过共同的大智慧解决了很多问题,顺利完成了本次的实验设计。在这次实验的开发过程分成分析和设计两大部分。分析方法和设计模式因需求的不同而多彩多样。有的方法会带来一些非常明显的优点,有的方法会带来一些不利的因素。在分析和设计的阶段都采用了UML面向对象的建模方法。使整体更加系统化,标准化,模块化。使用UML设计出来的管理系统,有很多基于业务逻辑抽象出来的类,具有广泛性和重用性。UML建模工具Visio 原来仅仅是一种画图工具,能够用来描述各种图形(从电路图到房屋结构图),也是到Visio 2000才开始引进软件分析设计功能到代码生成的全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途的工具。它跟微软的office产品的能够很好兼容,能够把图形直接复制或者内嵌到WORD的文档中,但是对于代码的生成更多是支持微软的产品如VB,VC++,MS SQL Server 等(这也是微软的传统),所以它可以说用于图形语义的描述比较方便,但是用于软件开发过程的迭代开发则有点牵强。
项目需求分析建模 由于之前情况,每个人对于分析建模的擅长领域不同,因此对于任务进行合理地划分,由李华负责用例图、祁英红负责四象限图的绘制,高文利负责UML设计,帖佼佼负责WBS设计,最后共同共同撰写软件需求规格说明书。通过本次需求分析建模过程,我们针对负责部分的不理解之处共同商讨并及时解决问题,对用户需求有了进一步的认识,也对系统功能有了进一步的明确,虽然可能在过程中存在一些不足,但是我们团队相信通过这次讨论学习,我们在未来的学习中能够做得更好。
软件系统设计 软件系统设计层面,首先大家一起进行软件系统总体结构和系统数据库逻辑结构设计,完成了软件重用方案和设计类的关键类的重点服务,最后进行了汇总。由于之前学习情况的不同,在此部分实现各成员进度不一致在该部分花费时间较多。不过还是相互合作,及时沟通,存在问题也能高效率解决,这使团队成员之间更加团结,且为之后的相关分工设计等工作积累了经验。
posted on 2021-06-08 21:56  这是个小队  阅读(204)  评论(2编辑  收藏  举报