说实话这是我人生中第一个要开始重头开始做的项目,现在在公司做的项目都是以前的老项目,最多也就有一些新的需求,多数情况都是改bug,从刚开始研究nodejs时的不了解,到现在的痴迷,我想nodejs以后会有更多的可能,本来我想做一个关于大学生兼职的网站,大学生可以在线申请职位,然后企业可以发布兼职信息,但是我暂时还想不出一个能够吸引人的地方,所以这个方案暂时放弃,等以后有时间我可以写一个方案,不知道大家有没有好的想法啥的,可以尽情留言,下面我就开始我们的项目之旅。
说到需求分析,有好多人都误以为这是一个过程,但是确切的说,这是两个过程,需求是把用户对软件的要求进行详细的统计,之后要对统计出来的用户需求进行一个归纳概括。
说实话第一次接触到UML建模,以前并没有系统的学习过这方面的知识,所以我理解的东西可能和实际有一些偏差,所以最近在看一些关于UML的基础知识,这里我先和大家说一下对于用户需求的一些基础性的知识吧,首先我们从需求阶段可能遇到的问题入手,我认为需求分析阶段可能遇到的问题主要有三个,首先就是客户与开发人员的交流问题,俗话说“闻道有先后,术业有专攻”,这两个领域的人员,由于知识背景等不同,所以交流起来未免会出现这样或那样的问题,有时候甚至分道扬镳,其次就是需求信息描述不规范,由于个人性格习惯等不同的原因,导致一种需求可能有多种形式的表达,其三,就是随着项目的跟进,需求也会避免不了发生变更,但是有时候这种变化并不能反映到实际的开发中,导致需求与现实脱轨。所以为了最大化减少上述问题所带来的风险,“需求工程”理论从而诞生,其主要任务是:探索行之有效的需求获取方法;实现“用户主导、面向领域”的需求建模过程;形成促进协同工作和逐步优化的需求规格;构建真实可信的需求验证理论、方法和手段;为实现科学的需求管理奠定理论和方法基础。需求工程理论包括以下五个方面:
1、需求获取:通过与用户交流、对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求;
2、需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义;
3、形成需求规格:生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约;
4、需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;
5、需求管理:支持系统的需求演进,如需求变化和可跟踪性问题等。
扬哥想让我为公司开发一款在线测评软件,客户群体是广大想加入软件行业的应聘者,这个系统分为两个方面,一个就是前台用户的使用,前台用户(也就是应聘者)可以通过qq登陆本系统,登陆成功后要填写个人信息(如姓名,年龄,毕业院校,专业等信息),点击下一步就可以进入在线测评,测评时会有剩余时间提示以及剩余题目提示,试卷提交后,应聘者可以登陆网站查看评测结果,如果评测通过,系统也会自动发送面试通知到应聘者电子邮箱内,另外一个方面就是后台评测师的管理,评测师可以在管理题库,可以对试卷进行管理,同时也可以对前台用户提交的试卷进行打分评测管理。
经过对上述的需求进行分析归纳总结之后,得到前台使用者需要完成的功能有在线测评,后台管理者需要使用的功能有测评管理,试卷管理,以及题库管理等几个总体的功能,接下来我们要根据这个分析模型来进行下一步的设计了。
下面我想补充一下几点建模的一些知识点,首先就是一个好的模型结会让人更好的理解一个项目的基本流程,结构上大体分为用例模型与对象模型,如果公司还有其他的要求,还可以添加更多的模型关系,然后对于用例模型下有分为,组织建模,分析建模和设计建模,而且最好在每个模型上都标记一个编号,如第一级的用例模型和对象模型,命名的时候可以为01.用例模型,02.对象模型,用例模型下的可以命名为01.00组织建模(这里用00来标记组织模型,是因为组织模型可以在任意的地方被引用),01.01.分析建模,以此类推。