`
holoblog
  • 浏览: 1264370 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19541
文章分类
社区版块
存档分类
最新评论

需求作业...

 
阅读更多

最近blog也没有什么好写的,写点老师布置的作业吧.

上个星期老师布置了一次需求作业,摘录如下:

2 查阅一些有关介绍需求工程或软件项目管理的网站,读一篇写得不错的文章,用12页概括文章的内容(要求注明文章来源)。
3
人们已经认识到软件项目失败的直接原因主要是(1)缺乏用户的参与;(2) 不完整的需求描述;(3)不完整的SRS;(4)将三个层次的需求混淆在一起。请你结合客户的10项权利和10项义务,谈一谈做好软件需求应该注意的问题。

自己的第3题的回答就将第2道题当成为客户的需求分析了一遍..

原文如下:

如果把做作业也可以看成一个项目的话,作业要求就是客户的需求,对作业要求的分析就是需求分析,客户是老师,用户是批改作业的助教,我就是需求分析员。客户的需求并不很明确。“写12页纸”,每一个人都不同的理解方法。五号字写12,或者是一号字写12?是wordA4纸写12页,还是800字格子纸写12页?客户认为这是很日常的问题,如同怎么洗澡。开发方可能与客户的理解完全不同。模糊的需求造成了需求的歧异性。而且我做作业并没有<personname w:st="on" productid="向">向</personname>老师询问什么,没有做好需求调研,只是按照自己的想法去理解写12页纸。开发方与客户缺乏良好的沟通,就立即动手开始做项目,这是一种非常危险的行为。因为开发时,自己觉得very cool的功能,很有可能不被用户和客户们认可。如果按照自己的理解用一号字写了12页纸,恐怕下次上课自己的名字就会被老师打到ppt里去了。

假设我去做进一步的调研(询问老师):“请问老师12页什么意思?”如果老师很忙,没有什么时间,可能这样回答:“就是12页作业纸。”如果这样就完成了一次调研,其实我什么东西也没有得到。我当时如果认为客户方清晰的描述需求是项义务,但是客户方有可能也认为“作业纸”的回答已经是清晰的描述。我当然需要进一步的要求客户方加以描述,这<personname w:st="on" productid="时">时</personname>老师可能不耐烦的拿出过去别人做过的作业让我看。我必须从那堆作业中对作业纸的概念做一个概括。如果老师拿出来的作业纸只是过去上交作业纸的某种特殊的类型(例如无格纸),这就有可能使我对“作业纸”这个概念的概括产生偏差。最后交的作业就会用无格纸写。在项目审批阶段,助教认为本次作业的作业纸不符合作业的规定,作业应当重新完成。这种严重的后果是谁造成?其实当初我可以这样提问:“作业纸是指的这种纸吗?”(我可以事先准备几种可能的作业纸)老师会对此进行选择。如果老师对这些纸都不满意,可以让老师讲出这种纸到底是什么样式,什么大小,有什么具体要求。也可以让老师找到相似的纸样。我要纸的具体信息,老师有可能不知道,或者不耐烦,或者知道也说不清楚。老师那里可能再也得不到什么有用的信息。

下面去调查助教们。助教可能很多,可能权利还不一样。得到的信息可能五花八门。有要求用800字方格纸;有希望用湖大作业本;有的认为交上来就行,不管什么纸。我认为要求最苛刻的是需求的最好的约束条件。到底用什么作业纸的矛盾冲突应该由助教,老师和我协商解决。

假设我们开了一次会议,我在会上提出我的解决方案:用A4纸写(这种方案对我有利)。老师和助教也都认为这个方案不错。于是我们定下用A4纸写。这样为以后留下的一点隐患。我如果当时有很好的洞察力就应该发现以后还要引入另外的附加问题:用什么字体,用什么字号写,用不用斜体、粗体、下划线写,有没有什么格式等等遗漏的需求问题。可以这样认为:一旦提出了更好的解决方案,就一定会带来新的问题。需求是无穷无尽的,完美的需求是不存在的。只要做到客户满意即可。

假设以上问题都已经搞定,那么看看现在我已经收集到什么信息:

“查阅一些有关介绍需求工程或软件项目管理的网站”得到题目范围是“需求工程”和“软件项目管理”的领域。如果我还不知道这两个概念,可以上网查阅。反正一句话:每个词我都要明白,并且能用清晰的术语<personname w:st="on" productid="向">向</personname>老师和助教表达我的观点。

“读一篇写得不错的文章”,这句话有很大的迷惑性。首先写得不错是什么概念?这是一个模糊词。我感觉我这篇文章也写的不错,贴到网上应该也也符和以上要求。假如我们不能对这个“写的不错”有什么准确的理解,可以用“写的很差”的反面定义。总之,需求的过程就是将模糊的东西明确下来的过程。我对写的不错的定义是:阅读此篇文章的人超过千人,并且有60%以上的评论者认为有指导意义。下面我进一步分析:读一篇其实是一种暗示,老师的意思应该是至少读一篇,虽然只是写一篇文章的概括。我认为已经将这个潜在的需求挖掘出来。

“用12页概括文章的内容”这一个限制条件,经过我先前做的调研,可以这样清晰的描述。用A4纸,白纸黑字,字体:宋体,字体大小:五号,常规字体无加粗等特殊表现形式,无特殊文体格式。字数限制:12页,无其他特殊要求。文字内容:对需求工程或软件项目管理的写的不错的文章(前有定义)的内容概括。

“(要求注明文章来源)”这也是约束条件。而且是必须做到的。

此外还有特殊的规定:“<chsdate w:st="on" isrocdate="False" islunardate="False" day="13" month="9" year="2004"><span lang="EN-US"><font face="Times New Roman">2004-9-13</font></span></chsdate>号上交”这是时间约定。

现在我来区分业务、用户、功能和非功能需求。业务需求:老师的作业要求;用户需求:各个助教对本次作业的要求。可以看到各个助教对老师的作业要求并没有异议。更多的用户需求:字迹工整,页面整洁等等。但是我是用A4纸打印出来,这些需求都可以满足。我的功能需求:有对以上老师布置作业的详尽解答。非功能需求:解答简单易懂,符合软件需求这门课的专业术语。(省略SRS的制作和签约)

假设我现在有台高智能的计算机,我只要将以上的规约转变为它能懂的字符即可,现在一切搞定。就差这台计算机了……

从纯理论来说,在需求这个阶段,客户和需求分析员两个角色就像是在下棋,最终的目标是要走成和棋。下棋的过程,便是更改需求的过程。客户不会谦让你,每次更改需求都有可能对项目造成不可估量的后果。那你就必须是下棋的高手。每走一步都要小心谨慎,走错一步都有可能成为死棋。不管将死谁,对于项目组来说,都是种损失。如果需求分析员能够预测到客户下一步棋,那么走和棋的概率将增加。现在所有的方法论的东西都只能增加你走和棋的概率,不能保障你一定能走成和棋。下棋用的棋谱是这样,关于软件需求的各种期刊杂志也是这样。

“一是理论,二是实践经验。这两者在任何时候都缺一不可。”这真要感谢我的<personname w:st="on" productid="马哲">马哲</personname>老师和我的良好记忆力。需求分析员这一角色不是单靠某某理论就能胜任的。没有和客户打交道的经验,没有宏观和微观把握事情的能力,很难担当这一角色。能够从细节中推出正确的需求,也能从客户和用户的利益冲突的地方找到潜在的需求。如此看来,这一种角色很难担当,甚至不可能有人担当这一角色。但实际的情况并非如此。这就想我们编程一样:操作系统里有bug,编译环境中也有bug,谁能保证自己的程序中没有bug呢?需求的缺陷就向bug一样难以排除。既然我们可以控制bug的数量,就也可以控制需求的缺陷。从另一个角度看,其实需求缺陷就是bug。首先我们必须明确一个结论:“没有完美的需求”。现在我们用一大堆的约束条件来约束需求,我们只是在满足客户的条件下达到一种可行解,而不是最优解。虽然客户希望随时随地改变这些约束条件,然而开发方却希望将这些约束条件尽可能固定下来。需求的变动将对项目的完工产生致命的影响。除非客户非要对需求修改,并承担项目延期发布造成的后果。而且项目的后期,确保需求不被改动。否则这个项目可能永远都完成不了。如果非要改动,就放到下一个版本去吧。

不管怎么说,需求是最耗费脑力活动的事情。也是软件工程的起始,如果起点就错了,最后的项目不可能让客户满意。但是即使起点对了,最后的项目也不一定会让客户满意。因为需求这个环节毕竟是软件工程流程中的一环而已。

当初为了把字数限制在3页字以内,就省略了很多需求的过程.

现在感觉这份需求分析还是有许多要改进的地方.

分享到:
评论

相关推荐

    软件需求工程大作业.pdf

    软件需求工程大作业.pdf软件需求工程大作业.pdf软件需求工程大作业.pdf软件需求工程大作业.pdf软件需求工程大作业.pdf软件需求工程大作业.pdf软件需求工程大作业.pdf软件需求工程大作业.pdf软件需求工程大作业.pdf

    软件需求工程大作业.docx

    软件需求工程大作业.docx软件需求工程大作业.docx软件需求工程大作业.docx软件需求工程大作业.docx软件需求工程大作业.docx软件需求工程大作业.docx软件需求工程大作业.docx软件需求工程大作业.docx

    西北工业大学软件学院软件需求工程-大作业.zip

    《西北工业大学软件学院软件需求工程-大作业》是针对软件开发过程中的一个重要环节——软件需求工程,进行深入探讨和实践的教育资源。这个压缩包包含了针对该主题的大作业内容,旨在帮助学习者理解和掌握软件需求...

    西北工业大学软件学院软件需求工程实验课作业.zip

    在本压缩包“西北工业大学软件学院软件需求工程实验课作业.zip”中,包含了与软件需求工程相关的实验课程作业。这是一份来自西北工业大学软件学院的教学资料,旨在帮助学生理解和掌握软件开发过程中的需求分析和管理...

    期末作业.zip

    【标题】"期末作业.zip"通常是一个包含学生期末项目的压缩文件,这可能是一个软件开发、数据分析、编程项目或任何其他形式的学术作业。在IT领域,这样的文件常常用于提交编程作业,因为它便于传输大量代码、文档和...

    软件需求工程作业.doc

    2012—2013学年第一学期期末考试 《需求工程》大作业 姓名: 罗吟吟 班级:A1013 学号:03 1. 假设让你开发一个搜索引擎网站,选择任意3种需求类别进行描述。(建议从功能需求, 质量特性,行业规则,约束方面进行重点...

    30-孙思-金心友需求文档写作作业.rp

    30-孙思-金心友需求文档写作作业.rp

    Web前端大作业.zip

    1. **Web大作业.docx**:这是一个文档文件,很可能包含了项目的需求说明、设计思路、技术选型以及注意事项等内容。在开始项目之前,详细阅读这份文档至关重要,它能帮助我们理解项目的整体框架和实现细节。 2. **...

    在线作业管理系统需求分析.doc

    在线作业管理系统需求分析.doc

    软工大作业.rar

    【描述】:“软工大作业.rar”的描述是文件本身的名字,这没有提供额外的具体信息,但我们可以合理推断,这个压缩包可能包含了一整个学期或项目的作业,涵盖了软件工程的不同方面,如需求分析、系统设计、编码实现、...

    软件工程作业.zip

    这份名为"软件工程作业.zip"的压缩包文件可能是某位学生或从业者完成的课程任务,它可能包含了对软件开发过程的深入理解和实践。下面我们将详细探讨软件工程中的关键知识点。 1. **需求分析**:这是软件工程的第一...

    此次作业.zip

    很抱歉,但根据您给出的信息,"此次作业.zip" 的描述太过简洁,没有提供任何具体的IT知识点。标签为空,也无法提供额外的线索。压缩包子文件的名称同样是"此次作业",这同样没有给出具体的学习主题或技术细节。在...

    大作业.zip

    【大作业.zip】是一个压缩包文件,通常用于存储多个相关文件或文件夹,便于传输和保存。在IT行业中,这种格式常被用来分享项目、代码、文档等资源。在这个特定的案例中,压缩包内只有一个名为"大作业"的文件,这可能...

    Y2试卷作业.zip

    【标题】"Y2试卷作业.zip"提示我们这可能是一个包含第二学年(Y2)课程作业或测试的压缩文件,很可能与计算机科学或信息技术相关的课程有关。由于它是一个ZIP文件,我们可以推断里面可能包含了多种类型的文件,如...

    android开发期末大作业.zip.zip

    【标题】:“Android开发期末大作业.zip.zip”这个文件标题暗示了这可能是一个关于Android应用程序开发的课程期末项目。这通常涉及到使用Java或Kotlin语言,Android Studio IDE,以及遵循Google的Android SDK来构建...

    103,web前端寒假作业.zip

    【寒假作业.doc】:这个文件很可能是Web前端寒假作业的具体内容,包括练习题目、项目需求、学习资源推荐等。通常,Web前端的学习作业可能会涵盖以下几个方面: 1. **HTML基础**:学习基本的HTML5语义元素,理解不同...

    适用画板工具批改作业.rar

    综上所述,"适用画板工具批改作业.rar" 提供的工具集涵盖了在线教育中作业批改的核心需求,结合Vue.js和Canvas技术,实现了跨平台、互动性强、用户体验良好的作业批改功能。无论是移动端还是桌面端,都能为教师提供...

    web网页大作业.zip

    【标题】:“web网页大作业.zip”是一个与Web开发相关的学习资源压缩包,很可能包含了某个课程或项目的大作业内容。这个文件可能包含了学生或学习者需要完成的网页设计和开发任务,或者是教师分配的实践练习。 ...

Global site tag (gtag.js) - Google Analytics