需求分析是项目开发的基础,基础打的牢不牢直接关系到后面所有的工作,是项目实施成败的关键
项目经理博客
总体上说,我们的需求分析是做了,但是做得很不够,我们做的需求只解决了我们能做出这样的项目,但是没有解决这样的项目是不是真就是客户想要的。造成这种状况的原因主要是下面几个情况:
客户本身说不清楚
文物网是这样,中彰国际更是这样,但是这不能怪客户,毕竟客户在软件方面的知识要少的多,也没有相关的经验,可能心里只有一个想要的软件的轮廓,于是可能会要求我们去替他们来完整这个轮廓的细节,而我们的能力、我们能否真正站在客户角度去搜集和整理这些需求,就决定了这个需求的完整性和有效性。
需求自身经常变动
随着客户对这个项目越来越深刻的理解,那么可能他的需求也会随之改变,这些变化的可能性越大项目风险就会越大,我们在需求分析的时候就要充分考虑到哪些需求是相对固定的需求,哪些可能会是产生变动的需求,考虑到他的可变性,这样设计功能和数据库的时候不致因为后面的变动而影响整个工程。
分析人员或客户理解有误
毕竟,不是每个分析人员都是专业而合格的,为避免这种情况的发生,需求分析必须要有审核制度,公司自己内部要审核一遍,客户再审一遍,提出意见,修改后双方共同评审签字,确认。
由此出现的问题:
a) 需求分析过于笼统,只关注到面上,没有关注到点上,开发出来的东西在具体的细节上和客户的理解有误差,并且无法严格界定是否属于需求变更。中彰的方案就是这样的。
b) 需求报告只求我们这方评审通过,不去关心客户的评审,认为只要客户签字认可就行。虽然签字认可能够给日后出现问题时划清我们的责任,但是不能保证使项目实施成功。
c) 需求分析中含有技术实施上有难度的功能,一味的求全和盲目按照客户的设想,受客户影响过大,毕竟,很多时候,客户的想法在实际实施过程中是不现实的,或者可以有更为简便的方法来替代的。如中彰国际的在线交易功能,后台大批量邮件群发功能。
d) 对双方已经确定的需求,实现以后并不适合客户使用,需要按照变更手续执行的时候,客户可能会纠缠,提出“你们是专业人士,你们应该事先能提醒我们可能会出现这种问题”并以此来把责任推给我们,而我们又不好完全按照变更手续执行,因为可能激化双方的矛盾,比如508的批量处理功能,因为属于人事管理比较专业的细节问题,需求分析师开始没有对客户业务熟悉到如此细致的地步,而客户也没有过多关注这些细节,导致软件的某些功能不合用,较为繁琐,而重新按着客户的意见修改的话工作量比较大,导致成本增加、工期延长。
e) 项目的成熟度受客户预算的限制。大部分客户在项目投入上都是有预算的,在成本有上限的前提下,项目的功能设计(软件的成熟度)方面必然受一定影响,毕竟功能越多越完善,相应的开发成本就越高。这种功能上的不完善需要事先告知客户并得到理解。
f) 此项工作的反复造成思想上的倦怠,使需求分析最后虎头蛇尾。需求分析是一项繁琐枯燥的工作,需要和客户之间不断的商讨、确认和反复,另外由于大部分的客户虽然安排专人负责这项工作,但是该人并不只做这项工作,特别当他被很多其他的事情缠身的时候,而无心细看提交过去的需求报告的时候,他很可能会给你一个错觉,让你认为他已经真正的理解并认可了你的设计。结论
a) 需求分析是整个项目管理中需要重点控制的几个关键节点之一,首先思想上一定要重视。
b) 需求分析报告的编写者要参与到需求的搜集工作中,准确领会客户的意图,并转化成软件能够实现的功能。对于说不清楚需求的客户,要善于问关键问题,引导客户提出自己的需求。可以采取的措施是事先编制一个问卷调查之类的文档,详细列举需要客户回答的问题,以便防止遗漏。
c) 需求报告的编写者要能够对客户需求进行深入分析,区别出哪些需求存在日后变更的可能,哪些需求属于相对固定的,哪些需求能够实现,哪些需求需要变通才能实现,以便于指导后面的功能设计。
d) 需求分析报告对功能细节的描述不能有歧义,描述一定要全面、准确,防止开发方和客户只见对同一个问题有两个截然不同的理解。可以通过评审,用大家的力量来避免这种情况发生
e) 需求报告的每个关乎功能的描述都要让客户明白和理解,客户在理解之上的确认才能够保证日后一旦出现问题不致出现双方互相推托责任纠缠不清的情况。
f) 需求报告一定要经过一个有技术人员和业务人员参加的评审,要充分发挥团队的力量,重视每个人的才智,一个模块一个功能的逐一的过,让大家来共同找出需求报告里不合理的、有歧义的、不完善的、遗漏的等等问题
g) 帮助客户去理解提交给他的需求分析报告而不是只等签字,对于有能够用好几种方式实现的功能,尽量做到能让客户去比较和选择。不要让客户对报告中的部分产生歧义。只有客户对报告的完全的理解,才能在日后客户提出的修改被认为是需求变更的时候能够得到客户的理解
h) 最后,需求分析报告一定要双方共同签字确认
需求分析师工作总结
工作总结,以年终总结、半年总结和季度总结最为常见和多用。就其内容而言,工作总结就是把一个时间段的工作进行一次全面系统的总检查、总评价、总分析、总研究,并分析成绩的不足,从而得出引以为戒的经验。以下是小编整理的需求分析师工作总结,好一点!
我是一名专职教研员,__年3月在北京接受了项目办的培训,初步了解和理解了以导师为依托的教师支持服务体系项目的来历、目的、愿景、实施计划、实施方法等;首次接触到全纳理论,被深深震动;又学习了多元智能理论、时间管理理论等;通过国家级专家的引领和各省项目专家的帮助,自觉长进不小。
一、工作实践
1.文字工作
__年3月底开始,在省级专家倪万赤和原州区项目办领导下进入导师制项目,开始扮演“县级导师”角色,参与了原州区项目办的基础工作,如拟订《宁夏固原市原州区教师支持服务体系项目(__--__)周期实施方案》和《中国—联合国儿童基金会教师支持服务体系导师制试点项目第二阶段工作计划》;撰写《“教师支持服务体系”导师制试点项目原州区__年工作总》;在国家项目办“教师支持服务体系项目实施指南”《教师需求调查表》基础上修改而成《关于教师生存状态和专业需求的自我评价问卷》及“爱生学校校长教师须知考试题”,在《教师支持服务体系实施指南》中的“学校发展需求校长访谈提纲”基础上修改完成了《学校发展需求校长访谈提纲》,撰写了《“关于教师生存状态和专业需求的自我评价问卷”高红小学调查统计分析》;今年又开发了《__年原州区导师制试点工作导师真实需求调研问卷》、《原州区爱生学校示范校打造工程教师问卷》、《原州区爱生学校打造工程中小学学生问卷》等等。
2.参加原州区项目办组织的培训、研修活动。
如在__年4月3日的“教师支持服务体系”项目导师团队首次集中培训中主讲“如何了解教师真实的需求”。__年5月7日,在省级专家倪万赤的指导下开展了“教师支持服务体系”项目导师团队第二次集中培训。集中学习了《中国-联合国儿童基金会师资培训项目项目县教师支持服务体系指导意见(试用稿)》。同时对原州区导师团队为项目学开发的培训内容进行研修。
__年11月24日,在省级专家倪万赤的倡导下开展了“教师支持服务体系”项目导师团队第三次集中培训。培训的主要内容是如何建立自己的博客和博客群。
3.撰写导师制项目工作活动简报(__年3期,__年5期)和日记,使更多的人了解项目,也为项目积累了许多宝贵的资料。
4.下校工作
__年在清河镇高红小学。工作实绩有:
(1)帮助学校制定了《高红小学__-__年三年发展规划》,辅导教师完成了《教师个人年度发展规划》。学校的三年发展规划和教师的个人规划都是反复修改,几易其稿。通过多次修改教师个人发展规划,使教师学会了撰写规划的环节和方法;通过学校发展规划的反复修改,使教师、学生、家长参与,体现了参与意识,集中了众人的智慧。
(2)以爱生理念指导工作,以儿童视角观察学校和教师,在改善办学条件,提高校园文化爱生氛围上做了一些工作。
如建议校长为学生供应开水,建议班主任开展以友爱为主题的班会。去年4月,经我建议和策划,学校对旗台、大门、操场后墙(土墙)进行了维修,并硬化花园的走道,粉刷操场北墙,校园西花园中心制作水泥圆台及配套的六个小石凳,柳树下制作七个学生活动石桌及配套的小石凳,同时对校外周边环境进行了治理,使校内、校外环境得到彻底整治,创造了一个良好的育人环境和较浓的文化氛围。还建议培训中心为学校校调配电脑三台,34英寸彩电一台,dvd一台,使学校的办学条件得到进一步改善。经我建议,学校接通了宽带网,为网络教研工作的开展创造了良好的条件。(3)带头实践爱生理念,实实在在帮助教师成长。
向教师大力灌输爱生学校理念,全纳、平等、民主、和谐教育思想和爱生如子、爱校如家、爱岗敬业的职业素养日益深入我校教师之心,并表现在实际的教育教学行为中。我自己在工作过程中以人为本,谦虚和蔼,循循善诱,脚踏实地,亲力亲为,如为五年级学生上作文课,以儿童为主体,课堂民主和谐,评课时又很诚恳,虚心听取老师的建议,使教师感到教学研究是实实在在的学术行为,村小完全可以进行有质量的校本研修。通过对所有教师展开听课、评课活动,合课例,有针对性的培训,如“课堂教学中的师生互动交流”等,使学校进一步明确了校本教研的有效做法,也使教师明确了个人专业发展之路该如何走。我们的这些实实在在的行动,消除了教师抵触情绪,使教师的上进心和从业愉快感有所增强。
针对实际情况,我在新浪网上为学校建立了“宁夏高红小学的博客”,教会老师在博客上发表文章、图片,并带头在博客上上与老师进行教学研讨,引领他们走上了网络教研之路。现在,郭桂红、黄军红等老师将新浪网上和原州教育信息网上的学校博客和个人博客经营得非常之好,页面精致程度、文章数量、受到的关注度都超过了我。教师将自己的教学设计、反思在高红小学的博客上发表,并与教研员和同事在网上进行沟通、交流,网络教研的意识已逐步形成,教师教育科研意识和能力得到了提高,“宁夏高红小学”的博客成为学校的窗口,原州教育信息网“六盘部落”上“高红小学的博客”、“大漠孤烟的博客(黄军红的博客)”、“孤独让我如此美丽的博客(郭桂红的博客)”文章数、点击数、被评数、推荐数在所有博客中遥遥领先,受到更多老师的关注和好评,本学期在清河镇中心小学片区教研交流活动中,学校被评为“片区教研先进集体”,七月份又被原州区教育局推荐为自治区教育科研先进集体。
今年,与李红、杨进元在张易中学、杨郎中学。工作实绩:
1.开发出导师真实需求调查工具,完成了导师真实需求分析报告。
2.对教师进行爱生学校理念培训。
3、对导师进行教师真实需求调查与分析的技能培训。
4.开展教师、学生真实需求问卷、访谈,与张易中学、杨郎中学校级导师团队共同完成了教师、学生需求问卷分析报告。
5.完成前四期活动简报。
6.进行了学校发展规划制定的培训,与两校的校级导师团队共同修订完成了学校三年发展规划。
7.进行教师专业成长计划制定的培训,帮助两校教师制订了比较规范的个人年度发展规划。
8.与校级导师合作,建设学校学习支持中心和学习共同体,探索其运行机制。
9.指导教师建立了教师个人成长档案夹。
1.通过听课-评课,研讨有效教学。
11.指导学校和教师在博客及其他网络工具上进行交流。
12.主持了张易和杨郎两校间的观摩交流。
二、收获与体会
1.学习到很多知识,锻炼了很多能力。
按照《导师应知应会清单》的提示,自学了《教师支持服务体系实施指南》、《儿童权利公约》、多元智能理论、《如何帮助农村教师专业发展》、《校本教研》等知识;在原州区项目办组织下,通过多次的“实地锻炼-集中培训-交流探讨-提高认识-实践检验-反思修正”这样的模式,在行动中提升了自己的能力。已经熟练掌握了学校状况调研能力、发现教师真实需求的能力、指导教师专业发展的能力、用各种方式与校长和教师沟通的能力,对教师进行专题培训和有效教学指导的能力、进行系列活动的组织管理能力等等。2.在实践过程中提升了自己的思想认识。
爱生学校的理念是对自己教育思想的整理和洗礼,如全纳理论既包含了以学生为中心的理论又超越了它,因为以学生为中心的理论主要着眼于教学,而全纳则包括整个教育。建立在儿童视角之上的安全校园将不仅仅是约学生或保护学生,而是竭尽全力为儿童营造适合儿童发展的乐园,为儿童提供生理、心理和情感上的安全感;为此,我们不仅要提倡教师爱护学生,也要引导孩子之间的友爱。爱生学校的发展离不开教师、学生、家长和社区,因此广泛的参与是决策民主和效益最大化的基础。爱生学校的课堂是民主的.和谐的,还要追求有效教学,这是导师与教师的最重要的共同话语;学校的教学质量要有吸引力,这是我们和学校做项目的共同出发点之一。以导师制为依托的教师支持服务体系项目与目前原州区实施的村小行动,与宁夏正在全面推开的宁夏回族自治区基础教育学校综合管理质量工程相契合,从大的方面说就是实施素质教育,推进教育均衡发展;从小的方面说就是使每个地区都有好学校,每个学校都有好教师,每个学生都得到全面发展。
3.三点经验
(1)一节课的效应
在高红小学,下校几次,发现教师见了导师还是躲躲闪闪,谈话很被动也很戒备,我知道这是教师与我们感情上有距离,认为项目工作是负担。我选择了一个突破口——主动为五年级学生上了一节作文课。作文课是难上的课,我的教学效果较好,而且在评课时真诚的请老师们提意见,之后,老师们的态度发生了很大变化,我很快融入了教师群体。启示是:以教师视角来看教师,以真诚的态度帮助教师,就能赢得教师的信任,就能顺利地开展合作。
(2)网络交流使导师工作得以延续。
高红小学是一所郊区农村小学,教师没有住校的,每天中午和下午回家,这使得导师与教师的交流时间很有限,曾经成为我的一个难题。但是部分教师家中有上网条件且有初步的上网技术,了解到此信息后,我教会了教师上网做博客,在博客上讨论,利用qq等工具与教师进行八小时之外的交流。例如在新浪网的宁夏高红小学的博客上,我对郭桂红、马莉等老师的课堂教学和教学设计进行了认真的评论,使得教学研讨突破时空限制,也赢得了教师的感激和尊重。至今,我们还在共同经营着这个博客,我与高红小学的老师的交流还在继续。
(3)今年在张易中学和杨郎中学实施导师制项目时又有新的感悟,那就是因地制宜,充分发挥学校和教师的主动性。张易中学李强校长在项目启动之后,组建了包括副校长、各科教研组长在内的9人校级导师团队;在制订学校三年发展规划时印制了“张易中学学校发展规划征求意见问卷”,广泛征求校内外人士的意见,这是我们提倡的但又没有实际操作过的。张易中学做过好几个大项目,他们有开阔的眼界和一个很有能力的团队,因此很多事情关键在于计划和达成共识,不必像在高红小学那样“示范”过多。事实上,今年张易和杨郎两个中学的教师需求、学生需求、学校发展规划、教师发展规划等我们导师有培训,参与修改,但是直接的“帮助”(或者说手把手的帮助)较少。
三、问题与思考
一是县级导师的日常工作与项目工作存在一定的矛盾,县级导师毕竟不是专职导师,因而在确保他们的项目工作时间上有一定冲突。导师还需要更高一级的培训与学习、支持与帮助,自身能力仍需进一步加强和提高。二是项目学校校本研修、校本培训的规范化、制度化、常规化还需着力促进和完善。校际之间、教师之间的学习、研讨、合作与交流的氛围要进一步创建和加强。
三是项目校学习支持中心团队教师的支持力度、支持能力还没有充分发挥出来。专业发展协调人就本校教师与县级导师团队和学校支持中心团队之间的协调能力和如何协调需要进一步指导和培训。
四是对“一堂好课”的标准莫衷一是,我们急需评价标准的指导。
培训需求分析含义:
在规划与设计每项培训活动之前,由培训部门、主管人员、工作人员等采取各种方法和技术,对各种组织及其成员的目标、知识、技能等方面进行系统的鉴别与分析,以确定是否需要培训及培训内容的过程。
培训需求分析作用:
1、寻找组织绩效问题产生的原因
2、确认差距
3、了解员工个人需求,赢得组织成员的支持
4、建立培训信息资料库
5、确定培训项目的成本与价值
执业药师考试介绍:
全国执业药师资格考试由中华人民共和国人力资源和社会保障部、国家食品药品监督管理总局共同负责执业药师资格考试工作。国家食品药品监督管理局负责组织拟订考试科目和考试大纲,编写培训教材,建立试题库及考试命题工作。按照培训与考试分开的原则,统一固化并组织考前培训。
1. 引言
引言是对这份软件产品需求分析报告的概览,是为了帮助阅读者了解这份文档是如何编写的,并且应该如何阅读、理解和解释这份文档。
1.1 编写目的
说明这份软件产品需求分析报告是为哪个软件产品编写的,开发这个软件产品意义、作用、以及最终要达到的意图。通过这份软件产品需求分析报告详尽说明了该软件产品的需求规格,包括修正和(或)发行版本号,从而对该软件产品进行准确的定义。
如果这份软件产品需求分析报告只与整个系统的某一部分有关系,那么只定义软件产品需求分析报告中说明的那个部分或子系统。
1.2 项目风险
具体说明本软件开发项目的全部风险承担者,以及各自在本阶段所需要承担的主要风险,首要风险承担者包括:
● 任务提出者;
● 软件开发者;
● 产品使用者。
1.3 文档约定
描述编写文档时所采用的标准(如果有标准的话),或者各种排版约定。排版约定应该包括:
● 正文风格;
● 提示方式;
● 重要符号;
也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述是否都有其自己的优先级。
1.4 预期读者和阅读建议
列举本软件产品需求分析报告所针对的各种不同的预期读者,例如,可能包括:
● 用户;
● 开发人员;
● 项目经理;
● 营销人员;
● 测试人员;
● 文档编写入员。
并且描述了文档中,其余部分的内容及其组织结构,并且针对每一类读者提出最适合的文档阅读建议。
1.5 产品范围
说明该软件产品及其开发目的的简短描述,包括利益和目标。把软件产品开发与企业目标,或者业务策略相联系。
描述产品范围时需注意,可以参考项目视图和范围文档,但是不能将其内容复制到这里。
1.6 参考文献
列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:
● 本项目的合同书;
● 上级机关有关本项目的批文;
● 本项目已经批准的计划任务书;
● 用户界面风格指导;
● 开发本项目时所要用到的标淮;
● 系统规格需求说明;
● 使用实例文档;
● 属于本项目的其它己发表文件;
● 本软件产品需求分析报告中所引用的文件、资料;
● 相关软件产品需求分析报告;
为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:
● 标题名称;
● 作者或者合同签约者;
● 文件编号或者版本号;
● 发表日期或者签约日期;
● 出版单位或者资料来源。
2. 综合描述
这一部分概述了正在定义的软件产品的作用范围以及该软件产品所运行的环境、使用该软件产品的用户、对该软件产品己知的限制、有关该软件产品的假设和依赖。
2.1 产品的状况
描述了在软件产品需求分析报告中所定义的软件产品的背景和起源。说明了该软件产品是否属于下列情况:
● 是否是产品系列中的下一成员;
● 是否是成熟产品所改进的下一代产品;
● 是否是现有应用软件的替代品(升级产品);
● 是否是一个新型的、自主型的产品。
如果该软件产品需求分析报告定义的软件系统是:
● 大系统的一个组成部分;
● 与其它系统和其它机构之间存在基本的相互关系。
那么必须说明软件产品需求分析报告定义的这部分软件是怎样与整个大系统相关联的,或者(同时)说明相互关系的存在形式,并且要定义出两者之间的全部接口。
2.2 产品的功能
因为将在需求分析报告的第4部分中详细描述软件产品的功能,所以在此只需要概略地总结。仅从业务层面陈述本软件产品所应具有的主要功能,在描述功能时应该 针对每一项需求准确地描述其各项规格说明。如果存在引起误解的可能,在陈述本软件产品主要功能的作用领域时,也需要对应陈述本软件产品的非作用领域,以利 读者理解本软件产品。
为了很好地组织产品功能,使每个读者都容易理解,可以采用列表的方法给出。也可以采用图形方式,将主要的需求分组以及它们之间的联系使用数据流程图的顶层图或类图进行表示,这种表示方法是很有用的。
参考用户当前管理组织构架,了解各个机构的主要职能,将有助于陈述软件产品的主要功能。
2.3 用户类和特性
确定有可能使用该软件产品的不同用户类,并且描述它们相关的特征。往往有一些软件需求,只与特定的用户类有关。描述时,应该将该软件产品的重要用户类与非重要用户类区分开。
用户不一定是软件产品的直接使用者,通过报表、应用程序接口、系统硬件接口得到软件产品的数据和服务的人、或者机构也有他们的需求。所以,应该将这些外部需求视为通过报表、应用程序接口、系统硬件接口附加给软件产品的附加用户类。
2.4 运行环境
描述了本软件的运行环境,一般包括:
● 硬件平台;
● 操作系统和版本;
● 支撑环境(例如:数据库等)和版本;
● 其它与该软件有关的软件组件;
● 与该软件共存的应用程序。
2.5 设计和实现上的限制
确定影响开发人员自由选择的问题,并且说明这些问题为什么成为一种限制。可能的限制包括下列内容:
● 必须使用的特定技术、工具、编程语言和数据库;
● 避免使用的特定技术、工具、编程语言和数据库;
● 要求遵循的开发规范和标准
例如,如果由客户的公司或者第三方公司负责软件维护,就必须定义转包者所使用的设计符号表示和编码标准;
● 企业策略的限制;
● 政府法规的限制;
● 工业标准的限制;
● 硬件的限制
例如,定时需求或存储器限制;
● 数据转换格式标淮的限制。
2.6 假设和约束(依赖)
列举出对软件产品需求分析报告中,影响需求陈述的假设因素(与己知因素相对立)。如果这些假设因素不正确、不一致或者被修改,就会使软件产品开发项目受到影响。这些假设的因素可能包括:
● 计划使用的商业组件,或者其它软件中的某个部件;
● 假定产品中某个用户界面将符合一个特殊的设计约定;
● 有关本软件用户的若干假定(例如:假定用户会熟练使用sql语言。);
● 有关本软件开发工作的若干假定(例如:用户承诺的优惠、方便、上级部门给予的特殊政策和支持等。);
● 有关本软件运行环境的一些问题;
此外,确定本软件开发项目对外部约束因素所存在的依赖。有关的约束可能包括:
● 工期约束;
● 经费约束;
● 人员约束;
● 设备约束;
● 地理位置约束;
● 其它有关项目约束;
3. 外部接口需求
通过本节描述可以确定,保证软件产品能和外部组件正确连接的需求。关联图仅能表示高层抽象的外部接口,必须对接口数据和外部组件进行详细描述,并且写入数 据定义中。如果产品的不同部分有不同的外部接口,那么应该把这些外部接口的全部详细需求并入到这一部分实例中。
注意:必须将附加用户类的特征与外部接口需求加以区分,附加用户类的特征描述的是通过接口取得软件产品的数据和服务的人的需求;而外部接口需求描述的是接口本身的需求。
3.1 用户界面
陈述需要使用在用户界面上的软件组件,描述每一个用户界面的逻辑特征。必须注意,这里需要描述的是用户界面的逻辑特征,而不是用户界面。以下是可能包括的一些特征:
● 将要采用的图形用户界面(gul)标准或者产品系列的风格;
● 有关屏幕布局或者解决方案的限制;
● 将要使用在每一个屏幕(图形用户界面)上的软件组件,可能包括:
选单;
标准按钮;
导航链接;
各种功能组件;
消息栏;
● 快捷键;
● 各种显示格式的规定,可能包括:
不同情况下文字的对齐方式;
不同情况下数字的表现格式与对齐方式;
日期的表现方法与格式;
计时方法与时间格式;
等等。
● 错误信息显示标准;
对于用户界面的细节,例如:一个特定对话框的布局,应该写入具体的用户界面设计说明中,而不能写入软件需求规格说明中。
如果采用现成的、合适的用户界面设计规范(标准),或者另文描述,可以在这里直接说明,并且将其加入参考文献。
3.2 硬件接口
描述待开发的软件产品与系统硬件接口的特征,若有多个硬件接口,则必须全都描述。接口特征的描述内容可能包括:
● 支持的硬件类型;
● 软、硬件之间交流的数据;
● 控制信息的性质;
● 使用的通讯协议;
3.3 软件接口
描述该软件产品与其它外部组件的连接,这些外部组件必须明确它们的名称和版本号以资识别,可能的外部组件包括:
● 操作系统;
● 数据库;
● 工具;
● 函数库;
● 集成的商业组件
说明:这里所说的“集成的商业组件”,是指与系统集成的商业组件,而不是与软件产品集成的商业组件。例如:中间件、消息服务,等等。
描述并且明确软件产品与软件组件之间交换数据或者消息的目的。描述所需要的服务,以及与内部组件通讯的性质。确定软件产品将与组件之间共享的数据。如果必 须使用一种特殊的方法来实现数据共享机制,例如:在多用户系统中的一个全局数据区,那么就必须把它定义为一种实现上的限制。
3.4 通讯接口
描述与软件产品所使用的通讯功能相关的需求,包括:
● 电子邮件;
● web浏览器;
● 网络通讯标准或者协议;
● 数据交互用电子表格;
必须定义相关的:
● 消息格式;
● 通讯安全或加密问题;
● 数据传输速率;
● 同步和异步通讯机制;
4. 系统功能需求
需要进行详细的需求记录,详细列出与该系统功能相关的详细功能需求,并且,唯一地标识每一项需求。这是必须提交给用户的软件功能,使得用户可以使用所提供 的功能执行服务或者使用所指定的使用实例执行任务。描述软件产品如何响应己知的出错条件、非法输入、非法动作。
如果每一项功能需求都能用一项,也只需要用一项测试用例就能进行验证,那么就可以认为功能需求已经适当地进行描述了。如果某项功能需求找不到合适的测试用例,或者必须使用多项测试用例才能验证,那么该项功能需求的描述必然存在某些问题。
功能需求是根据系统功能,即软件产品所提供的主要服务来组织的。可以通过使用实例、运行模式、用户类、对象类或者功能等级来组织这部分内容,也可以便用这些元素的组合。总而言之,必须选择一种是读者容易理解预期产品的组织方案。
用简短的语句说明功能的名称,例如:“4.1系统参数管理”。按照服务组织的顺序,逐条阐述系统功能。无论说明的是何种功能,都应该针对该系统功能重复叙述4.1~ 4.3这三个部分。
可以通过各种方式来组织这一部分内容,例如采用:使用实例、运行模式、用户类、对象类、功能等级等,也可以采用它们的组合。其最终目的是,让读者容易理解 即将开发的软件产品。一般来说,每个使用实例都对应一个系统功能,因而按照使用实例来组织内容比较容易让用户理解。
对应一些被共享的独立使用实例,可以定义一些公用系统功能。
必须特别注意的是,在2.2节“产品的功能”中描述的全部需求,以及它们的规格说明;必须在某个系统功能描述中有所反映,而且不应重复。
4.1 说明和优先级
对该系统功能进行简短的说明,并且指出该系统功能的优先级是:高、中、还是低。需要的话,还可以包括对特定优先级部分的评价,例如:利益、损失、费用和风险,其相对优先等级可以从1(低)到9(高)。
4.2 激励/响应序列
列出输入激励(用户动作、来自外部设备的信号或者其它触发)并且定义针对这——功能行为的系统响应序列,这些序列将与使用实例中相关的对话元素相对应。
描述激励/响应序列时,不仅需要描述基本过程,而且应该描述可选(扩充)过程,包括例外(引起任务不能顺序完成的情况称为例外)。疏忽了可选过程,有可能影响软件产品的功能;如果遗漏例外过程,则有可能会引发系统崩溃。
如果采用流程图来描述激励/响应序列,比较容易让用户理解。
4.3 输入/输出数据
列出输入数据(用户输入、来自外部接口的输入或者其它输入)并且定义针对这些输入数据的处理(计算)方法,以及相应地输出数据,描述对应区别:输入数据和输出数据。
当有大量数据需要描述时,也可以分类描述数据,并且注明各项数据的输入、输出属性。
对于每一项数据,均需要描述:
● 数据名称;
● 实际含义;
● 数据类型;
● 数据格式;
● 数据约束;
对于复杂的处理方法,仅仅给出算法原理是不够的,必须描述详细的计算过程,并且列出每一步具体使用的实际算式;如果计算过程中涉及查表、判断、迭代等处理方法,应该给出处理依据和相关数据。如果计算方法很简单,也可以将其从略,不加描述。
5. 其它非功能需求
在这里列举出所有非功能需求,主要包括可靠性、安全性、可维护性、可扩展性、可测试性等。
5.1 性能需求
阐述不同应用领域对软件产品性能的需求,并且说明提出需求的原理或者依据,以帮助开发人员做出合理的设计选择。尽可能详细地描述性能需求,如果需要,可以针对每个功能需求或者特征分别陈述其性能需求。在这里确定:
● 相互合作的用户数量;
● 系统支持的并发操作数量;
● 响应时间;
● 与实时系统的时间关系:
● 容量需求
存储器;
磁盘空间;
数据库中表的最大行数。
5.2 安全措施需求
详尽陈述与软件产品使用过程中可能发生的损失、破坏、危害相关的需求。定义必须采取的安全保护或动作,以及必须预防的潜在危险动作。明确软件产品必须遵从的安全标准、策略、或规则。
5.3 安全性需求
详尽陈述与系统安全性、完整性问题相关的需求,或者与个人隐私问题相关的需求。这些问题将会影响到软件产品的使用,和软件产品所创建或者使用的数据的保 护。定义用户身份认证,或备授权需求。明确软件产品必须满足的安全性或者保密性策略。也可以通过称为完整性的质量属性来阐述这些需求。一个典型的软件系统 安全需求范例如下:“每个用户在第一次登录后,必须更改他的系统预置登录密码,系统预置的登录密码不能重用。”
5.4 软件质量属性
详尽陈述对客户和开发人员至关重要的在软件产品其它方面表现出来的质量功能。这些功能必须是确定的、定量的、在需要时是可以验证的。至少也应该指明不同属性的相对侧重点,例如:易用性优于易学性,或者可移植性优于有效性。
5.5 业务规则
列举出有关软件产品的所有操作规则,例如:那些人在特定环境下可以进行何种操作。这些本身不是功能需求,但是他们可以暗示某些功能需求执行这些规则。一个 业务规则的范例如下:“进行达到或者超过10,000,00元人民币的储蓄业务时,必须通过附加的管理员认证。”
列举业务规则时,可以根据规则的数量,选取合适的编目方式。
5.6 用户文档
列举出将与软件产品一同交付的用户文档,并且明确所有己知用户文档的交付格式或标准,例如:
● 安装指南
纸质文档,16开本;
● 用户手册
纸质文档,16开本;
● 在线帮助
● 电子文档,与软件产品一同分发、配置;
● 使用教程电子文档,与软件产品一同分发、配置。
6. 词汇表
列出本文件中用到的专业术语的定义,以及有关缩写的定义(如有可能,列出相关的外文原词)。为了便于非软件专业或者非计算机专业人士阅读软件产品需求分析 报告,要求使用非软件专业或者非计算机专业的术语描述软件需求。所以这里所指的专业术语,是指业务层面上的专业术语,而不是软件专业或者计算机专业的术 语。但是,对于无法回避的软件专业或者计算机专业术语,也应该列入词汇表并且加以准确定义。
7. 数据定义
数据定义是一个定义了应用程序中使用的所有数据元素和结构的共享文档,其中对每个数据元素和结构都准确描述:含义、类型、数据大小、格式、计量单位、精度 以及取值范围。数据定义的维护独立于软件需求规格说明,并且在软件产品开发和维护的任何阶段,均向风险承担者开放。
如果为软件开发项目创建一个独立的数据定义,而不是为每一项特性描述有关的数据项,有利于避免冗余和不一致性。但是却不利于多人协同编写需求分析报告,容 易遗漏数据,也不方便阅读。因此还是建议为每个特性描述有关的数据项,汇总数据项创建数据定义,再根据数据定义复核全部数据,使得它们的名称和含义完全一 致。必须注意的是,为了避免二义性,在汇总数据项时应该根据数据项所代表的实际意义汇总,而不是根据数据项的名称汇总。
在数据定义中,每个数据项除了有一个中文名称外,还应该为它取一个简短的英文名称,该英文名称应该符合命名规范,因为在软件开发时将沿用该英文名称。可以使用等号表示数据项,名称写在左边,定义写在右边。常见数据项的描述方式如下:
● 原数据元素
一个原数据元素是不可分解的,可以将一个数量值赋给它。定义原数据元素必须确定其
含义、类型、数据大小、格式、计量单位、精度以及取值范围。采用以星号为界的一行
注释文本,描述原数据元素的定义。
● 选择项
选择项是一种只可以取有限离散值的特殊原数据元素,描述时一一枚举这些值,并用方
括号括起来写在原数据元素的定义前。在两项离散值之间,使用管道符分隔。
● 组合项
组合项是一个数据结构或者记录,其中包含了多个数据项。这些数据项可以是原数据元
素,也可以是组合数据项,各数据项之间用加号连接。其中每个数据项都必须是数据定
义中定义过的,结构中也可以包括其它结构,但是绝对不允许递归。如果数据结构中有
可选项,使用圆括号把该项括起来。
● 重复项
重复项是组合项的一种特例,其中有一项将有多个实例出现在数据结构中,使用花括号
把该项括起来。如果知道该项可能允许的范围,就按“最小值:最大值”的形式写在花
括号前。
8. 分析模型
这是一个可选部分,包括或涉及到相关的分析模型,例如:
● 数据流程图;
● 类图;
● 状态转换图;
● 实体-关系图。
9. 待定问题列表
编辑一张在软件产品需求分析报告中待确定问题时的列表,把每一个表项都编上号,以便跟踪调查。
需求分析是项目开发的基础,基础打的牢不牢直接关系到后面所有的工作,是项目实施成败的关键
项目经理博客
总体上说,我们的需求分析是做了,但是做得很不够,我们做的需求只解决了我们能做出这样的项目,但是没有解决这样的项目是不是真就是客户想要的。造成这种状况的原因主要是下面几个情况:
客户本身说不清楚
文物网是这样,中彰国际更是这样,但是这不能怪客户,毕竟客户在软件方面的知识要少的多,也没有相关的经验,可能心里只有一个想要的软件的轮廓,于是可能会要求我们去替他们来完整这个轮廓的细节,而我们的能力、我们能否真正站在客户角度去搜集和整理这些需求,就决定了这个需求的完整性和有效性。
需求自身经常变动
随着客户对这个项目越来越深刻的理解,那么可能他的需求也会随之改变,这些变化的可能性越大项目风险就会越大,我们在需求分析的时候就要充分考虑到哪些需求是相对固定的需求,哪些可能会是产生变动的需求,考虑到他的可变性,这样设计功能和数据库的时候不致因为后面的变动而影响整个工程。
分析人员或客户理解有误
毕竟,不是每个分析人员都是专业而合格的,为避免这种情况的发生,需求分析必须要有审核制度,公司自己内部要审核一遍,客户再审一遍,提出意见,修改后双方共同评审签字,确认。
由此出现的问题:
a) 需求分析过于笼统,只关注到面上,没有关注到点上,开发出来的东西在具体的细节上和客户的理解有误差,并且无法严格界定是否属于需求变更。中彰的方案就是这样的。
b) 需求报告只求我们这方评审通过,不去关心客户的评审,认为只要客户签字认可就行。虽然签字认可能够给日后出现问题时划清我们的责任,但是不能保证使项目实施成功。
c) 需求分析中含有技术实施上有难度的功能,一味的求全和盲目按照客户的设想,受客户影响过大,毕竟,很多时候,客户的想法在实际实施过程中是不现实的,或者可以有更为简便的方法来替代的。如中彰国际的在线交易功能,后台大批量邮件群发功能。
d) 对双方已经确定的需求,实现以后并不适合客户使用,需要按照变更手续执行的时候,客户可能会纠缠,提出“你们是专业人士,你们应该事先能提醒我们可能会出现这种问题”并以此来把责任推给我们,而我们又不好完全按照变更手续执行,因为可能激化双方的矛盾,比如508的批量处理功能,因为属于人事管理比较专业的细节问题,需求分析师开始没有对客户业务熟悉到如此细致的地步,而客户也没有过多关注这些细节,导致软件的某些功能不合用,较为繁琐,而重新按着客户的意见修改的话工作量比较大,导致成本增加、工期延长。
e) 项目的成熟度受客户预算的限制。大部分客户在项目投入上都是有预算的,在成本有上限的前提下,项目的功能设计(软件的成熟度)方面必然受一定影响,毕竟功能越多越完善,相应的开发成本就越高。这种功能上的不完善需要事先告知客户并得到理解。
f) 此项工作的反复造成思想上的倦怠,使需求分析最后虎头蛇尾。需求分析是一项繁琐枯燥的工作,需要和客户之间不断的商讨、确认和反复,另外由于大部分的客户虽然安排专人负责这项工作,但是该人并不只做这项工作,特别当他被很多其他的事情缠身的时候,而无心细看提交过去的需求报告的时候,他很可能会给你一个错觉,让你认为他已经真正的理解并认可了你的设计。结论
a) 需求分析是整个项目管理中需要重点控制的几个关键节点之一,首先思想上一定要重视。
b) 需求分析报告的编写者要参与到需求的搜集工作中,准确领会客户的意图,并转化成软件能够实现的功能。对于说不清楚需求的客户,要善于问关键问题,引导客户提出自己的需求。可以采取的措施是事先编制一个问卷调查之类的文档,详细列举需要客户回答的问题,以便防止遗漏。
c) 需求报告的编写者要能够对客户需求进行深入分析,区别出哪些需求存在日后变更的可能,哪些需求属于相对固定的,哪些需求能够实现,哪些需求需要变通才能实现,以便于指导后面的功能设计。
d) 需求分析报告对功能细节的描述不能有歧义,描述一定要全面、准确,防止开发方和客户只见对同一个问题有两个截然不同的理解。可以通过评审,用大家的力量来避免这种情况发生
e) 需求报告的每个关乎功能的描述都要让客户明白和理解,客户在理解之上的确认才能够保证日后一旦出现问题不致出现双方互相推托责任纠缠不清的情况。
f) 需求报告一定要经过一个有技术人员和业务人员参加的评审,要充分发挥团队的力量,重视每个人的才智,一个模块一个功能的逐一的过,让大家来共同找出需求报告里不合理的、有歧义的、不完善的、遗漏的等等问题
g) 帮助客户去理解提交给他的需求分析报告而不是只等签字,对于有能够用好几种方式实现的功能,尽量做到能让客户去比较和选择。不要让客户对报告中的部分产生歧义。只有客户对报告的完全的理解,才能在日后客户提出的修改被认为是需求变更的时候能够得到客户的理解
h) 最后,需求分析报告一定要双方共同签字确认
88位用户关注
22位用户关注
68位用户关注
42位用户关注
63位用户关注
60位用户关注
69位用户关注