《你说对就队》第六次作业:团队项目系统设计改进与详细设计
内容 | 项目 |
---|---|
这个作业属于哪个课程 | 【教师主页】 |
这个作业的要求在哪里 | 【作业要求】 |
团队名称 | 《你说对就队》 |
作业学习目标 | 1.掌握面向对象软件设计方法 2.完善系统设计说明书,掌握面向对象详细设计内容、设计原理和技术 |
一 团队项目github仓库地址链接
二《你说对就队》项目系统设计改进
在上一次的概要设计中,进行考勤系统的初步概要设计,其中在内部数据结构部分采用了数据流程图的模式,但是对于客户来说不太直观,无法轻易了解哪些是客户自己所需求的,哪些不是自己所需求的,然后在内部接口部分,在前一次设计中由于对于系统的大致框架和功能没有划分清楚,所以类图只做了初级层面的uml类图,由于内部结构没有划分,所以并没有往下深入关系的划分,针对这个问题。本次修订中首先对系统结构图进行了优化,以直观的模块显示,系统具有的功能一目了然,哪些是客户所需要的哪些不是客户可以清楚了解的自己的需求和开发组的的需求构想是否一致,再对内部接口图进行了具体类的划分,对于相关类的类名、方法、变量进行了主要部分的阐述,以方便开发团队人员的说明书的理解。
三 团队项目系统详细设计
在OOD的软件项目详细设计阶段,开发团队将进一步细化分析系统设计模型,精化类的属性和操作,详细定义类中服务参数和具体实现逻辑,依据软件开发环境调整类的层次关系和关联关系,定义软件数据库表结构等等。要求如下:
a. 采用适当的建模方法完成团队项目的系统详细设计。
b. 参考国标GB8567——88中《软件系统详细设计说明书》格式,撰写团队项目软件系统详细设计说明书,文档要求使用一致的图形符号和文字描述内容,将该文档上传到团队项目Github仓库。
四 团队项目详细设计过程 总结
主功能流程
总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计是软件开发时期的第三个阶段,也是软件设计的第二步。其任务就是把解法具体化,也就是回答下面这个关键的问题:“应该怎样具体地实现这个系统”,通过详细设计应该得出对目标系统的精确描述,给出各个模块的详细过程性描述。从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
五 具体设计分工及占整个系统设计文档任务的工作量
成员姓名 | 具体分工 | 工作占比 |
---|---|---|
张旭辉 | 采用适当的建模方法完成团队的系统的详细设计 | 20% |
丁家辉 | 在团队博客发布博文,陈述本次作业的实施过程,团队项目详细设计过程总结 | 20% |
达选奇 | 分析初稿不足,在团队项目github仓库中更新《软件系统设计说明书》 | 20% |
金生芳 | 撰写团队项目软件系统详细设计说明书 | 20% |
温永琴 | 描述团队具体成员的分工,总结团队项目详细设计心得 | 20% |
六 心得
本次实验在组长组织下,团队成员努力去完成任务。期间我们遇到了一些问题和分歧,比如想法不统一,任务分配不均匀。但是在大家的积极去探讨下我们也成功解决了。通过大家自身擅长的部分我们进行了任务规划和分配。总体来说还是比较合理。通过此次任务也反应出我们团队成员的一些缺点,比如专业知识不够扎实,技术不到位,知识点的模糊。这些也成为我们完成任务的一大障碍。也是让我们最头疼的地方。我们通过上网查阅资料以及在同学帮助下解决问题,完成了任务。所以希望在今后的团队合作道路中我们能够有更大的进步,不断合作去学习,取得更好的成绩。还有在这次任务也体现了我们团队的合作精神。大家都对自己分配到的任务认真的去对待,遇到不会的大家一起合作讨论去解决。每次团队合作让我们的心更进一步,对知识的追求更加渴望。也让我们认识到自己的不足,未来我们还需要不断努力学习,才能成就更好的自己。
七 回答以下问题
(1)何谓软件体系结构、软件设计模式?
(2)什么是C/S与B/S结构
(3) 什么是MVC设计模式?
问题一:何谓软件体系结构、软件设计模式?
软件体系结构:
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
软件设计模式:
1.广义讲,设计模式是可解决一类软件问题并能重复使用的设计方案
2.狭义讲,设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。是在类和对象的层次描述的可重复使用的软件设计问题的解决方案
3.模式体现的是程序整体的构思,也会出现在分析或者是概要设计阶段
4.模式的核心思想是通过增加抽象层,把变化部分从那些不变部分里分离出来
问题二:什么是C/S与B/S结构?
C/S结构(Client/Server,客户/服务器模式)服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。客户端进行用户界面/事物处理,服务器进行数据处理
B/S结构(Browser/Server,浏览器/服务器模式)是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
两者区别:
1.硬件环境不同
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间在通过专门服务器提供链接和数据交换服务。
B/S建立在广域网之上的,不必是专门的网络硬件环境,比如:电话上网,租用设备,信息自己管理有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
2.对安全要求不同
C/S一般面向相对固定并且相同区域,对信息安全的控制能力很强,一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布可公开信息 。
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
3.处理问题不同
C/S程序可以处理用户固定,并且在相同区域,安全要求高需求,与操作系统相关,应该都是相同的系统。
C/S的客户端由于是本地程序,因此和本地硬件,程序的交互性很强,比如可以控制本机的其他程序,可以读写本地磁盘文件,可以与硬件交互。
B/S建立在广域网上,面向不同的用户群,分在地域,这是C/S无法做到的,与操作系统平台关系最小,正因为如此B/S很难和本地硬件,程序,文件进行交互。比如:很难控制本机的其他程序,很多那都写本地磁盘文件,很难与硬件交互,当然可以用ActiveX技术解决,比如网银,这样做的问题就是可能会被客户拒绝,而且只能Windows操作系统。
问题三:什么是MVC设计模式
“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开发推荐采用此种模式。