实验八 团队作业5:团队作业5:团队项目需求建模与系统设计(2)
项目 | 内容 |
---|---|
课程班级博客链接 | 班级博客 |
这个作业要求链接 | 作业要求 |
团队名称 | 你说什么都队 |
团队成员分工描述 | 201871020225-牟星源: 进行软件系统说明书的撰写及其他 201871010135-张玉晶:博客的撰写及其他; 201871010105-曹玉中:团队项目的需求规格说明书的撰写及其他 |
团队的课程学习目标 | (1)学习使用UML建模工具Visio; (2)掌握面向对象需求分析建模技术; (3)理解和掌握面向对象软件系统设计原理、设计过程和技术。 |
这个作业在哪些方面帮助团队实现学习目标 | 1、建模工具的推荐visio 2、使用面向对象的方法对需求规格说明书和软件系统设计说明书进行修改 3、用例图、UML模型等的作业提示 |
团队博客链接 | 团队博客 |
团队项目Github仓库地址链接 | Github仓库链接 |
任务1:对互评方《实验六 项目需求分析与原型设计》的项目成果进行评价,下载并阅读互评方团队项目资料。
- 结对方博客链接
- 结对方github仓库地址
- 对结对方的博客评价:(已完成)
任务2:使用Visio,应用面向对象分析方法(OOA),完善团队项目的《软件需求规格说明书》,并将该文档上传到团队项目Github仓库。
(1)采用用例图表示项目功能需求,模型使用规范一致的图形符号和文字描述内容;
(2)参考《构建之法—现代软件工程》8.5节功能的定位和优先级,给出功能分析的四个象限;
-
第一象限(杀手功能,必要需求):信息资源真实可靠、实时更新,咨询功能完善,房源、学长(姐)信息的严格筛查;
-
第二象限(外围功能,必要需求):系统界面逼真且美观,功能健全实用。
-
第三象限(外围功能,辅助需求):用户进入软件系统可以直接对系统进行操作。
-
第四象限(杀手功能,辅助需求):用户之间经验交流,订单统计功能完善。
(3)选择适当的UML模型,建立问题域对象模型;
(4)完善项目的WBS,估计各项任务所需时间模块 | 估计时间 (h) |
---|---|
用户模块 | 30 |
专业人员分析模块 | 10 |
管理员模块 | 15 |
任务3:查阅资料,回答以下问题:
(1)什么是C/S结构?
- C/S(Client/Server)结构,即 “客户机/服务器” 结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构。Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。
优点:
- 应用服务器运行数据负荷较轻,
- 数据的储存管理功能较为透明.
缺点:
- 客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
- 对客户端的操作系统一般也会有限制。
- C/S架构的劣势还有高昂的维护成本且投资大
(2)什么是B/S结构?
- B/S 即 Browser/Server,浏览器/服务器模式,是WEB兴起后的一种网络结构模式。该模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。它与C/S结构不同,其客户端不需要安装专门的软件,只需要浏览器即可,浏览器通过Web服务器与数据库进行交互,可以在不同平台下工作。
优点:
- 1、客户端无需安装,有Web浏览器即可。
- 2、BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
- 3、BS架构无需升级多个客户端,升级服务器即可。
缺点:
- 1、表现要达到CS程序的程度需要花费不少精力。
- 2、在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
- 3、客户端服务器端的交互是请求-响应模式,通常需要刷新页面。
(3)什么是MVC设计模式?
- MVC是Model,View,Controller的缩写,MVC包括三类对象。Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。MVC结构本来是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的,模型-视图-控制器(MVC)的具体解释如下:
- 1、模型(Model) 模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑;
- 2、视图(View) 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面;
- 3、控制器(controller) 控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。
任务4:以任务2的成果为基础,使用Visio,应用面向对象设计(OOD)方法,撰写团队项目软件系统设计说明书。
1) 我们的系统使用的是C/S架构
2) 数据库逻辑表的E-R图
各项任务的分工:
任务 | 时间(min) |
---|---|
任务1 | 30 |
任务2 | 130 |
任务3 | 25 |
任务4 | 100 |
任务5 | 120 |
提交github仓库截图如下:
结构化软件分析与设计、面向对象分析与设计两类软件开发技术的异同。
相同点:
1、 分解和抽象是软件开发中控制问题复杂性的重要原则,二者在分解和抽象原则上一致。
- 分解即化整为零,将问题剥茧抽丝,层层细化;抽象则是通过分解体现,在逐层分解是,上层是下层的抽象,下层是上层的具体解释和体现,运用抽象可以不用一次考虑太对细节,而逐渐的有计划有层次的了解更多的细节。而面向对象方法与结构化方法在运用分解和抽象原则上的要求是完全一致的。
2、 局部化和重用性设计上的一致局部化是软件开发中的一个重要的原则。
- 既不希望软件一部分过多的涉及或影响软件的其它部分。在结构化方法中,局部化主要体现在代码与数据的分隔化,即程序各部分除必要的信息交流外彼此相互隔离而互不影响;而面向对象方法则采用数据、代码的封装,即将数据、代码和操作方法封装成一个类似“黑箱”的整体对象,提高了程序的可靠性和安全性,同时增强了系统的可维护性。也就是说面向对象方法比结构化方法的运用更加的深入更加的彻底
不同点:
结构化软件分析与设计 | 面向对象分析与设计 | |
---|---|---|
处理问题时的出发点 | 结构化方法是强调过程抽象化和模块化,以过程为中心构造或处理客观世界问题,它是一种面向过程的开发方法,是一种典型的面向数据流分析设计方法 | 面向对象方法强调的是把问题域的要领直接映射到对象及对象之间的接口上,符合人们的通常思维 |
处理问题的基本单位和层次逻辑关系 | 结构化方法把客观世界的问题抽象成计算机可以处理的过程,处理问题的基本单位是能清晰表达过程的模块,用模块的层次结构来概括模块与模块之间的关系和功能; | 面向对象方法是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位,面向对象方法是用类的层次结构来体现类之间的继承和发展。 |
数据处理方式与控制程序方式 | 结构化方法是直接通过程序来处理数据,处理完毕后就可显示出结果,在控制程序方式上是按照设计调用或返回程序不能自由导航,各模块程序之间存在着控制与被控制的关系; | 面向对象方法将数据与对应代码封装成一个整体,原则上其它对象不能直接修改其数据,即对象的修改只能由自身的成员函数完成,控制程序方式上是通过“事件驱动”来激活和运行程序 |
分析设计间的转换方式 | 结构化方法中的分析设计按规定的规则进行转换,分析设计之间实现的是一种有缝连接; | 面向对象方法从分析到设计采用的是一致性的模型表示,使得从分析到设计不存在转换,只需要做必要的修改和调整。 |
总结
方面 | 感想 |
---|---|
Visio建模工具学习 | 在完成此次作业的过程中,我们团队又学到了新的建模工具Visio,发现它是一个很好上手的工具,我们用visio完成此次作业的作图,有用例图、UML模型等,在这个过程中,我们团队进行了讨论,然后对做的图进行了几次修改,最后的出了终结版,我们团队对visio建模工具的评价很高,它在学习软件工程已经完成一个项目的过程起着很大的作用 |
项目需求分析建模 | 在这个过程中,我们在实验七的基础上对我们的需求规格说明以及系统设计说明书进行了修改,因为此次作业要用面向对象的设计方法,所以我们小组对这两个方法进行了对比,最后做出了两个新的版本。整个过程我们团队在商量好的基础下进行一一分工来完成的,然后有疑问就发群里,大家一起解决,充分体会到了团队的分工和协作。 |
软件系统设计 | 在这一方面我们在实验七的基础上将项目运用了OOD的方法进行了设计,并且选择了适合的设计模式,对我们的项目进行的设计,以及类的一些划分等,而采用面向对象的方法对我们的项目进行了软件系统说明书的撰写发现这样方法更适用于软件工程的实施。 |