实验八 团队作业5:团队项目需求建模与系统设计(2)
项目 | 内容 |
---|---|
班级博客 | 2019级卓越工程师班 |
作业要求 | 实验八 团队作业5:团队项目需求建模与系统设计(2) |
团队名称 | 奋起上进组 |
团队成员分工 | 曹永兴:设计用例图,任务二,任务四 李斌:完善软件需求规格说明书,任务二 尚洁:完善软件系统设计说明书,任务四 张蓉星:系统总体结构,数据库逻辑结构,任务四 |
课程学习目标 | (1)学习使用UML建模工具Visio (2)掌握面向对象需求分析建模技术 (3)理解和掌握面向对象软件系统设计原理、设计过程和技术。 |
学习目标实现 | (1)通过学习Visio工具,通过该工具设计用例图表示项目功能需求,便于项目开发 (2)通过了解C/S结构、是B/S结构、以及MVC设计模式,了解软件系统的结构以及快那个价结构 (3)通过撰写团队项目软件系统设计说明书,对课程知识加深理解,为项目开发做准备 |
团队博客链接 | 奋起上进组 |
团队仓库 | 仓库 |
任务1
一、题目:
使用Visio,应用面向对象分析方法(OOA),完善团队项目的《软件需求规格说明书》,并将该文档上传到团队项目Github仓库。
二、要求:
(1)设计用例图表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;
(2)参考《构建之法—现代软件工程》8.5节功能的定位和优先级,给出功能分析的四个象限;
(3)选择适当的UML模型,建立问题域对象模型;
(4)完善项目的WBS,估计各项任务所需时间
三、visio截图:
四、用户用例图:
五、管理员用例图:
六、参考《构建之法—现代软件工程》8.5节功能的定位和优先级,给出功能分析的四个象限:
功能 | 说明 |
---|---|
杀手功能 (Core) | 数据管理、面向对象; |
外围功能(Context) | 资源上传、社区、资源推荐、资源审核; |
必要需求 (Mission Critial) | 系统稳定、界面简洁、资源丰富; |
辅助需求 (Enabliing) | 及时反馈; |
七、选择适当的UML模型,建立问题域对象模型;
1、定义
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
2、UML系统开发中有三个主要的模型:
- 功能模型:从用户的角度展示系统的功能,包括用例图。
- 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。
- 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。
3、UML由模型元素(Model Element)、图(Diagram)、视图(View)和通用机制(General Mechanism)等几个部分组成。
4、UML主要由5类图来定义:
- 用例图:从用户的角度描述系统功能,并指出各功能;
- 静态图:类图、对象图和包图;
- 行为图:活动图、状态图,描述系统的状态模型;
- 交互图:顺序图、合作图,描述对象间的交互关系;
- 实现图:如配置图,定义系统中软硬件的物理结构体系
5、系统类图
八、完善项目的WBS,估计各项任务所需时间
九、《软件需求规格说明书1.2》
十、《软件需求规格说明书》上传截图
任务2
一、题目:查阅资料,回答以下问题
(1)什么是C/S结构?
C是英文单词“Client”的首字母,即客户端的意思;S是英文单词“Server”的首字母,即服务器的意思;C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。
C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。
C/S 模式的优点
- 由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。
- 操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。
- C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。
C/S 模式的缺点
- 需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
- 兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。
- 开发成本较高,需要具有一定专业水准的技术人员才能完成。
(2)什么是B/S结构?
B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。
B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。
B/S结构的优点
- 具有分布性特点,可以随时随地进行查询、浏览等业务处理。
- 业务扩展简单方便,通过增加网页即可增加服务器功能。
- 维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
- 开发简单,共享性强
B/S 模式的缺点
- 个性化特点明显降低,无法实现具有个性化的功能要求。
- 操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
- 页面动态刷新,响应速度明显降低。
- 无法实现分页显示,给数据库访问造成较大的压力。
- 功能弱化,难以实现传统模式下的特殊功能要求。
(3)什么是MVC设计模式?
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
Model对象:负责存储数据以及定义如何操作这些数据。
View对象:负责展示而且允许用户编辑来自应用程序的Model对象,View对象用来构建用户界面,与用户交互。
Controller对象:是Model对象与View对象的中间人,负责传递数据,监听各种事件,管理其他对象的生命周期等。
MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式
- Model:常用javabean去实现,通过各种类来对数据库的数据进行获取,并封装在对象当中。
- View:常用JSP来实现,通过可直接观察的JSP页面来展示我们从数据库中获取的数据。
- Controller:常用servlet来实现,通过servlet来获取经过javabean包装过的对象(已存入数据库中的数据),然后再发送数据传输到JSP界面。
任务3:
一、题目:
以任务2的成果为基础,使用Visio,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书,以回答:软件是如何实现用户需求的?
二、要求:
(1)采用适合的模式设计软件系统总体结构;
采用MVC软件设计模式
(2)设计软件系统数据库逻辑结构;
(3)说明软件重用方案;
- 知识重用方案:学习过的知识可以得到充分利用,比如数据库,JAVAEE,WEB前端技术等。对于我们软件需求分析以及后期软件开发都有很好的作用。
- 方法和标准的重用方案:采用面向对象的方法,对于标准的重用,我们采用国家规定的软件开发规范。整体遵守代码规范,对每个人的编码都进行规范化,使得后期维护方便快捷,代码整体结构清晰。定义通用的接口以及方法,使用过程中直接调用即可。
- 软件成分的重用方案:在后期编码的过程中,使用调用库函数,实现代码重用,可以大大提高代码的效率。对于编写的源代码、用户界面的设计、数据等都可以重用,比如源代码的编写中,所要用到的一些前端框架,我们就可以结合自身本系统的需求进行分析,然后进行框架整合,这样就减少了我们的编码工作量,有助于加快项目进度。在UI界面中,可以重用之前的原型设计中设计好的界面,对应进行设计,因为已经对原型进行了调研和试用,所以重用原型设计来设计界面,可以保证我们最后研发出来的产品是满足用户审美的,是符合用户需求的。对于数据重用,比如数据库中表的设计,我们可以对逻辑分析中的E-R图进行加工,根据E-R图进行建表等工作,根据逻辑分析设计数据库。
- 类构件实现软件重用方案设计:为了提高重用的效果,关键是设计一个合理的、具有一定深度的类构件继承层次结构,这样每个子类在继承父类的属性和服务的基础上,只需要加入少量新属性和新服务,这不仅降低了每个类构件的接口复杂度,表现出一个清晰的进化过程,提高了每个子类的可理解性,而且为软件开发人员提供了更多可重用的类构件。
(4)设计关键类的重点服务。
软件重用方案主要是在源代码级,通过类的继承、调用来实现。其实可重用 的范围是很大的,如设计的重用,测试用列的重用,可运行的代码的重用等。将 来会扩大重用的粒度,在框架基础上,进一步根据我们项目本身的软硬件环境定 制出一个适用于我们系统的框架,将可以极大地提高软件的开发和维护的效率。
在本次设计中,我们的系统主要是用户模块;首先创建一个类,用于用户的注册,随后创建另一个类,作为登录界面。用户界面主要有两个功能,发现优秀文章界面、资源上传及回答问题界面、消息界面和用户个人信息界面。页面均在一个基础的框架增加内容,编写时首先调用框架,进行重用。控制器负责调用各项功能,在进行操作时,均需对其进行重用。
三、《软件系统设计说明书1.2》
四、《软件系统设计说明书1.2》上传截图
任务四
一、PSP项目计划表
任务内容 | 计划完成需要时间(min) | 实际完成需要时间(min) |
---|---|---|
计划 | 30 | 35 |
估计这个任务需要多少时间,并规划大致工作步骤 | 470 | 550 |
任务一 | 110 | 150 |
熟悉Visio的操作 | 50 | 60 |
学习《构建之法—现代软件工程》8.5节 | 30 | 40 |
小组讨论 | 30 | 50 |
任务二 | 60 | 50 |
任务三 | 180 | 200 |
小组讨论 | 60 | 50 |
编制《软件设计说明书1.2》 | 120 | 150 |
任务四 | 120 | 150 |
编制软件系统设计说明书 | 120 | 150 |
二、总结
任务部分 | 学习心得 |
---|---|
学习使用Visio,并完善软件需求规格说明书 | 通过本次实验,我们基本掌握了Visio的具体操作方法,由于Visio是Office软件系列中负责绘制流程图和示意图的软件,所以通过查找资料学习后很容易上手,通过设计用例图我们对项目的功能需求进一步的加深的认识,通过资料学习对功能分析的四个象限也比较明确。另外,我们也了解都UML统一建模语言是用来对软件密集系统进行可视化建模的一种语言,用UML建立的软件系统模型可以采用多种面向对象开发语言进行实现,作为软件开发的主要方法,面向对象方法有其重要作用。 |
了解C/S,B/S,MVC | 通过该任务,我们了解到,网络上的软件系统大致可以分为C/S结构和B/S结构,也明确在小型系统中使用C/S结构,B/S架构是C/S架构改进而来,在了解架构的前提下,才能有更好的软件项目规划。在了解了MVC设计模式后,团队成员经过交流学习明确了MVC的作用,也明确我们选择MVC设计模式对我们的软件项目进行设计。 |
撰写团队项目软件系统设计说明书 | 在前两个任务完成的基础上,我们通过交流分析完善了项目软件系统设计说明书,通过MVC软件设计模式对软件项目的总体结构再次进行了分析,采用E-R图对数据库的逻辑结构进行了设计,另外,大致了解了软件的重用方案,对关键类的重点服务内容也进行明确讨论。 |
项目总结 | 通过本次实验,我们团队进步了很多,大家各自负责的部分完成得很及时。另外,理论方面,我们明确了面向对象方式是软件设计中的一个重要方法,B/S结构以及C/S架构之间的联系与区别,另外通过讨论也得出了MVC的优势,并计划按照MVC框架模式设计我们团队的软件项目。同时,在团队交流合作的过程中,相信每位成员也提升了自己的表达和交流能力,在讨论中学习确实是很有效的学习方法。 |