软件需求分析

来源:互联网 发布:老版6.1.3淘宝下载安装 编辑:程序博客网 时间:2024/04/29 13:39

一、需求获取

1、确定需求开发计划

    对于就读于计算机相关专业以及对程序设计感兴趣的同学及毕业生,寻找到一个能够检测或是提高自己编程能力的平台,是一件令人振奋的事情。平时在日常学习中,能够有这样一个平台来激励自己,作为自己的编程导师,是我等梦寐以求的。这个系统平台旨在帮助提高同学们的编程能力,也可提高编程思想以及编程理念,更可以给同学们提供一个学术讨论的圣地,让编程不再枯燥,让学习更加有趣。

 

2、建立项目范围和目标

          (1)开发商角度:

*为学生群体提供更便利的程序设计平台

     *将系统平台的功能做的齐全

     *简洁有效的系统平台来吸引更多的学生群体

     *系统平台的高可靠性来赢得更好的口碑

         (2)开发人角度

    *使用更先进的开发技术

          *建立更完善更健全的系统

  (3)使用者的管理层角度

  *对编程能力的提高更为方便快捷有效

*有效地评价编程能力,提升编程理念,加固编程思想

 

3、确定调查对象

   可选择的调查对象:

       *就读软件工程和计算机科学与技术以及其他对编程能力有较高要求的大学学生

       *对编程感兴趣的同学

       *想参加“蓝桥杯”或是“ACM”等编程大赛的学生

       *从事程序设计教学的老师

       *职场实习的程序员

 

   4、实地收集用户需求信息

实地收集对于同在学校的大学生来说,减少了适应环境的步骤,课根据自身情况以及对周边同学的理解做出一定的判断,对调查对象做微调查是可行的,实施时间短且有效。

 

   5、确定非功能需求和约束条件

  安全性:系统登录者的详细信息以及代码的各个算法及模块是要做选择性保密的,由用户选择是否公开自己的信息及源码,所以安全性是本软件必须考虑的需求

  可维护性:如果一次故障造成整个系统瘫痪,这将导致这个系统的使用者的编码工作遇到障碍。系统需要能被及时纠正,不妨碍整体的其他部分的工作。

  健壮性:平台系统能够容纳小错误,对于微小的不当操作能够做出良好的反应。

  灵敏度:系统平台能够对用户的请求做出快速反应,及时响应,高灵敏度增加用户使用的愉悦感。

 

 

二、需求分析

1.建立系统关联图

 

 

 

 

    2、构建用户接口模型

    3、分析需求可行性   

    本在线管理系统应考虑的几项风险类型:

    *性能风险:高,系统主要为数据管理和在线评测功能,对于代码的微小错误能够识别,即该系统必须匹配多种常用语言编译连接功能,并能准确指出出错原因

    *过程风险:中

    *实现技术风险:中

    *数据库风险:中,数据库是这个在线管理系统的用户的信息集合,不涉及非常私密的信息,由用户选择性公开或加密  

    *日程风险:低

    *安全风险:高,安全风险较为重要,对于用户无心的或是恶意地“自毁程序”做出合适的自我维护意识

    *外部接口风险:中

    *稳定风险:高

 

    4、确定需求的优先级

   软件需求优先级从高到低的排序:

 

     5、需求过程

  5.1业务需求

      5.1.1系统操作简单,界面友好,支持中英文两种语言的界面。

      5.1.2规范、完善的基础信息设置。

      5.1.3能够有效管理峰值状态,即多用户同时提交程序代码时不会导致系统瘫痪。

      5.1.4系统存有原始数据,防止丢失。

      5.1.5系统支持对题目和用户信息的多条件查询。

      5.1.6对用户的编程实力(已完成题目总数)及排名评估做实时更新。

      5.1.7响应及时,能够及时响应用户的需求。

 

5.2用户需求

   5.2.1用户(学生群体)可以实现的功能:

      *用户注册:主要实现用户的注册,创建自己的帐户密码等基本信息。                        

      *用户登录:登陆系统查看自己的信息,并支持账号密码记忆功能。

      *编辑信息:修改用户自己的密码,也可进行用户信息的修改以及保存。

      *解决问题:对习题集里的题目进行作答、给出自己的程序代码。

          *提交答案:将完成的程序代码选择具体的语言和题号进行提交,并等待系统响应。

          *排名查询:对自己的排名以及每个使用该系统的群体进行多方面查询,获取相关信息,确定解题信息。

          *分享讨论:对于自己已经解决的且自认为有价值的题目代码进行分享,并对自己尚未解决的问题与他人进行讨论。

 

 

学生使用系统用例图

 

 

       5.2.2管理员实现的功能:

*基本信息:统计并查询学生基本信息。

*数据备份:管理员备份相应数据,以便于故障或更新后的数据恢复。

*数据恢复:数据库受损后,管理员对其进行恢复。

*系统管理:主要对用户的密码管理权限的设置。

*成绩表打印:对学生在单位时间内的测试给予成绩打印。

*讨论筛选:对讨论区内无价值(与学习生活无关)的言论选择性删除,并给予言论者短期禁言。

*实时更新:对于数据能够实时更新,做出相关数据统计和分析。

*奖励评定:对于参加在线竞赛表现较优秀的的同学给予表扬和奖励(如积分奖励之类的奖励)

*书籍推荐:针对学生变成出现的不同程度的问题给出相关书籍推荐。从根本上提升学生的编程能力。

 

 

管理员系统管理用例图

 

 

5.3功能需求

          *学生信息:统计与查询学生基本信息

          *解题信息:统计每道题目的通过率及次数

          *奖励信息:记录每次在线限时竞赛冠亚季军得主

 

      

      5.4非功能需求

        *系统必须提供对各种码表的维护、补充操作。

        *系统必须严格按照设定的安全权限机制运行,并有效防止外界恶意的攻击行为。

        *系统必须按照需求规定记录各种日志。

            *用户必须对系统中的材料成本信息进行维护,以便系统能取得成功。

 

 

6、建立数据字典

数据字典定义了数据流图中的数据和加工,是对各个数据流、加工及数据存储的详细说明,它包含4类条目:数据流条目、数据存储条目、数据项条目和加工条目。

 

 

 

 

 

 

       

      

 

         

 

 

       

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

需求规格说明书

1.引言

 1.1目的

  对于一心想提高自身编程能力的大学学生(尤其是计算机相关专业的学生)来说,一个在线程序设计管理系统为同学们解决了不少麻烦,系统提供成千上万道程序设计题目给同学们,旨在使同学们了解到自身程序设计的不足或是缺陷,并针对这些问题全方位提升自己的编程能力。

  该系统不仅涵盖各种常用算法和数据结构,而且包含各种逻辑推理以及简单地数理问题,对于扩大学生的知识面也是一种良好的途径。每一位同学都拥有自己的账号以便识别和体现自己的独特性。同学之间可以在讨论区进行讨论,分享自己的想法,倾听别人的思想,从而最大化地提升自己的编程能力,当完成一定的习题量之后,对于项目的开展以及最终的找工作来说,可谓是打下了良好的基础,奠定了坚实的基石。

 

  1.2文档约定

     *三号字体表示大标题

     *四号字体表示二级标题

     *三级标题采用小四号字体

     *正文采用与三级标题相同的小四号字体

 

  1.3预期的读者和阅读建议

     对于开发人员,应主要关注需求分析部分,了解用户对系统的要求;对于系统管理员,则应关注功能分析模块,注意系统可操作项以及系统的综合描述部分,对系统的主要功能进行深刻理解;对于学生群体,应主要对管理系统的各个部分关注,了解系统实时信息,对于系统的主要功能和特点做相当了解,能够灵活运用系统达到预期的效果,能够熟练掌握系统的搜索功能和结果提示特点。

 

  1.4系统的范围

    本系统主要是对大学学生的编程能力进行检测,更重要的是提升学生的编程能力,扩大使用将使得系统更加为人知晓,使其更受欢迎,成为一种提高学生编程能力的普遍意识。若只是单纯地局限于摸个专业,或是某个学校,势必太过单调,其作用得不到完全发挥。

 

  1.5参考文献

     [1]黄国光,周勇.软件需求工程.北京:清华大学出版社,2008

     [2]骆斌.需求工程——软件建模与分析.北京:高等教育出版社,2009

 

2.综合描述

   2.1系统的前景

      本系统是根据大学生的编程需要为灵感开发出来的,本科生以基础理论学习为主,没有太多的时间或平台锻炼自己的编程能力,跟着老师做项目又会因为学科知识单薄而显得无力。该系统可谓是为学生提供了一个十分方便的练习平台。该系统还不是特别成熟,在今后的开发中将会有更一步的升级,也会有更多的功能得以完善,在以后的维护与改进中,相信系统会越来越方便,越来越吸引人的目光,其价值也会愈加凸显。

 

2.2系统的功能

  本系统的主要功能是在线测评,测评使用者在规定时间内的编程效率及能力,并根据评测结果对用户给予精神上的奖励与鼓舞。在使用该系统的过程中,

用户可以了解到自己的编程基础,更重要的是提升自己的编程能力,知道自己在编程过程出现的问题,为日后自己的发展奠定基础。

 

      2.3用户类和特征

         用户类主要分为两类:

    *管理者:对普通用户(学生群体)的练习题或基础强化训练做人工查看与评述。

*普通用户:登陆系统进行练习与测评。

 

   2.4运行环境

  Windows等PC端、Android、IOS等移动端均可访问并练习,不与其他软件或系统冲突。

 

       3.外部接口需求 

        *用户界面 

*网络接口

        该系统为了帮助学生提升编程能力,提供了一个人机以及人人交互的环境需要在互联网中运行。

 

4.系统特性

         4.1说明和优先级

对部分功能进行说明和优先级评定:

*实时更新:对于数据能够实时更新,做出相关数据统计和分析。

*解决问题:对习题集里的题目进行作答、给出自己的程序代码。

*奖励评定:对于参加在线竞赛表现较优秀的的同学给予表扬和奖励(如积分奖励之类的奖励)。

*讨论筛选:对讨论区内无价值(与学习生活无关)的言论选择性删除,并给予言论者短期禁言。

*成绩表打印:对学生在单位时间内的测试给予成绩打印。

*分享讨论:对于自己已经解决的且自认为有价值的题目代码进行分享,并对自己尚未解决的问题与他人进行讨论。

*书籍推荐:针对学生变成出现的不同程度的问题给出相关书籍推荐。从根本上提升学生的编程能力。

*排名查询:对自己的排名以及每个使用该系统的群体进行多方面查询,获取相关信息,确定解题信息。

*基本信息:统计与查询员工基本信息。

*编辑信息:修改用户自己的密码,也可进行用户信息的修改以及保存。

*数据备份:管理员备份相应数据,以便于故障或更新后的数据恢复。

       *数据恢复:数据库受损后,管理员对其进行恢复。

*用户注册:主要实现学生的注册,创建属于自己的账户和密码。

*用户登陆:登陆自己的账户,进行相关编程提交以及查询操作。

*系统管理:主要对用户的密码管理权限的设置。

 

4.2功能需求

*学生信息:统计与查询学生基本信息

*解题信息:统计每道题目的通过率及次数

*奖励信息:记录每次在线限时竞赛冠亚季军得主

 

     5.其他非功能需求

      5.1性能需求

 *系统必须提供对各种码表的维护、补充操作。

    *系统必须严格按照设定的安全权限机制运行,并有效防止外界恶意的攻击行为。

    *系统必须按照需求规定记录各种日志。

        *用户必须对系统中的材料成本信息进行维护,以便系统能取得成功。

 

      5.2安全设施需求

系统需要进行操作确认前保护,即系统应该实时保存,如果遇到突发状况导致系统奔溃,系统应该确认数据不会丢失,数据得以正常恢复。

 

 

 

6.总结与感悟

    软件需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求。需求工程的目标就是要获取高质量的软件需求。从软件工程提出的各种开发模型可以看出,需求工程师软件开发过程中的一个阶段,提供了软件项目其余部分得以实施的根基。需求工程是由一系列与软件需求相关的活动组成的。

在日常的学习生活中,我们更注重的是程序的设计与查错,更多的是研究算法,看重的是如何解决一道具体的编程题目,认为解决了一个程序设计的题目就等于解决了整个问题,但却不知道这些问题都是可以由实际问题抽象而来的若干个子问题,在整个软件的设计过程中,程序设计没有想象中那么大的比重,而软件需求分析才是一个软件设计过程中起领头作用的角色,一个软件的设计若没有十分严谨和合格的需求分析,在后续的软件编码、测试与维护过程中花费了大量人力物力财力后,到头来可能是一场空。

软件需求工程是一门看起来容易,但做起来需要花功夫的学科,需要多实践,从实践分析中发掘其中的精髓,这份需求分析报告写来实在不易,学生花了不少功夫专研需求分析中的各个板块,有些内容还是做得不尽详细,但从这次的论文写作中,又得以把知识做了一番温故,又获得了当初学习时所未发现的知识。在日后的学习中,学生一定多实践,多做总结,温故而知新,不断进步!

我很喜欢岑丽老师的这门课程,对上学期的可视化编程课程根式音响深刻,希望在以后的学习中还能再在岑丽老师的其他课程中学到更多知识,我也会更加努力,一步一个脚印,争取早日实现自己的梦想!谢谢老师!

   7.附录

 附录1:学生使用系统用例图

   

 

附录2:管理员系统管理用例图

 

 

0 0