实验八 《Coderxiaoban团队》团队作业4:基于原型的团队项目需求调研与分析
||||||||||||||
|:--|:--|
|项目|内容|
|这个作业属于哪个课程|任课教师博客主页链接|
|这个作业的要求在哪里|实验八 团队作业4:基于原型的团队项目需求调研与分析|
|团队名称|Coderxiaoban团队|
|作业学习目标|1.UML软件绘制工具简介;2.Visio UML图形绘制工具团队学习总结;3.团队项目github仓库地址链接;4.团队项目需求分析设计成果;5.团队项目用户调研过程、需求分析总结。|
1.UML软件绘制工具简介;
(1)Visio
Office Visio 是office软件系列中的负责绘制流程图和示意图的软件,是一款便于IT和商务人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。使用具有专业外观的Office Visio 图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。
Microsoft Office Visio帮助创建具有专业外观的图表,以便理解、记录和分析信息、数据、系统和过程。大多数图形软件程序依赖于结构技能。然而,在使用 Visio 时,以可视方式传递重要信息就像打开模板、将形状拖放到绘图中以及对即将完成的工作应用主题一样轻松。
Office Visio 2013中的新增功能和增强功能使得创建 Visio 图表更为简单、快捷,令人印象更加深刻。
(2)Rational Rose
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。Rational Rose 是一个完全的、具有能满足所有建模环境(Web开发,数据建模,Visual Studio和 C++ )灵活性需求的一套解决方案。
Rose 允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练。通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统。
(3)PowerDesign
PowerDesign是一个功能强大而使用简单工具集,提供了一个复杂的交互环境,支持开发生命周期的所有阶段,从处理流程建模到对象和组件的生成。
PowerDesign产生的模型和应用可以不断地增长,适应并随着组织的变化而变化。PowerDesign灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库或数据仓库,而不要求严格遵循一个特定的方法学。PowerDesign提供了直观的符号表示使数据库的创建更加容易,并使项目组内的交流和通讯标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。
2.Visio UML图形绘制工具团队学习总结;
通过这次对于Visio的使用,我们分别掌握了如何在里面绘制用例图、活动图、类图等。
类元之间的关系有关联、泛化、各种形式的依赖关系,包括实现关系和使用关系。
关联:对象通常要和其他对象发生关联,关联可以具有多层形式。多重性问题(一对一、一对多)。在UML中关联用一条直线来表示。
泛化:一个类继承了其他类的属性和操作。在UML中泛化用“从之类画一条带空心三角形箭头的连线指向父类”来表示。
依赖:一个类使用了另一个类。在UML中依赖用“从依赖类到被依赖的带箭头的虚线”表示。
聚集是关联的一种,聚集对象由部分对象组成。也就是整体与部分关联。在UML中用“整体和部分之间用带空心菱形箭头的连线连接”来表示。
组合是一种特殊的聚集,在一个组合对象中,部分对象只能作为组合对象的一部分与组合对象同时存在。在UML中用“整体和部分之间用带实心菱形箭头的连线连接”来表示。
实现:类和接口之间的关系被称为实现。在UML中实现关系用一个带空心三角形箭头加虚线来表示,箭头指向接口。
活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动。活动状态代表了一个活动:一个工作流步骤或一个操作的执行。活动图描述了一组顺序的或并发的活动。活动视图用活动图来体现。活动图很像流程图,它显示出工作步骤,判定点和分支。可用于表达一个对象的操作和一个业务过程。
当用例视图在外部用户前出现时,它捕获到系统、子系统或类的行为。它将系统功能划分成对参与者(即系统的理想用户)有用的需求。而交互功能部分被称作用例。用例使用系统与一个或多个参与者之间的一系列消息来描述系统中的交互作用。参与者可以是人,也可以是外部计算机系统和外部进程。
用例之间的关系:关联、扩展、泛化、包含。
总的来说,通过对Visio的使用,我们小组对于UML建模的过程以及Visio的绘图过程都较为熟悉了,而且我们小组成员对于现在的项目模型中多方面的了解了,也愈发的熟悉我们的系统设计以及结构。
3.团队项目github仓库地址链接;
||||||||||||||
|:--|:--|
|github仓库地址链接|https://github.com/zhouyanghaha/CoderXiaoban|
4.团队项目需求分析设计成果;
(1)需求获取
管理员用例图
会员用例图
员工用例图
(2)需求分析
(3)系统分析与设计
管理员活动图
会员活动图
员工用例图
5.团队项目用户调研过程、需求分析总结。
需求调研方法:问卷调查和面对面提问
调研顾名思义就是调查和研究客户的想法,我们从以下几个步骤入手:
(1)客户想要什么? 认真倾听客户说话,因为客户在说的时候,他多半同时在想自己要什么东西。他说完了,轮到咱了,首先复述客户需求,在复述的同时我们就可以发表建议了。此时态度要把握好,要把客户的需求合理化、简单化。说白了就是程序别太复杂,风险能排全排除掉,别搞个逻辑又复杂又不实用的东西出来。
(2)客户要这干什么用?听完所有的需求,提炼出客户所要东西的重点,围绕重点开始研究,复述客户的需求。作事千万别说:“我以为”。别怕麻烦,现在多说几遍大家都还是客气,比以后大家对需求有争执强。
(3)他为什么这么想? 客户大多不是IT专家,大多是行业专家,对自己所作的行业至少对本公司的行业流程比较清楚,所有我们就需要搞清楚他们的行业流程或说业务逻辑,看看他们到底想让我们用程为他们实现什么功能,他们要干什么?另外不少关键问题通过了解其具体想要干什么就很容易的化解掉了。
以上三步我们的目标是: 搞清客户的要求,找出要求的逻辑,客户想要的结果,同时排除开发的风险,挖掘与控制潜在的要求。需求调研的目的是: 双方对未来产生结果的认同,达成共识的基础是双方对结果均有理解,而不能一味期望客户提供他们的要求。
前期准备
1.前期工具:没有什么工具是好还是坏的问题,问题是关键是如何使用它们,无论是什么工具也只是一个辅助工具,也不是生成工具。工具的选取要求是自己熟悉的工具,不能是一件最新时髦工具而自己对它了解很少,结果大部分时间化在学习工具上,而不是使用它为你工作。最终我们一致决定建模工具为Visio
2. 要做什么就要先了解什么:所选课题所涉及的行业的难度不是很大,我们通入自我学习在短时间内了解行业,在网上通过其他的调查问卷其他资料学习编写,我们的调查[问卷详情链接](https://www.wenjuan.com/s/2maQne1/)
真正了解用户和改进
哪些是用户可能明确要达到的目地;那些是用户想要做到的,要知道那些是自己能做到的,那些是自己不能做的。所需改进如下: 为实现用户需求及系统功能上的目标,超市会员管理系统主要完成的功能有:(1)店长信息的管理:包括对所有店长信息的各项设置。(2)店员信息的管理:包括对所有店员信息的管理设置。(3)会员信息管理:包括对会员信息的修改和查询等。(4)管理员功能:
1)会员信息列表,实现对会员信息的管理,添加了会员等级等。
2)新增添加店员信息,上下班信息,工作时间等。
3)查看店员列表,实现对店员信息的查看、修改、删除操作。
4)查看会员列表,实现对会员信息的查看、修改、删除操作
5)查看修改记录,实现查看管理员对会员、店长、店员的信息的工作记录。
(5)店长功能:
1)店员列表管理,实现对店员信息的查看操作。
2)会员列表管理,实现对供应商信息的查看功能。
确定本次开发的系统设计的目标
(1)系统的完整性:
因会超市管理会在不同业务中表现出不同的业务差异,本系统定位在店员、供应商以及订单信息上,根据管理过程中可能出现的各种问题细分不同的功能模块,各模块需完成超市管理过程中可能出现的问题与请求。同时各个模块之间存在一定的联系,不同模块的组织与联系也是设计与实现过程中要解决的问题。
(2)系统的安全性:
为了保证店员及供应商信息的安全性,避免人员信息的泄露和恶意修改,设计了不同访问者的权限管理。即店长员只能访问与本店店员信息和本店订单相关的页面与操作,而管理员可以实现对整个系统的设置及管理。另外,店长没有权限修改供应商信息和店员信息,只有管理员可以对其进行修改、添加和删除等一系列的操作。
(3)对错误操作的处理
对错误请求的处理。操作者在操作的过程中不可避免的会出现一些错误,而这些错误应尽可能的被捕捉到并给予相应的提示和正确的处理。操作错误时系统也应能做出一般性处理。
需求分析总结
这次需求分析让我们明白,首先要明白在需求调研过程中,应该做好的准备
1)做好不怕一切困难的准备。
2)调研前应该将所有项目前期资料进行汇总,与相关的前期销售人员进行交流,以便对项目有一个基本轮廓的认识。
3) 做好调研前使用资料的准备,如需求调研模板,需求调研问题列表,不说废话在较短时间得到最多的信息。
4) 其次应该努力的去熟悉用户的行业,学习用户使用的术语,标准,以便能够准确的理解用户。这就需要我们阅读用户所在行业的资料、文章,尽量多选取一些整体性介绍的文章,这样可以在短时间内能够对该行业有一个全面的认识,这样我们就能够较好的和用户进行交流了。
5) 需求调研中,学会尽量不使用IT行业的术语,而采用浅显易懂的口头语言来解释IT行业中高深莫测的术语,以便用户能够很好的理解,提高自己的沟通交流能力。
6) 提高自己的速记、总结能力,文字表述能力以及归纳能力,能迅速的记录需求调研核心的问题,总结归纳形成原始的需求调研资料。
这是第一次团队参与工程项目里面,需求分析可谓是重中之重,我们从理解需求分析,直到终于清楚我们项目的需求,可是费了不少功夫,一直在不断调整权衡我们的需求和实现难度,就是在这样的过程中,我们对需求分析的重要性有了更深层次的认识。
(1) 首先,在我们看来,需求分析的意义在于准确无歧义地表达项目最终需要交付的成品,是需要得到客户的完全认同的,我们工程的最终目的就是要做出满足客户的产品。并且,想指望需求不发生变化是不可能的,不管是开发的人还是客户,都有可能在工程的进展过程中提出变化的需求,所以我们定的不是一个恒定的需求,而是不断与客户保持认知一致的变化的需求。
(2)讨论之后我们在课后都去自己查找了一些类似的项目,比较之后才知道最终成品大概是个什么样子。之后随着一次一次的和组员讨论,不断的完善我们的需求,以及大致的分模块以及对应分工。我们讨论的起始点就是核心功能,然后其他的都是围绕着这个核心展开的,一步步地分析一个完整的系统所需要的界面、功能,但是起初可以使用的功能少了一点,调查之后确定在这之余我们也考虑过增添其他需求,我们也舍弃过一些在我们能力之外或者是时间不足够去完成的功能,整体需求一直都是有着些微的调整。
(3) 需求分析一般都会伴随着我们整个工程,只是不同时间段关注的多少会有所变化,所以需要我们认真、仔细、严谨地去对待,为接下来的阶段做好准备,同时要考虑需求的变化性,设计的更加灵活才能够在以后需求发生变化时方便地去修改。相信我们团队通过自己的不懈努力互帮互助,互相学习会取得进步,圆满完成这个项目。