实验十 团队作业6:团队项目系统设计改进与详细设计

||
|:--|:--|
|内容|项目|
|任课教师博客主页链接|任课教师博客主页链接|
|作业链接地址|团队作业5:项目需求分析改进与系统设计|
|填写团队名称|逆袭团队|
|填写具体目标|(1)掌握面向对象需求分析方法;(2)学习软件系统总体结构和数据库逻辑结构设计,学会编制软件系统设计说明书,掌握系统总体设计过程、设计原理和技术。|

1.团队项目github仓库地址链接:团队项目github链接地址

2.更新GitHub仓库《软件系统设计说明书》

3.按任务要求完成团队项目系统设计改进总结

(1) 团队项目系统设计改进总结

我们小组这这周经过讨论和分析发现的发现我们的系统设计有很大的缺陷和不足之处,比如内容的不充实,具体的指标和功能没有落实到位。我们在以下方面对我们的系统设计进行了改进和补充:
a) 没有涉及信息隐藏的内容,信息隐藏是通过对象的封装实现的;
b) 需说明对象之间是如何实现的
c) 需注明软件的重用性
d) 尽量使用已有的类
e) 创建新类时,要考虑将来的可重复性
f) 说明本软件规模并注出类等级层次数
g) 注明软件的产品质量、开发生产率、整体成本成本
h) 以系统的的稳定性为主
i) 指定窗口、输出的形式、设计命令层次等项内容
j) 确定哪些是必须同时动作的对象,哪些是互相排斥的对象然后进一步设计任务管理子系统
k) 指定对象间的访问路径
l) 确定各项指标的优先级,并制定这种方案
m) 增加冗余关联以提高访问速度
n) 保留派生属性
o) 调整继承关系
我们改进之后发现我们系统设计说明书又详细、具体了许多,这样可以为我们小组接下来的任务又方便了很多,为我们项目的顺畅实现打好了基础

(2) 陈述本次作业实施过程,描述团队成员的具体分工、占整个任务的工作量比例及完成各自任务的实际时间,总结团队项目详细设计心得,总结中要体现每个成员的工作内容。

① 陈述本次作业实施过程

在我们收到作业后,我们小组成员就对作业的整体内容展开讨论,为了使作业可以保质保量的完成,我们小组最后商议决定,根据自己的能力承担本次作业各自的任务。在将自己所拿到到的任务做的差不多的时候,由我将这些任务模块收集整合,然后再经过一轮讨论后,对任务模块中不尽人意的地方进行修改,最后编写博客、上传GitHub和核查整个作业任务是否的完整和准确。

② 描述团队成员的具体分工、占整个任务的工作量比例及完成各自任务的实际时间

||||
|:--|:--|:--|:--|
|成员姓名|具体分工|占整个任务的工作量比例|实际完成时间|
|马亮|分析项目系统设计说明书的不足,并提交给徐明锦|20%|120min|
|徐明锦|收到分析后,进行完成和补充项目系统设计实验书|20%|100min|
|司昕劼|撰写《软件系统详细设计说明书》|30%|300min|
|杨巧丽|负责博客园的内容,并检查GitHub的提交|30%|400min|

③ 总结团队项目详细设计心得,总结中要体现每个成员的工作内容

作为一个团队,我们前期分配任务之后就会自己做自己的。在各自的任务点做的差不多的时候,我们就会在群里将自己的进度展示出来,然后相互督促、相互核查、相互改进等。然而作为一个团队,总有些不尽人意的地方,我们的每个环节都对下一个人的工作实施起着至关重要的作用。对于我这个写博客的人来说,必须让他们按时完成自己的任务,不然我的任务就根本进行不下去,马亮的分析项目系统设计说明书的不足并提交给徐明锦,然后徐明锦收到分析后,进行完成和补充项目系统设计实验书是我写博客的重要依据。此外若没有司昕劼撰写的《软件系统详细设计说明书》,我的团队项目详细设计过程总结就根本没法下笔。他们三人的任务也存在着这些联系,因此按时完成分配的任务是团队存在的必要条件

4.Github仓库上传《软件系统详细设计说明书》

||
|:--|:--|
|《软件系统详细设计说明书》团队项目Github仓库连接|https://github.com/counterattackerBar4/Originate-Type|

5.团队项目详细设计过程总结

项目详细设计主要涉及两个大的模块:界面设计和主要功能设计。首先是主要功能的设计包括主界面功能(主界面的列表选项和用户操作权限)、团队成员介绍模块的实现(团队成员详细信息介绍)、局部功能的实现(对于用户所选择的模块进行更换材质的操作)和整体功能的实现(进行具体的浏览,后期如果允许的话可以设置为VR模式,进行VR的交互);此外是界面设计,界面设计从主界面设计、团队成员设计、局部设计和整体浏览设计四个模块的界面进行一一的布局和美化。因为我们的项目是家装,故设计过程必须着重考虑页面的美化问题;最后进行测试,测试工作分为四个阶段:单元测试、组装测试、确认测试、系统测试。单元测试:采用白盒法和黑盒法相结合的方法,对于逻辑结构复杂的模块采用白盒法,对于以输入、输出为主的模块采用黑盒法测试,以提高测试的效率。
组装测试:自底向上的增量测试。
确认测试:由用户参与按需求规格说明书验收。
系统测试:采用人工测试方法。
(1) 系统环境模块测试是为了检测系统环境模块,数据响应是否正确,数据能否正确,并进行仔细核对。
(2) 基本信息测试是基本信息模块是本系统的一个重要模块,本模块能否正确运行关系到系统设计成败的关键,所以有必要对这个模块进行专门测试。以弥补设计过程中的不足,以便于及早发现和修改问题。

6.回答以下三个问题

  • 何谓软件体系结构、软件设计模式?
    软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。软件体系结构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。
    软件设计模式称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案被称为反模式。
    常见模式有:创建模式、结构模式、行为模式、并发模式等。软件设计模式虽然形形色色,但他们拥有一套自己的模式原则,一般来说所有模式应该遵循以下原则,即开-闭原则、里氏代换原则、合成复用原则、依赖倒转原则、接口隔离原则等基本原则。软件设计模式有四要素:模式名称、问题、解决方案和效果。
  • 什么是C/S与B/S结构?
    C/S结构体系是一种软件系统。可以从一下两个层次面认识: 小型系统:使用的C/S系统,基本只是简单的读取数据库,显示到前台而已。一般也就分为两层:服务器端、客户端,所实现的也是胖客户端。服务器上也就只是运行数据库而已。而当系统规模够大,就必须谈到架构了。一个大型C/S架构大致可以划分为:实体层、业务逻辑层、用户控件层、前台界面层。
    B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
  • 什么是MVC设计模式?
    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
    模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。