﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-见仁见智-随笔分类-需求分析/系统设计</title><link>http://www.blogjava.net/diegoyun/category/21064.html</link><description>用程序员的眼光看世界</description><language>zh-cn</language><lastBuildDate>Thu, 05 Apr 2007 10:36:46 GMT</lastBuildDate><pubDate>Thu, 05 Apr 2007 10:36:46 GMT</pubDate><ttl>60</ttl><item><title>应用开发的思考2------编写好的需求分析书</title><link>http://www.blogjava.net/diegoyun/archive/2007/04/05/java_development.html</link><dc:creator>Diego</dc:creator><author>Diego</author><pubDate>Thu, 05 Apr 2007 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/diegoyun/archive/2007/04/05/java_development.html</guid><wfw:comment>http://www.blogjava.net/diegoyun/comments/108714.html</wfw:comment><comments>http://www.blogjava.net/diegoyun/archive/2007/04/05/java_development.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/diegoyun/comments/commentRss/108714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/diegoyun/services/trackbacks/108714.html</trackback:ping><description><![CDATA[<p>应用开发的思考2<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; 我发现多数需求分析说明书编写得毫无价值,多数公司的做法是写完该需求说明书之后,就把它扔一边,埋头苦干写程序了.一方面这和公司对需求分析的认识不够有关,另一方面,也和需求分析编写方式不尽合理,以至它的价值难以体现有关.<br>&nbsp;&nbsp;&nbsp; 软件程序,从最终的抽象意义而言,是计算机系统对自然语言的翻译.而需求分析充当了翻译任务的急先锋.很难想象,如果没有一份好的需求说明书,针对客户含糊不清的自然语言描述,开发者能做出一个符合要求的优秀软件.然而,什么是好的需求说明书?应具备什么样的特点?我认为好的需求说明书应有由如下三个阶段,经多次循环反馈而逐渐形成:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;1 调研阶段:<br>&nbsp;客户和需求分析师讨论系统该具有的功能.客户希望系统能做什么,达到什么样的效果.需求分析师的责任是认真听取客户的原始言语,通过讨论,语言的提炼和客户达成共识,最终得到确切的需求--客户希望系统能做什么.这一过程运用的是自然语言,需求分析师必须具备良好的沟通能力,文字表达能力,并且必须具备客户领域内的相关业务知识,不使用用户不懂的计算机专业词汇.<br>&nbsp;&nbsp;&nbsp; 参与人员:需求分析师,客户,系统设计师.<br>&nbsp;&nbsp;&nbsp; 运用工具:自然语言.<br>&nbsp;&nbsp;&nbsp; 阶段成果:调研记录书.</p>
<p>&nbsp;2 确定功能结构和设计系统原型:<br>&nbsp;需求分析师和系统设计师讨论客户的需求.需求分析师针对调研阶段的记录,逐点提出客户需求,并用uml的用例概念,和系统设计师进行讨论.系统设计师根据这些需求,运用他的技术,知识和经验,将之分解总结为系统的功能结构.(此处仅针对应用系统而言,对于其他系统,可能还要总结进程结构或部署结构)得到功能结构之后,系统设计师还要构建系统原型,该原型用于和客户进行更好的交流.<br>&nbsp;在这一阶段之后,由于得到了功能分解表和系统原型,需求分析师和系统设计师已明白系统的雏形,该成果将作为开发者和客户继续进行讨论的基础.<br>&nbsp;参与人员:需求分析师,系统设计师(或该设计师领导的相关团队).<br>&nbsp;运用工具:uml,构建原型的相关工具技术.<br>&nbsp;阶段成果:功能分解表,系统原型.(大致的业务流程图)<br>&nbsp;<br>&nbsp;3 编写需求分析说明书<br>&nbsp;在参照功能分解表和系统原型的基础上,需求分析师和系统设计师编写系统的需求分析说明书.该需求分析说明书作为客户和系统开发者的桥梁,既表达了客户想要系统做什么的愿望,又反映了系统开发者针对此需求得到的努力成果(功能分解表和系统原型).通过该说明书,对系统具有的功能和最终可能的形态,客户和开发者达成共识.<br>&nbsp;有可能经过多次的1,2阶段的反复,最终才得到需求分析说明书.各阶段的成果应妥善保存.<br>&nbsp;参与人员:需求分析师,系统设计师,客户.<br>&nbsp;运用工具:自然语言,功能分解表,系统原型.<br>&nbsp;阶段成果:改进的功能分解表,系统原型,(业务流程图),需求分析说明书.<br>&nbsp;<br>&nbsp;第1阶段,是开发者得到自然语言需求的阶段.该阶段的重要性不言而喻.<br>&nbsp;<br>&nbsp;第2阶段,是需求分析编写的核心阶段.很多公司会有意无意忽略该阶段.确实,该阶段耗费的人力和时间挺多,但这个阶段决不能马虎的进行,甚至忽略.只有详尽的将自然语言翻译成功能需求表,并为此构建原型,开发者对系统究竟能做什么和未来该怎么做的认识才会逐渐加深.并且,对应的功能界面,能够让客户大致认识到最终的系统会是什么样子.他能够据此提出自己的满意度,修改或者增加需求.<br>&nbsp;我主张在构建功能分解表的时候,将界面的相关控件,字段,标签都一一列出,并且和原型的界面相对应.这样在功能分解表/需求分析说明书确定之后,开发者就有可能根据这些控件/字段/标签确立业务层的接口和数据库系统的表结构,减少了概要设计阶段所作的工作量.<br>&nbsp;以下是一个分解功能的例子:<br>&nbsp;<br>&nbsp;功能:修改我的资料<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:用户可以更新个人资料<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:姓名文本框(输入姓名),邮箱文本框(输入邮箱),密码文本框(输入文本),确认密码文本框(输入确认密码),所属组别选择框&nbsp;(输入所属组别),地址文本域(输入地址),备注文本域(输入备注).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):根据界面控件描述进行配对.如姓名文本框的标签是"姓名".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(修改我的资料)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak40.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 只有经过详尽完备的1,2阶段后,我们才可能进行第3阶段,将1,2阶段的成果综合起来,和客户进一步讨论需求.客户可能会对功能分解不满意,对原型有异议.这样我们必须返回到1,2阶段,再次分解功能,修改原型.直到客户满意为止.<br>&nbsp;&nbsp; 在这个基础上,我们才可能编写最终的需求说明分析书.我认为,严格按照上述流程进行编写的需求说明书,就是好的.它的特点总结如下:<br>&nbsp;&nbsp; 1)经历过反复功能分解和原型构建.客户因原型而清楚认识到自己想要系统的形态,开发者经多次反馈明确了系统所具备的功能.<br>&nbsp;&nbsp; 2)编写良好的功能分解表,能够帮助开发者进一步设计业务接口.<br>&nbsp;&nbsp; 3)构建成型的原型,有助于开发者设计数据库系统.<br>&nbsp;&nbsp; 4)*明确的业务流程图,能够协助开发者构建系统的业务流.<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; 用户的需求永远在变化,没错.但如果我们按照上述步骤努力在分析阶段弄清楚客户的需求,以后的开发维护阶段就能将需求变更的代价降到最低.只有对事物认识越深刻,才越有可能认识到事物可能存在的变化.这条哲学法则在需求分析阶段同样适用.<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; 经过以上讨论,我们就可以看到为什么多数公司的需求分析书难以达到预期要求.它们没有功能分解阶段,没有原型构建阶段,没有反馈认识再加深的阶段....这样的需求分析书,仅仅为构建而构建,对系统的开发毫无帮助.(我还看到过有人用三天写完一个系统的需求分析书)接踵下去的软件开发阶段,如何进行?这样做出来的软件,能好到哪里去?<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; 一点浅见,贻笑方家. :-)</p>
<img src ="http://www.blogjava.net/diegoyun/aggbug/108714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/diegoyun/" target="_blank">Diego</a> 2007-04-05 15:36 <a href="http://www.blogjava.net/diegoyun/archive/2007/04/05/java_development.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>四 乌有的需求说明分析书</title><link>http://www.blogjava.net/diegoyun/archive/2007/04/05/system_requirement.html</link><dc:creator>Diego</dc:creator><author>Diego</author><pubDate>Thu, 05 Apr 2007 07:34:00 GMT</pubDate><guid>http://www.blogjava.net/diegoyun/archive/2007/04/05/system_requirement.html</guid><wfw:comment>http://www.blogjava.net/diegoyun/comments/108712.html</wfw:comment><comments>http://www.blogjava.net/diegoyun/archive/2007/04/05/system_requirement.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/diegoyun/comments/commentRss/108712.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/diegoyun/services/trackbacks/108712.html</trackback:ping><description><![CDATA[<p>1 引言<br>&nbsp;1.1 编写目的<br>&nbsp;&nbsp;本说明书是客户与软件系统开发者的沟通桥梁.客户根据需求说明书提出需求,阐述系统能做什么.软件系统开发者根据此需求,阐述需求实现的功能与界面,并将之清晰明白的反映到本说明书中,以供客户审阅.<br>&nbsp;&nbsp;本说明书的预期读者为客户,业务需求分析人员,系统设计人员,项目管理人员,软件开发人员等系统开发的相干参与者.<br>&nbsp;1.2 项目背景<br>&nbsp;&nbsp;软件开发过程中无可避免的存在源码缺陷(以下简称BUG).在软件系统的开发维护阶段阶段,对BUG的修复管理工作必不可少.本系统提供了bug的管理功能.客户可应用本系统简单有效的管理BUG,以协助软件系统的开发维护工作.<br>&nbsp;1.3 定义,缩写词和符号<br>&nbsp;&nbsp;BUG:软件系统在功能或界面方面所产生的缺陷.</p>
<p>2 系统运行环境<br>&nbsp;2.1 硬件环境<br>&nbsp; 2.1.1 一台586微机,建议CPU主频在500MHZ以上,内存大于512MB.<br>&nbsp;2.2 软件环境<br>&nbsp; 2.2.1 WINDOWS 或类 LINUX 操作系统.该操作系统应能正常运行JAVA虚拟机.<br>&nbsp; 2.2.2 安装IE6或FIREFOX1.5浏览器<br>&nbsp; 2.2.3 安装J2SDK,要求版本在1.4以上.<br>&nbsp; 2.2.4 安装TOMCAT或其他支持SERVLET 2.3 的WEB 服务器.<br>&nbsp; 2.2.5 安装MYSQL数据库.要求版本在5.0以上.<br>&nbsp; <br>3 系统用例说明<br>&nbsp;3.1 系统用例说明<br>&nbsp;3.1.1 用例名称:用户查看BUG列表<br>&nbsp;&nbsp;&nbsp; 用例编号:1<br>&nbsp;&nbsp;&nbsp; 用例说明:用户点击"查看我的BUG"标签,查看属于自己的BUG列表.或者点击"查看所有BUG"标签,查看所有BUG列表.并能根据自定&nbsp;&nbsp;&nbsp;义的条件过滤器,查看符合特定条件的BUG.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;3.1.2 用例名称:用户查看BUG详情<br>&nbsp;&nbsp;&nbsp; 用例编号:2<br>&nbsp;&nbsp;&nbsp; 用例说明:在BUG列表上存在HTML链接,用户点击该链接,可以看到BUG的详细情况.并且用户可以修改BUG的状态,修改时间.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统<br>&nbsp;<br>&nbsp;3.1.3 用例名称:用户增加新BUG<br>&nbsp;&nbsp;&nbsp; 用例编号:3<br>&nbsp;&nbsp;&nbsp; 用例说明:用户点击"增加新的BUG"界面,进入增加新BUG界面.可以增加新的BUG到系统.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;3.1.4 用例名称:用户管理BUG列表过滤器<br>&nbsp;&nbsp;&nbsp; 用例编号:4<br>&nbsp;&nbsp;&nbsp; 用例说明:用户可以增删改BUG条件过滤器.在BUG列表中,可以通过选取过滤器查看符合特定条件的BUG(请参照用例1).<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;3.1.5 用例名称:用户修改个人资料<br>&nbsp;&nbsp;&nbsp; 用例编号:5<br>&nbsp;&nbsp;&nbsp; 用例说明:用户可以修改个人资料,例如修改EMAIL,住址等.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;3.1.6 用例名称:用户管理帐号<br>&nbsp;&nbsp;&nbsp; 用例编号:6<br>&nbsp;&nbsp;&nbsp; 用例说明:系统管理员可以增删改新的用户.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统,且该用户必须是系统管理员.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;3.1.7 用例名称:用户管理开发组<br>&nbsp;&nbsp;&nbsp; 用例编号:7<br>&nbsp;&nbsp;&nbsp; 用例说明:系统管理员可以增删改开发组.在增加新BUG界面,该组名用于划分BUG的归属.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统,且该用户必须是系统管理员.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;3.2 简单的用例图<br>&nbsp;&nbsp;见图:<br>&nbsp;&nbsp;<br><img height=474 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_tt.png" width=411 border=0><br><br>4 系统功能分解<br>&nbsp;4.1 BUG管理<br>&nbsp;&nbsp; 4.1.1 列出我的BUG<br>&nbsp;&nbsp;&nbsp; 功能简述:以分页的列表方式列出指派给我的bug,可以选择某条记录进行修改,可以弹出框形式查看bug详情.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(指Label):可选项,序号,概述,紧急程度,状态,所有人,发现时间.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HTML链接:序号<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 4.1.2 查看所有bug<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:以分页的列表方式列出所有bug,可以选择某条记录进行修改,可以弹出框形式查看bug详情.可以按过滤器查看符合该&nbsp;&nbsp;&nbsp;过滤器条件的bug.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),过滤器选择框(选择某个过滤器).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(指Label):可选项,序号,概述,紧急程度,状态,所有人,发现时间.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HTML链接:序号<br>&nbsp;<br>&nbsp;&nbsp; 4.1.3 增加新的bug<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:用户可以增加新的bug<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:所属模块选择框(设定bug的所属模块),发现时间日期控件(确定bug的发现时间),发现者选择框(确定bug的发现者),状&nbsp;&nbsp;&nbsp;态选择框(确定bug的状态),截止期限日期控件(确定bug的建议修改时间),指派给选择框(选择bug的所有人),描述文本域(输入&nbsp;&nbsp;&nbsp;bug的描述),附件一(文件选择框),附件二(文件选择框),附件三(文件选择框).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(指Label):根据界面控件描述进行配对.如所属模块选择框的标签是"所属模块".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;4.2 个人资料<br>&nbsp;&nbsp; 4.2.1 修改我的资料<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:用户可以更新个人资料<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:姓名文本框(输入姓名),邮箱文本框(输入邮箱),密码文本框(输入文本),确认密码文本框(输入确认密码),所属组别选&nbsp;&nbsp;&nbsp;择框(输入所属组别),地址文本域(输入地址),备注文本域(输入备注).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):根据界面控件描述进行配对.如姓名文本框的标签是"姓名".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;4.3 过滤器配置<br>&nbsp;&nbsp; 4.3.1 列出过滤器<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:列表方式列出该用户所增加的过滤器,可以选择某条记录进行修改,可以弹出框形式查看过滤器详情,可以删除某条记&nbsp;&nbsp;&nbsp;录.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),删除按钮(对某条记录进行删除)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,序号,过滤器名称.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 4.3.2 增加新过滤器 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:用户可以增加新的过滤器.每个用户只能有最多10个过滤器.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:过滤器名称文本框(输入过滤器名称),状态选择框(选择状态),所属模块选择框(选择模块),发现者选择框(选择发现者&nbsp;&nbsp;&nbsp;),指派给选择框(选择bug的所有人),发现时间段时间选择框(选择发现起始时间),发现时间段时间选择框(选择发现终止时间&nbsp;&nbsp;&nbsp;),截止时间段时间选择框(选择截止起始时间),截止时间段时间选择框(选择截止终止时间).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):根据界面控件描述进行配对.如过滤器名称文本框的标签是"过滤器名称".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;4.4 系统管理<br>&nbsp;&nbsp; 4.4.1 用户列表<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:列表方式列出所有用户,可以选择某条记录进行修改,可以弹出框形式查看某用户详情,可以删除某条记录.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),删除按钮(对某条记录进行删除)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,登录ID,Email,电话,职位<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 4.4.2 增加新用户<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:增加新用户<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:登录ID文本框(输入用户帐号),姓名文本框(输入姓名),邮箱文本框(输入邮箱),密码文本框(输入文本),确认密码文本&nbsp;&nbsp;&nbsp;框(输入确认密码),是否管理员选择框(设定是否管理员),地址文本域(输入地址),备注文本域(输入备注).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):根据界面控件描述进行配对.如姓名文本框的标签是"姓名".不再赘述.<br>&nbsp;<br>&nbsp;&nbsp; 4.4.3 开发组列表<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:列表方式列出所有开发组,可以选择某条记录进行修改,可以弹出框形式查看某记录详情,可以删除某条记录.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),删除按钮(对某条记录进行删除)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,开发组名称,描述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 4.4.4 增加新开发组<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:增加新开发组.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:组名称文本框(输入开发组名称),备注文本域(输入备注).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):组名称,备注.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 4.4.5 日志列表<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:分页列出系统日志.用户删除某条记录,可以弹出框形式查看某条记录详情.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:删除按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,日志时间,用户ID,操作概述.</p>
<img src ="http://www.blogjava.net/diegoyun/aggbug/108712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/diegoyun/" target="_blank">Diego</a> 2007-04-05 15:34 <a href="http://www.blogjava.net/diegoyun/archive/2007/04/05/system_requirement.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>三 功能和原型设计</title><link>http://www.blogjava.net/diegoyun/archive/2007/04/04/java_san.html</link><dc:creator>Diego</dc:creator><author>Diego</author><pubDate>Wed, 04 Apr 2007 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/diegoyun/archive/2007/04/04/java_san.html</guid><wfw:comment>http://www.blogjava.net/diegoyun/comments/108462.html</wfw:comment><comments>http://www.blogjava.net/diegoyun/archive/2007/04/04/java_san.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/diegoyun/comments/commentRss/108462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/diegoyun/services/trackbacks/108462.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; Diego打算用html开发系统的原型,在开发期间,他发现经探讨了解的需求信息还存在不足,而且,一些潜在的需求如果不经讨论确定,下一步的开发工作就没办法进行.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 他向自己提出了这些要求:<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1.尽快开发系统原型并获得客户的通过.<br>&nbsp;&nbsp;&nbsp; BS程序通常通过开发html模型以确定用户需求,演示系统功能.演示让客户能够最快的看到"实际的系统".尽管系统的最终开发结果不可能和原型一模一样,然而原型确实能最大限度的帮助系统开发工作.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2.尽快确定显示界面所需的字段.<br>&nbsp;&nbsp;&nbsp; 这些显示字段能够帮助数据库系统设计师确定系统的表结构.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 3.在开发原型时对系统进行初步的功能分解.<br>&nbsp;&nbsp;&nbsp; 这步工作是系统架构设计的基础,并且可以明确需求,协助需求分析设计书的编写.经验表明,精心划分的功能需求能使开发人员和客户更好的进行交流.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 另外,Diego还问自己如下问题:<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1.系统是否存在权限控制?如果存在,通过什么形式实现?<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2.系统有哪些隐含而必不可少的功能(例如用户管理等管理模块)?这部分功能应该明确制定,并且和用户进行讨论.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Diego的原型和功能列表如下:<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 功能列表:<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1 Bug管理<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 1.1 列出我的bug<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:以分页的列表方式列出指派给我的bug,可以选择某条记录进行修改,可以弹出框形式查看bug详情.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(指Label):可选项,序号,概述,紧急程度,状态,所有人,发现时间.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HTML链接:序号<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(列出我的bug)<br>&nbsp;<img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak37.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 1.2 查看所有bug<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:以分页的列表方式列出所有bug,可以选择某条记录进行修改,可以弹出框形式查看bug详情.可以按过滤器查看符合该过滤器条件的bug.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),过滤器选择框(选择某个过滤器).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(指Label):可选项,序号,概述,紧急程度,状态,所有人,发现时间.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HTML链接:序号<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(查看所有bug)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak38.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 1.3 增加新的bug<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:用户可以增加新的bug<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:所属模块选择框(设定bug的所属模块),发现时间日期控件(确定bug的发现时间),发现者选择框(确定bug的发现者),状态选择框(确定bug的状态),截止期限日期控件(确定bug的建议修改时间),指派给选择框(选择bug的所有人),描述文本域(输入bug的描述),附件一(文件选择框),附件二(文件选择框),附件三(文件选择框).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(指Label):根据界面控件描述进行配对.如所属模块选择框的标签是"所属模块".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(增加新的bug)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak39.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 2 个人资料<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 2.1 修改我的资料<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:用户可以更新个人资料<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:姓名文本框(输入姓名),邮箱文本框(输入邮箱),密码文本框(输入文本),确认密码文本框(输入确认密码),所属组别选择框(输入所属组别),地址文本域(输入地址),备注文本域(输入备注).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):根据界面控件描述进行配对.如姓名文本框的标签是"姓名".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(修改我的资料)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak40.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 3 过滤器配置<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 3.1 列出过滤器<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:列表方式列出该用户所增加的过滤器,可以选择某条记录进行修改,可以弹出框形式查看过滤器详情,可以删除某条记录.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),删除按钮(对某条记录进行删除)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,序号,过滤器名称.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(列出过滤器)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak41.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 3.2 增加新过滤器 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:用户可以增加新的过滤器.每个用户只能有最多10个过滤器.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:过滤器名称文本框(输入过滤器名称),状态选择框(选择状态),所属模块选择框(选择模块),发现者选择框(选择发现者),指派给选择框(选择bug的所有人),发现时间段时间选择框(选择发现起始时间),发现时间段时间选择框(选择发现终止时间),截止时间段时间选择框(选择截止起始时间),截止时间段时间选择框(选择截止终止时间).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):根据界面控件描述进行配对.如过滤器名称文本框的标签是"过滤器名称".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(增加新的过滤器)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak42.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 权限体现的实现:<br>&nbsp;&nbsp;&nbsp; 系统权限:<br>&nbsp;&nbsp;&nbsp; 1)用户需要登录到系统,才能进行相关操作.<br>&nbsp;&nbsp;&nbsp; 2)用户存在"非活动时限",如果超过一个时间定值用户不进行系统相应操作,则提示用户重新登录.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 管理权限:<br>&nbsp;&nbsp;&nbsp; 1)用户必须是管理员用户,才能进行系统的管理工作.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 应用权限:<br>&nbsp;&nbsp;&nbsp; 1)只有系统管理员能够删除bug.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 在列出用户要求的功能列表和参考权限实现方式之后,Diego将系统隐含必不可少的功能整理如下<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 4 系统管理 (只有管理员才能操作该模块的所有功能)<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 4.1 用户列表<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:列表方式列出所有用户,可以选择某条记录进行修改,可以弹出框形式查看某用户详情,可以删除某条记录.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),删除按钮(对某条记录进行删除)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,登录ID,Email,电话,职位<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(用户列表)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak43.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 4.2 增加新用户<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:增加新用户<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:登录ID文本框(输入用户帐号),姓名文本框(输入姓名),邮箱文本框(输入邮箱),密码文本框(输入文本),确认密码文本框(输入确认密码),是否管理员选择框(设定是否管理员),地址文本域(输入地址),备注文本域(输入备注).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):根据界面控件描述进行配对.如姓名文本框的标签是"姓名".不再赘述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(增加新用户)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak44.jpg" width=1024 border=0>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;&nbsp; 4.3 开发组列表<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:列表方式列出所有开发组,可以选择某条记录进行修改,可以弹出框形式查看某记录详情,可以删除某条记录.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:序号Radio(可以选择某条记录),修改按钮(对记录进行修改),删除按钮(对某条记录进行删除)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,开发组名称,描述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(开发组列表)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak45.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 4.4 增加新开发组<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:增加新开发组.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:组名称文本框(输入开发组名称),备注文本域(输入备注).提交按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):组名称,备注.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(增加新开发组)<br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak46.jpg" width=1024 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 4.5 日志列表<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 功能简述:分页列出系统日志.用户删除某条记录,可以弹出框形式查看某条记录详情.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面控件:删除按钮.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面标签(Label):可选项,日志时间,用户ID,操作概述.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 界面:见图(日志列表)<br><br><img height=578 alt="" src="http://www.blogjava.net/images/blogjava_net/diegoyun/21265/o_bak47.jpg" width=1024 border=0>&nbsp;<br><br><br>&nbsp;&nbsp;&nbsp;Diego将该原型交给乌有,乌有将据此编写需求分析说明书,和子虚先生作进一步的交流. 
<img src ="http://www.blogjava.net/diegoyun/aggbug/108462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/diegoyun/" target="_blank">Diego</a> 2007-04-04 16:25 <a href="http://www.blogjava.net/diegoyun/archive/2007/04/04/java_san.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二 乌有和Diego的对话(如何确定需求)</title><link>http://www.blogjava.net/diegoyun/archive/2007/04/04/java.html</link><dc:creator>Diego</dc:creator><author>Diego</author><pubDate>Wed, 04 Apr 2007 08:13:00 GMT</pubDate><guid>http://www.blogjava.net/diegoyun/archive/2007/04/04/java.html</guid><wfw:comment>http://www.blogjava.net/diegoyun/comments/108460.html</wfw:comment><comments>http://www.blogjava.net/diegoyun/archive/2007/04/04/java.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/diegoyun/comments/commentRss/108460.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/diegoyun/services/trackbacks/108460.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 乌有和Diego在讨论需求<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 乌:Diego,对这个系统的看法怎样?<br>&nbsp;&nbsp;&nbsp; D:嗯,我觉得我们遗漏了某些东西.查看bug列表时,是允许所有用户查看呢?还是经过系统验证的用户?<br>&nbsp;&nbsp;&nbsp; 乌:.... 我觉得应该是经过系统验证的用户吧.<br>&nbsp;&nbsp;&nbsp; D:不一定.如果用户要登录之后才能看到bug列表,不方便.理想状况应该打开系统就能看到.&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 乌:但是你要考虑这么一个问题,假设bug按发现时间的顺序分页列出且bug的数量很多,很可能在第一页该用户看不到属于自己的bug,他就以为没有bug.假如我们要求他必须先登录,那我们就可以根据他的登录信息,列出他的bug的总数,bug的列表...等等.<br>&nbsp;&nbsp;&nbsp; D:我上当当网购书的时候,发现他们可以在不登录的情况下记下用户的浏览历史.我猜想这可以通过写用户的cookie实现.<br>&nbsp;&nbsp;&nbsp; 乌:但我们公司的技术人员对这项技术不熟.我可不能凭猜测确定这个需求.<br>&nbsp;&nbsp;&nbsp; (虽然Diego跃跃欲试,但看到乌有先生坚决的神色,也只有妥协)<br>&nbsp;&nbsp;&nbsp; D:好吧,那我们就必须先登录,再看列表.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; (于是乌有先生编写系统的用例如下:)<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 用例1:用户查看bug列表<br>&nbsp;&nbsp;&nbsp; 1.用户点击"bug列表"标签,查看属于自己的bug列表.&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; (该用例获得一致通过)<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; (乌有先生编写系统用例2)<br>&nbsp;&nbsp;&nbsp; 用例2:用户查看bug详细信息<br>&nbsp;&nbsp;&nbsp; 1.用户点击bug列表中的某个bug,进入bug详细信息页面.<br>&nbsp;&nbsp;&nbsp; 2.用户可以修改bug的状态,修改时间.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; D:我发现,如果系统要求用户必须先登录才能查看bug,那么此时系统列出的bug都是他的,列出其他人的bug好像没什么必要.<br>&nbsp;&nbsp;&nbsp; 乌:但是你要考虑,假设我是项目经理或者测试组组长,我想看到所有bug的列表.系统列出所有bug还是必要的.<br>&nbsp;&nbsp;&nbsp; D:解决办法有两种.1)访问系统的时候,根据某种逻辑(如时间,模块,bug性质)列出bug的列表.大家不用登录就可以看到.我称这个为"公共bug列表界面".用户一访问系统就能看到这个界面. 2)或者用户登录之后,点"列出所有bug"列表.当然,用户还可以构造自己的过滤器,以决定列出bug的条件.<br>&nbsp;&nbsp;&nbsp; 乌:那么其实"列出所有bug"和"列出自己的bug"功能可以合并到一起.只不过默认状态列出属于自己的bug,简单的选取条件后又可以列出所有bug.<br>&nbsp;&nbsp;&nbsp; D:对,这种想法不错.而且,各自选择应该能汇总成一个名称,姑且称之为过滤器.用户可以建几个常用的过滤器以供快捷使用.<br>&nbsp;&nbsp;&nbsp; 乌:好办法!<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; (于是乌有先生修改用例1如下:)<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 用例1:用户查看bug列表<br>&nbsp;&nbsp;&nbsp; 1.用户点击"bug列表"标签,查看bug列表. (此时列出的所有bug属于该用户).<br>&nbsp;&nbsp;&nbsp; 2.用户可以选择某些条件,系统根据这些条件列出相应的bug.如果什么条件都不选,系统列出所有bug.<br>&nbsp;&nbsp;&nbsp; 前置条件:用户已登录系统.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; (乌有先生继续编写用例如下)<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 用例3:用户添加bug<br>&nbsp;&nbsp; 1.用户点选"添加bug"标签,进入添加bug界面.&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; 2.用户可以添加bug,设定bug的简单描述,详细描述,bug的发现时间,建议修复时间,所属模块,添加人,所有人,修改人,状态.<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; 用例4:用户增删改过滤器<br>&nbsp;&nbsp; 1.用户点击"过滤器列表"标签,查看当前过滤器列表和当前所采用的过滤器.<br>&nbsp;&nbsp; 2.用户可以增删改新的过滤器.<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; (乌有满意的伸伸懒腰)<br>&nbsp;&nbsp; 乌:我想差不多了.这个系统确实不算太复杂.<br>&nbsp;&nbsp; D:我设计个原型,然后一起找子虚先生继续讨论.<br>&nbsp;&nbsp; 乌:好的,加油!
<img src ="http://www.blogjava.net/diegoyun/aggbug/108460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/diegoyun/" target="_blank">Diego</a> 2007-04-04 16:13 <a href="http://www.blogjava.net/diegoyun/archive/2007/04/04/java.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一 子虚和乌有的对话 (如何获取源码缺陷跟踪系统的需求)</title><link>http://www.blogjava.net/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.html</link><dc:creator>Diego</dc:creator><author>Diego</author><pubDate>Wed, 28 Mar 2007 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.html</guid><wfw:comment>http://www.blogjava.net/diegoyun/comments/106909.html</wfw:comment><comments>http://www.blogjava.net/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/diegoyun/comments/commentRss/106909.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/diegoyun/services/trackbacks/106909.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 以对话形式模拟如何确认和获取需求&nbsp;&nbsp;<a href='http://www.blogjava.net/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.html'>阅读全文</a><img src ="http://www.blogjava.net/diegoyun/aggbug/106909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/diegoyun/" target="_blank">Diego</a> 2007-03-28 11:55 <a href="http://www.blogjava.net/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>