??xml version="1.0" encoding="utf-8" standalone="yes"?>久久99精品一区二区三区三区,亚洲乱码中文字幕综合,第一视频专区在线http://www.aygfsteel.com/diegoyun/用程序员的眼光看世界zh-cnThu, 19 Jun 2025 10:31:36 GMTThu, 19 Jun 2025 10:31:36 GMT60应用开发的思?------~写好的需求分析书http://www.aygfsteel.com/diegoyun/archive/2007/04/05/java_development.htmlDiegoDiegoThu, 05 Apr 2007 07:36:00 GMThttp://www.aygfsteel.com/diegoyun/archive/2007/04/05/java_development.htmlhttp://www.aygfsteel.com/diegoyun/comments/108714.htmlhttp://www.aygfsteel.com/diegoyun/archive/2007/04/05/java_development.html#Feedback3http://www.aygfsteel.com/diegoyun/comments/commentRss/108714.htmlhttp://www.aygfsteel.com/diegoyun/services/trackbacks/108714.html应用开发的思?
 
    我发现多数需求分析说明书~写得毫无h?多数公司的做法是写完该需求说明书之后,把它扔一?埋头苦干写程序了.一斚wq和公司寚w求分析的认识不够有关,另一斚w,也和需求分析编写方式不合?以至它的价值难以体现有?
    软gE序,从最l的抽象意义而言,是计机pȝ对自然语a的翻?而需求分析充当了译d的急先?很难惌,如果没有一份好的需求说明书,针对客户含糊不清的自然语a描述,开发者能做出一个符合要求的优秀软g.然?什么是好的需求说明书?应具备什么样的特?我认为好的需求说明书应有由如下三个阶D?l多ơ@环反馈而逐渐形成:
       
 1 调研阶段:
 客户和需求分析师讨论pȝ该具有的功能.客户希望pȝ能做什?辑ֈ什么样的效?需求分析师的责L认真听取客户的原始言?通过讨论,语言的提炼和客户达成p,最l得到确切的需?-客户希望pȝ能做什?q一q程q用的是自然语言,需求分析师必须具备良好的沟通能?文字表达能力,q且必须具备客户领域内的相关业务知识,不用用户不懂的计算Z业词?
    参与人员:需求分析师,客户,pȝ设计?
    q用工具:自然语言.
    阶段成果:调研记录?

 2 定功能l构和设计系l原?
 需求分析师和系l设计师讨论客户的需?需求分析师针对调研阶段的记?逐点提出客户需?q用uml的用例概?和系l设计师q行讨论.pȝ设计师根据这些需?q用他的技?知识和经?之分解ȝ为系l的功能l构.(此处仅针对应用系l而言,对于其他pȝ,可能q要ȝq程l构或部|结?得到功能l构之后,pȝ设计师还要构建系l原?该原型用于和客户q行更好的交?
 在这一阶段之后,׃得到了功能分解表和系l原?需求分析师和系l设计师已明白系l的雏Ş,该成果将作ؓ开发者和客户l箋q行讨论的基.
 参与人员:需求分析师,pȝ设计?或该设计师领导的相关团队).
 q用工具:uml,构徏原型的相兛_h?
 阶段成果:功能分解?pȝ原型.(大致的业务流E图)
 
 3 ~写需求分析说明书
 在参照功能分解表和系l原型的基础?需求分析师和系l设计师~写pȝ的需求分析说明书.该需求分析说明书作ؓ客户和系l开发者的桥梁,既表达了客户惌pȝ做什么的愿望,又反映了pȝ开发者针Ҏ需求得到的努力成果(功能分解表和pȝ原型).通过该说明书,对系l具有的功能和最l可能的形?客户和开发者达成共?
 有可能经q多ơ的1,2阶段的反?最l才得到需求分析说明书.各阶D늚成果应妥善保?
 参与人员:需求分析师,pȝ设计?客户.
 q用工具:自然语言,功能分解?pȝ原型.
 阶段成果:改进的功能分解表,pȝ原型,(业务程?,需求分析说明书.
 
 W?阶段,是开发者得到自然语a需求的阶段.该阶D늚重要性不a而喻.
 
 W?阶段,是需求分析编写的核心阶段.很多公司会有意无意忽略该阶段.实,该阶D耗费的h力和旉挺多,但这个阶D决不能马虎的进?甚至忽略.只有详尽的将自然语言译成功能需求表,qؓ此构建原?开发者对pȝI竟能做什么和未来该怎么做的认识才会逐渐加深.q且,对应的功能界?能够让客户大致认识到最l的pȝ会是什么样?他能够据此提q满意?修改或者增加需?
 我主张在构徏功能分解表的时?界面的相关控g,字段,标签都一一列出,q且和原型的界面相对?q样在功能分解表/需求分析说明书定之后,开发者就有可能根据这些控?字段/标签立业务层的接口和数据库pȝ的表l构,减少了概要设计阶D|作的工作?
 以下是一个分解功能的例子:
 
 功能:修改我的资料
      功能q?用户可以更新个h资料
      界面控g:姓名文本?输入姓名),邮箱文本?输入邮箱),密码文本?输入文本),认密码文本?输入认密码),所属组别选择?nbsp;(输入所属组?,地址文本?输入地址),备注文本?输入备注).提交按钮.
      界面标签(Label):Ҏ界面控g描述q行配对.如姓名文本框的标{是"姓名".不再赘述.
      界面:见图(修改我的资料)

      
      
   只有l过详尽完备?,2阶段?我们才可能进行第3阶段,?,2阶段的成果综合v?和客戯一步讨论需?客户可能会对功能分解不满?对原型有异议.q样我们必须q回?,2阶段,再次分解功能,修改原型.直到客户满意为止.
   在这个基?我们才可能编写最l的需求说明分析书.我认?严格按照上述程q行~写的需求说明书,是好的.它的特点ȝ如下:
   1)l历q反复功能分解和原型构徏.客户因原型而清楚认识到自己惌pȝ的Ş?开发者经多次反馈明确了系l所具备的功?
   2)~写良好的功能分解表,能够帮助开发者进一步设计业务接?
   3)构徏成型的原?有助于开发者设计数据库pȝ.
   4)*明确的业务流E图,能够协助开发者构建系l的业务?
  
   用户的需求永q在变化,没错.但如果我们按照上q步骤努力在分析阶段弄清楚客L需?以后的开发维护阶D就能将需求变更的代h降到最?只有对事物认识越深刻,才越有可能认识到事物可能存在的变?q条哲学法则在需求分析阶D同样适用.
  
   l过以上讨论,我们可以看Cؓ什么多数公司的需求分析书难以辑ֈ预期要求.它们没有功能分解阶段,没有原型构徏阶段,没有反馈认识再加q阶段....q样的需求分析书,仅仅为构构?对系l的开发毫无帮?(我还看到q有人用三天写完一个系l的需求分析书)接踵下去的Y件开发阶D?如何q行?q样做出来的软g,能好到哪里去?
  
   一Ҏ?ȝ方家. :-)



Diego 2007-04-05 15:36 发表评论
]]>
?乌有的需求说明分析书http://www.aygfsteel.com/diegoyun/archive/2007/04/05/system_requirement.htmlDiegoDiegoThu, 05 Apr 2007 07:34:00 GMThttp://www.aygfsteel.com/diegoyun/archive/2007/04/05/system_requirement.htmlhttp://www.aygfsteel.com/diegoyun/comments/108712.htmlhttp://www.aygfsteel.com/diegoyun/archive/2007/04/05/system_requirement.html#Feedback0http://www.aygfsteel.com/diegoyun/comments/commentRss/108712.htmlhttp://www.aygfsteel.com/diegoyun/services/trackbacks/108712.html1 引言
 1.1 ~写目的
  本说明书是客户与软gpȝ开发者的沟通桥?客户Ҏ需求说明书提出需?阐述pȝ能做什?软gpȝ开发者根据此需?阐述需求实现的功能与界?q将之清晰明白的反映到本说明书中,以供客户审阅.
  本说明书的预期读者ؓ客户,业务需求分析h?pȝ设计人员,目理人员,软g开发h员等pȝ开发的相干参与?
 1.2 目背景
  软g开发过E中无可避免的存在源码缺?以下UBUG).在Y件系l的开发维护阶D阶D?对BUG的修复管理工作必不可?本系l提供了bug的管理功?客户可应用本pȝ单有效的理BUG,以协助Y件系l的开发维护工?
 1.3 定义,~写词和W号
  BUG:软gpȝ在功能或界面斚w所产生的缺?

2 pȝq行环境
 2.1 g环境
  2.1.1 一?86微机,CPU主频?00MHZ以上,内存大于512MB.
 2.2 软g环境
  2.2.1 WINDOWS 或类 LINUX 操作pȝ.该操作系l应能正常运行JAVA虚拟?
  2.2.2 安装IE6或FIREFOX1.5览?br>  2.2.3 安装J2SDK,要求版本?.4以上.
  2.2.4 安装TOMCAT或其他支持SERVLET 2.3 的WEB 服务?
  2.2.5 安装MYSQL数据?要求版本?.0以上.
 
3 pȝ用例说明
 3.1 pȝ用例说明
 3.1.1 用例名称:用户查看BUG列表
    用例~号:1
    用例说明:用户点击"查看我的BUG"标签,查看属于自己的BUG列表.或者点?查看所有BUG"标签,查看所有BUG列表.q能Ҏ自定   义的条gqo?查看W合特定条g的BUG.
    前置条g:用户已登录系l?
   
 3.1.2 用例名称:用户查看BUG详情
    用例~号:2
    用例说明:在BUG列表上存在HTML链接,用户点击该链?可以看到BUG的详l情?q且用户可以修改BUG的状?修改旉.
    前置条g:用户已登录系l?br> 
 3.1.3 用例名称:用户增加新BUG
    用例~号:3
    用例说明:用户点击"增加新的BUG"界面,q入增加新BUG界面.可以增加新的BUG到系l?
    前置条g:用户已登录系l?br>   
 3.1.4 用例名称:用户理BUG列表qo?br>    用例~号:4
    用例说明:用户可以增删改BUG条gqo?在BUG列表?可以通过选取qo器查看符合特定条件的BUG(请参照用?).
    前置条g:用户已登录系l?
   
 3.1.5 用例名称:用户修改个h资料
    用例~号:5
    用例说明:用户可以修改个h资料,例如修改EMAIL,住址{?
    前置条g:用户已登录系l?
   
 3.1.6 用例名称:用户理帐号
    用例~号:6
    用例说明:pȝ理员可以增删改新的用户.
    前置条g:用户已登录系l?且该用户必须是系l管理员.
   
 3.1.7 用例名称:用户理开发组
    用例~号:7
    用例说明:pȝ理员可以增删改开发组.在增加新BUG界面,该组名用于划分BUG的归?
    前置条g:用户已登录系l?且该用户必须是系l管理员.
   
 3.2 单的用例?br>  见图:
  


4 pȝ功能分解
 4.1 BUG理
   4.1.1 列出我的BUG
    功能q?以分늚列表方式列出指派l我的bug,可以选择某条记录q行修改,可以弹出框Ş式查看bug详情.
       界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?
       界面标签(指Label):可选项,序号,概述,紧急程?状?所有h,发现旉.
       HTML链接:序号
   
   4.1.2 查看所有bug
       功能q?以分늚列表方式列出所有bug,可以选择某条记录q行修改,可以弹出框Ş式查看bug详情.可以按过滤器查看W合?nbsp;  qo器条件的bug.
       界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,qo器选择?选择某个qo?.
       界面标签(指Label):可选项,序号,概述,紧急程?状?所有h,发现旉.
       HTML链接:序号
 
   4.1.3 增加新的bug
       功能q?用户可以增加新的bug
       界面控g:所属模块选择?讑֮bug的所属模?,发现旉日期控g(定bug的发现时?,发现者选择?定bug的发现?,?nbsp;  态选择?定bug的状?,截止期限日期控g(定bug的徏议修Ҏ?,指派l选择?选择bug的所有h),描述文本?输入   bug的描q?,附g一(文g选择?,附g?文g选择?,附g?文g选择?.提交按钮.
       界面标签(指Label):Ҏ界面控g描述q行配对.如所属模块选择框的标签?所属模?.不再赘述.
      
      
 4.2 个h资料
   4.2.1 修改我的资料
       功能q?用户可以更新个h资料
       界面控g:姓名文本?输入姓名),邮箱文本?输入邮箱),密码文本?输入文本),认密码文本?输入认密码),所属组别?nbsp;  择框(输入所属组?,地址文本?输入地址),备注文本?输入备注).提交按钮.
       界面标签(Label):Ҏ界面控g描述q行配对.如姓名文本框的标{是"姓名".不再赘述.
      
 4.3 qo器配|?br>   4.3.1 列出qo?br>       功能q?列表方式列出该用h增加的过滤器,可以选择某条记录q行修改,可以弹出框Ş式查看过滤器详情,可以删除某条?nbsp;  ?
       界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,删除按钮(Ҏ条记录进行删?
       界面标签(Label):可选项,序号,qo器名U?
      
   4.3.2 增加新过滤器
       功能q?用户可以增加新的qo?每个用户只能有最?0个过滤器.
       界面控g:qo器名U文本框(输入qo器名U?,状态选择?选择状?,所属模块选择?选择模块),发现者选择?选择发现?nbsp;  ),指派l选择?选择bug的所有h),发现旉D|间选择?选择发现起始旉),发现旉D|间选择?选择发现l止旉   ),截止旉D|间选择?选择截止起始旉),截止旉D|间选择?选择截止l止旉).提交按钮.
       界面标签(Label):Ҏ界面控g描述q行配对.如过滤器名称文本框的标签?qo器名U?.不再赘述.
      
 4.4 pȝ理
   4.4.1 用户列表
       功能q?列表方式列出所有用?可以选择某条记录q行修改,可以弹出框Ş式查看某用户详情,可以删除某条记录.
       界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,删除按钮(Ҏ条记录进行删?
       界面标签(Label):可选项,dID,Email,电话,职位
      
   4.4.2 增加新用?br>       功能q?增加新用?br>       界面控g:dID文本?输入用户帐号),姓名文本?输入姓名),邮箱文本?输入邮箱),密码文本?输入文本),认密码文本   ?输入认密码),是否理员选择?讑֮是否理?,地址文本?输入地址),备注文本?输入备注).提交按钮.
       界面标签(Label):Ҏ界面控g描述q行配对.如姓名文本框的标{是"姓名".不再赘述.
 
   4.4.3 开发组列表
       功能q?列表方式列出所有开发组,可以选择某条记录q行修改,可以弹出框Ş式查看某记录详情,可以删除某条记录.
       界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,删除按钮(Ҏ条记录进行删?
       界面标签(Label):可选项,开发组名称,描述.
      
   4.4.4 增加新开发组
       功能q?增加新开发组.
       界面控g:l名U文本框(输入开发组名称),备注文本?输入备注).提交按钮.
       界面标签(Label):l名U?备注.
      
   4.4.5 日志列表
       功能q?分页列出pȝ日志.用户删除某条记录,可以弹出框Ş式查看某条记录详?
       界面控g:删除按钮.
       界面标签(Label):可选项,日志旉,用户ID,操作概述.



Diego 2007-04-05 15:34 发表评论
]]>
?功能和原型设?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/diegoyun/archive/2007/04/04/java_san.html</guid><wfw:comment>http://www.aygfsteel.com/diegoyun/comments/108462.html</wfw:comment><comments>http://www.aygfsteel.com/diegoyun/archive/2007/04/04/java_san.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/diegoyun/comments/commentRss/108462.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/diegoyun/services/trackbacks/108462.html</trackback:ping><description><![CDATA[    Diego打算用html开发系l的原型,在开发期?他发现经探讨了解的需求信息还存在不,而且,一些潜在的需求如果不l讨论确?下一步的开发工作就没办法进?<br>    <br>    他向自己提出了这些要?<br>    <br>    1.快开发系l原型ƈ获得客户的通过.<br>    BSE序通常通过开发html模型以确定用户需?演示pȝ功能.演示让客戯够最快的看到"实际的系l?.管pȝ的最l开发结果不可能和原型一模一?然而原型确实能最大限度的帮助pȝ开发工?<br>    <br>    2.快定昄界面所需的字D?<br>    q些昄字段能够帮助数据库系l设计师定pȝ的表l构.<br>    <br>    3.在开发原型时对系l进行初步的功能分解.<br>    q步工作是系l架构设计的基础,q且可以明确需?协助需求分析设计书的编?l验表明,_ֿ划分的功能需求能使开发h员和客户更好的进行交?<br>    <br>    另外,Diegoq问自己如下问题:<br>    <br>    1.pȝ是否存在权限控制?如果存在,通过什么Ş式实?<br>    <br>    2.pȝ有哪些隐含而必不可的功能(例如用户理{管理模??q部分功能应该明制?q且和用戯行讨?<br>    <br>    Diego的原型和功能列表如下:<br>    <br>    功能列表:<br>    <br>    1 Bug理<br>    <br>    1.1 列出我的bug<br>      功能q?以分늚列表方式列出指派l我的bug,可以选择某条记录q行修改,可以弹出框Ş式查看bug详情.<br>      界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?<br>      界面标签(指Label):可选项,序号,概述,紧急程?状?所有h,发现旉.<br>      HTML链接:序号<br>      界面:见图(列出我的bug)<br> <img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak37.jpg" width=1024 border=0><br>      <br>    1.2 查看所有bug<br>      功能q?以分늚列表方式列出所有bug,可以选择某条记录q行修改,可以弹出框Ş式查看bug详情.可以按过滤器查看W合该过滤器条g的bug.<br>      界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,qo器选择?选择某个qo?.<br>      界面标签(指Label):可选项,序号,概述,紧急程?状?所有h,发现旉.<br>      HTML链接:序号<br>      界面:见图(查看所有bug)<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak38.jpg" width=1024 border=0><br>    <br>    1.3 增加新的bug<br>      功能q?用户可以增加新的bug<br>      界面控g:所属模块选择?讑֮bug的所属模?,发现旉日期控g(定bug的发现时?,发现者选择?定bug的发现?,状态选择?定bug的状?,截止期限日期控g(定bug的徏议修Ҏ?,指派l选择?选择bug的所有h),描述文本?输入bug的描q?,附g一(文g选择?,附g?文g选择?,附g?文g选择?.提交按钮.<br>      界面标签(指Label):Ҏ界面控g描述q行配对.如所属模块选择框的标签?所属模?.不再赘述.<br>      界面:见图(增加新的bug)<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak39.jpg" width=1024 border=0><br>      <br>    2 个h资料<br>    <br>    2.1 修改我的资料<br>      功能q?用户可以更新个h资料<br>      界面控g:姓名文本?输入姓名),邮箱文本?输入邮箱),密码文本?输入文本),认密码文本?输入认密码),所属组别选择?输入所属组?,地址文本?输入地址),备注文本?输入备注).提交按钮.<br>      界面标签(Label):Ҏ界面控g描述q行配对.如姓名文本框的标{是"姓名".不再赘述.<br>      界面:见图(修改我的资料)<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak40.jpg" width=1024 border=0><br>      <br>    3 qo器配|?br>    <br>    3.1 列出qo?br>      功能q?列表方式列出该用h增加的过滤器,可以选择某条记录q行修改,可以弹出框Ş式查看过滤器详情,可以删除某条记录.<br>      界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,删除按钮(Ҏ条记录进行删?<br>      界面标签(Label):可选项,序号,qo器名U?<br>      界面:见图(列出qo?<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak41.jpg" width=1024 border=0><br>    <br>    3.2 增加新过滤器 <br>      功能q?用户可以增加新的qo?每个用户只能有最?0个过滤器.<br>      界面控g:qo器名U文本框(输入qo器名U?,状态选择?选择状?,所属模块选择?选择模块),发现者选择?选择发现?,指派l选择?选择bug的所有h),发现旉D|间选择?选择发现起始旉),发现旉D|间选择?选择发现l止旉),截止旉D|间选择?选择截止起始旉),截止旉D|间选择?选择截止l止旉).提交按钮.<br>      界面标签(Label):Ҏ界面控g描述q行配对.如过滤器名称文本框的标签?qo器名U?.不再赘述.<br>      界面:见图(增加新的qo?<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak42.jpg" width=1024 border=0><br>      <br>    权限体现的实?<br>    pȝ权限:<br>    1)用户需要登录到pȝ,才能q行相关操作.<br>    2)用户存在"非活动时?,如果过一个时间定值用户不q行pȝ相应操作,则提C用户重新登?<br>    <br>    理权限:<br>    1)用户必须是管理员用户,才能q行pȝ的管理工?<br>    <br>    应用权限:<br>    1)只有pȝ理员能够删除bug.<br>    <br>    在列出用戯求的功能列表和参考权限实现方式之?Diego系l隐含必不可的功能整理如下<br>    <br>    4 pȝ理 (只有理员才能操作该模块的所有功?<br>    <br>    4.1 用户列表<br>      功能q?列表方式列出所有用?可以选择某条记录q行修改,可以弹出框Ş式查看某用户详情,可以删除某条记录.<br>      界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,删除按钮(Ҏ条记录进行删?<br>      界面标签(Label):可选项,dID,Email,电话,职位<br>      界面:见图(用户列表)<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak43.jpg" width=1024 border=0><br>    <br>    4.2 增加新用?br>      功能q?增加新用?br>      界面控g:dID文本?输入用户帐号),姓名文本?输入姓名),邮箱文本?输入邮箱),密码文本?输入文本),认密码文本?输入认密码),是否理员选择?讑֮是否理?,地址文本?输入地址),备注文本?输入备注).提交按钮.<br>      界面标签(Label):Ҏ界面控g描述q行配对.如姓名文本框的标{是"姓名".不再赘述.<br>      界面:见图(增加新用?<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak44.jpg" width=1024 border=0>      <br><br>    4.3 开发组列表<br>      功能q?列表方式列出所有开发组,可以选择某条记录q行修改,可以弹出框Ş式查看某记录详情,可以删除某条记录.<br>      界面控g:序号Radio(可以选择某条记录),修改按钮(对记录进行修?,删除按钮(Ҏ条记录进行删?<br>      界面标签(Label):可选项,开发组名称,描述.<br>      界面:见图(开发组列表)<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak45.jpg" width=1024 border=0><br>      <br>    4.4 增加新开发组<br>      功能q?增加新开发组.<br>      界面控g:l名U文本框(输入开发组名称),备注文本?输入备注).提交按钮.<br>      界面标签(Label):l名U?备注.<br>      界面:见图(增加新开发组)<br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak46.jpg" width=1024 border=0><br>      <br>   4.5 日志列表<br>      功能q?分页列出pȝ日志.用户删除某条记录,可以弹出框Ş式查看某条记录详?<br>      界面控g:删除按钮.<br>      界面标签(Label):可选项,日志旉,用户ID,操作概述.<br>      界面:见图(日志列表)<br><br><img height=578 alt="" src="http://www.aygfsteel.com/images/blogjava_net/diegoyun/21265/o_bak47.jpg" width=1024 border=0> <br><br><br>   Diego该原型交给乌有,乌有据此编写需求分析说明书,和子虚先生作q一步的交流. <img src ="http://www.aygfsteel.com/diegoyun/aggbug/108462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/diegoyun/" target="_blank">Diego</a> 2007-04-04 16:25 <a href="http://www.aygfsteel.com/diegoyun/archive/2007/04/04/java_san.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>?乌有和Diego的对?如何定需?http://www.aygfsteel.com/diegoyun/archive/2007/04/04/java.htmlDiegoDiegoWed, 04 Apr 2007 08:13:00 GMThttp://www.aygfsteel.com/diegoyun/archive/2007/04/04/java.htmlhttp://www.aygfsteel.com/diegoyun/comments/108460.htmlhttp://www.aygfsteel.com/diegoyun/archive/2007/04/04/java.html#Feedback2http://www.aygfsteel.com/diegoyun/comments/commentRss/108460.htmlhttp://www.aygfsteel.com/diegoyun/services/trackbacks/108460.html   
    ?Diego,对这个系l的看法怎样?
    D:?我觉得我们遗漏了某些东西.查看bug列表?是允许所有用h看呢?q是l过pȝ验证的用?
    ?.... 我觉得应该是l过pȝ验证的用户吧.
    D:不一?如果用户要登录之后才能看到bug列表,不方?理想状况应该打开pȝp看到.   
    ?但是你要考虑q么一个问?假设bug按发现时间的序分页列出且bug的数量很?很可能在W一该用户看不到属于自qbug,他就以ؓ没有bug.假如我们要求他必dd,那我们就可以Ҏ他的d信息,列出他的bug的L,bug的列?..{等.
    D:我上当当|购书的时?发现他们可以在不d的情况下C用户的浏览历?我猜惌可以通过写用Lcookie实现.
    ?但我们公司的技术h员对q项技术不?我可不能凭猜确定这个需?
    (虽然Diego跃跃Ʋ试,但看C有先生坚决的色,也只有妥?
    D:好吧,那我们就必须先登?再看列表.
   
    (于是乌有先生~写pȝ的用例如?)
   
    用例1:用户查看bug列表
    1.用户点击"bug列表"标签,查看属于自己的bug列表.   
    前置条g:用户已登录系l?
   
    (该用例获得一致通过)
   
    (乌有先生~写pȝ用例2)
    用例2:用户查看bug详细信息
    1.用户点击bug列表中的某个bug,q入bug详细信息面.
    2.用户可以修改bug的状?修改旉.
    前置条g:用户已登录系l?
   
    D:我发?如果pȝ要求用户必须先登录才能查看bug,那么此时pȝ列出的bug都是他的,列出其他人的bug好像没什么必?
    ?但是你要考虑,假设我是目l理或者测试组l长,我想看到所有bug的列?pȝ列出所有bugq是必要?
    D:解决办法有两U?1)讉Kpȝ的时?Ҏ某种逻辑(如时?模块,bug性质)列出bug的列?大家不用d可以看?我称q个?公共bug列表界面".用户一讉Kpȝp看到q个界面. 2)或者用L录之??列出所有bug"列表.当然,用户q可以构造自qqo?以决定列出bug的条?
    ?那么其实"列出所有bug"?列出自己的bug"功能可以合ƈC?只不q默认状态列出属于自qbug,单的选取条g后又可以列出所有bug.
    D:?q种x不错.而且,各自选择应该能汇L一个名U?姑且UC滤器.用户可以建几个常用的qo器以供快捷?
    ?好办?
   
    (于是乌有先生修改用例1如下:)
   
    用例1:用户查看bug列表
    1.用户点击"bug列表"标签,查看bug列表. (此时列出的所有bug属于该用?.
    2.用户可以选择某些条g,pȝҎq些条g列出相应的bug.如果什么条仉不?pȝ列出所有bug.
    前置条g:用户已登录系l?
   
    (乌有先生l箋~写用例如下)
   
    用例3:用户dbug
   1.用户炚w?dbug"标签,q入dbug界面.   
   2.用户可以dbug,讑֮bug的简单描q?详细描述,bug的发现时?修复旉,所属模?d?所有h,修改?状?
  
   用例4:用户增删改过滤器
   1.用户点击"qo器列?标签,查看当前qo器列表和当前所采用的过滤器.
   2.用户可以增删Ҏ的过滤器.
  
   (乌有满意的伸懒?
   ?我想差不多了.q个pȝ实不算太复?
   D:我设计个原型,然后一h子虚先生l箋讨论.
   ?好的,加a!

Diego 2007-04-04 16:13 发表评论
]]>
应用开发的思?/title><link>http://www.aygfsteel.com/diegoyun/archive/2007/03/28/thinking_java.html</link><dc:creator>Diego</dc:creator><author>Diego</author><pubDate>Wed, 28 Mar 2007 10:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/diegoyun/archive/2007/03/28/thinking_java.html</guid><wfw:comment>http://www.aygfsteel.com/diegoyun/comments/107038.html</wfw:comment><comments>http://www.aygfsteel.com/diegoyun/archive/2007/03/28/thinking_java.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/diegoyun/comments/commentRss/107038.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/diegoyun/services/trackbacks/107038.html</trackback:ping><description><![CDATA[    一 生活灿烂,望君多珍?br />    写下q篇牢骚文之前,先简略描qC番在下目前的生存状?上班旉:基本没事情做,在看各种自己感兴的技?理论,写一些实늚代码,每天下午4?必到g溜达15分钟,Z喝杯咖啡;晚上,M,写程?周末,游玩,唱K,球.<br />    很开心的日子,对不?<br />    好和悲惨通常不分?作ؓ我们公司的Y件程序员,我体会更?更多的时候我在出?那时候我不可能还在这个匆忙的城市度过自己的悠闲时?我会深入国大后?老老实实的y在某个城市政府部门某栋小楼的某个办公?有时候是机房),每天像销?商务人员一样向官员了解他们需要的软g功能,然后快速开发部|以供他们?然后{待他们的诘责再要求,然后y回机房老老实实再改程序再部v再接受审?.....循环周而复?没有周末,没有闲暇,没有阛_,没有球.<br />    在一个备受对方刁隄目实施q程?我在某地q了四个月这L日子.q箋120天啊!    <br />    所?在没有出差的日子(不出差也意味着我在公司会无所事事),我要情的n受生z?<br />    <br />    ?<br />    q两q大家对spring的赞之C直不l于?囿于工作性质和时?我不能太深入的实践这个框?d只是买那?lt;j2ee development without ejb>来翻?Johnson 的论点确实深得我?很多时?用户其实不需要分布式,不需要更Ҏ据库,不需要太q笨重的事务理...(q些对用h说都是透明?,他们兛_的只是Y件如何满他们的需?让他们能快的展开工作.为此,我们设计的系l就要开发周期短,易维?灉|易增加功?q要_健壮......<br />    什?高灵zL?高可靠?高健壮?不是我们一直追求的目标?你也怼q么反驳?<br />    问题是我们所鼓吹的跟我们所实际做的完全两样.在下早年曑֯sun的pet store模型很感兴趣,把相x献源码基本看了几?q以开发h员的w䆾实际参与了一个应用该模型q行开发的大型目.该项?0-100人的规模,d?q?我在目快要接近成功的时候离开了这个公?回首q段开发经?不胜其苦.应用q类模型q行开?Ҏ不可能做到所谓的高灵zL?易于l护?易于提高生?每测试一个ejbp{待15-20分钟启动ejb容器的滋?你尝q吗?<br />    q段旉写了一些spring的代?很ؓspring的简略而惊?但spring是银弹?在我正要在公司内部写一pd文鼓吹spring之前,我这么问自己.我悲哀的回忆v,我的悲惨l历完全和技术无??spring采用ioc,E序易于试;spring包装了rmi,很方便的完成ejb的功?spring提供了各著名持久框架的胶?让ibatis,hibernate,jdo都能L集成到其?..<br />    但是,我们原来的框架也不算太差?虽然׃前期规划不好,代码风格混ؕ不堪,水^参差不齐,但从架构l成,开发周期和q行性能而言,以满用户的实际需求了(pȝ的实际运行也证明了这?.那么,问题I竟在哪?<br />    <br />    ?br />    我问自己.问题在于技术吗?也许?销售和市场人员是这么抱怨的.但如果按照经典的软g工程q程来分?是谁在获取需?谁在~写需求说明书?回答:可能是销售h员和目l理q行调研q而编写需?谁在~写概要设计说明?回答:没有,旉很紧,来不及写.谁在~写详细设计说明?回答:没有...谁在写测试报?回答:来不及写...谁负责部|?反馈信息?回答:具体到每个程序员......<br />    别笑?你也许认?像我目前公司的这U情?是很极端的例?不可能公怸写Q何文?不进行Q何测试的.好的,我告诉你,我们也有文档.我从公司服务器杂乱无章的文档中翻Z最初的需求文?它的内容证明了它是不折不扣的垃圾.我也d了某一两个功能模块的文?q还是我坚持要他们写?,内容和实际程序设计不止差了十万八千里.我找不到试报告,也许q个pȝ真的没有试.p么拿出去部v应用?E序员又怎能不辛?<br />    一句老生常谈的话概括:理问题.q是公司屡见不鲜的毛病.<br />    <br />    ?br />    如果说这个例子过于极?那么看看理良好的公司所开发的目?前文所q应用pet storeq行开发的公司,是某大公司在本地的子公司(US).S的项目开发流E非常规?专门的需求分析员,专门的系l设计师,专门的开发h?专门的测试小l?试人员,试程.....可以说一切资源h员配|都按照大Y件工E的标准q行配置.l果?在开发那?0 * 5 * 12 人月的项目中,众h一L得死L?晚上加班?2Ҏ常有的事.<br />    <人月话>了一个问?开发h员之间的交流成本非常昂贵.<Zg>旗帜鲜明的论?或憧?:在Y件开发中,人是最重要?然而这两本书我认ؓ理论性过Z,g也不W合我国的现?我更喜欢q本书:<软g工艺> 它说:做Y件如打铁,是手艺.系l交l好的程序员,他自然能做出好的软g.好的E序?应该需求分?架构设计,~码各方面都有很q造诣.... q本书真让我爱不释?<br />    我想,即有银?枪法不同的h使用,恐怕效果也不一?最好的说,通常都反映了人本性最深邃的一?同样,要设计最好的E序,必须要由最好的E序员来q行.q里E序员的范畴很广,在我的概念里,是把需求分析师,架构?开发h?试人员都包含进ȝ.<br />    一个好的程序员应该善于与h沟通交?逻辑思维能力要强.有一定的文史哲基,能将枯燥的事物用形象的比Ml给用户.有一定的文笔,能简z流畅的~写需求分析书.<br />    一个好的程序员应该_N系l架?在了解需求之后能q速将抽象的需求实际{换ؓ相对具体的东?如程序原?uml用例?甚至一些能说明情况的草?,以充当需求和E序架构的桥?用户Ҏq些成果表达/修改他们的需?设计师根据这些成果进行框架的设计.<br />    一个好的程序员应该_N各U框架技?熟悉相应数据?指应用开发而言),q样他才能有选择,有比较的定用户的功能如何做,如何做得?<br />    一个好的程序员应该有一定的~码水^.L不能写出太离q代码.<br />    一个好的程序员q要懂得如何L?如何发现pȝ漏洞,甚至如何LM.<br />    ......<br />    <br />    我的水^也就到这里了,其他的我写不?虽然不能孤立的撇开理谈技?但我觉得,假如一好的程序员能够做到了自q最?最后却在公司窝囊的领导下搞怺一个项?那他们也以问心无愧.<br />    <br />    ?br />    以下一pd文是我在公司的无聊之作.刚开始我Z实际应用spring做了个小的源码~陷跟踪pȝ(Bug Tracking System),后来我发现这个程序虽然写出来?但我Ҏ无从评估它是否易?是否易维?是否W合别h的用准?我不得不启动界面让别人实际的看程?最后获??q东西不适合我?的评?老实说花了这么多旉获得q样的评L让h沮.于是我想写几需求和设计文档,以我和别h易于沟?易于交流,而不用每ơ都要实际的启动E序.<br />    原来,在经历整q的出差/开?部v生?我极端怀疑文档的意义.我想不可能在环境很紧q的时候能做到一Ҏ改代码一ҎҎ?但我现在意识?q是自己的认识偏差所D,假如不把文档作ؓE序开发的U束,而作为需求沟?设计思想交流的桥?恐怕它的意义会大大提高.<br />    我很喜欢<理想?gt;,于是把下列小文尽量写成对话的形式.q且借用了司马相如作品的Mh?力求写得生动有趣.<br />    我想和你交流的想法如?<br />    <br />    1)需求分析师如何和用戯天以提炼需?真实模拟国内调研旉?需求难以明的特点,q尽量少的在获取需求过E中使用计算机术?<br />    2)pȝ设计师如何和需求分析师分析需?~写需求说明书.<br />    3)pȝ设计师如何根据需求说明书撰写概要设计,立E序开发所采用的框?<br />    4)实际开发的q程<br />    5)试(也许会省?^_^)<br />    6)其他......<br />    <br />    希望大家不吝赐教,我正在急需反省的时?呵呵.谢了!<br />    <img src ="http://www.aygfsteel.com/diegoyun/aggbug/107038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/diegoyun/" target="_blank">Diego</a> 2007-03-28 18:02 <a href="http://www.aygfsteel.com/diegoyun/archive/2007/03/28/thinking_java.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一 子虚和乌有的对话 (如何获取源码~陷跟踪pȝ的需?http://www.aygfsteel.com/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.htmlDiegoDiegoWed, 28 Mar 2007 03:55:00 GMThttp://www.aygfsteel.com/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.htmlhttp://www.aygfsteel.com/diegoyun/comments/106909.htmlhttp://www.aygfsteel.com/diegoyun/archive/2007/03/28/BUG_TRACKING_SYSTEM.html#Feedback2http://www.aygfsteel.com/diegoyun/comments/commentRss/106909.htmlhttp://www.aygfsteel.com/diegoyun/services/trackbacks/106909.html阅读全文

Diego 2007-03-28 11:55 发表评论
]]>
UML实践(ZT:UML软g工程l织)http://www.aygfsteel.com/diegoyun/archive/2007/03/28/106878.htmlDiegoDiegoWed, 28 Mar 2007 02:22:00 GMThttp://www.aygfsteel.com/diegoyun/archive/2007/03/28/106878.htmlhttp://www.aygfsteel.com/diegoyun/comments/106878.htmlhttp://www.aygfsteel.com/diegoyun/archive/2007/03/28/106878.html#Feedback1http://www.aygfsteel.com/diegoyun/comments/commentRss/106878.htmlhttp://www.aygfsteel.com/diegoyun/services/trackbacks/106878.html【导诅R本文作者在现有UML现状的基上,和我们探讨了目前的UML热潮是怎么产生的?Z么会存在形式MQ以及RUP之类的工L竟存在哪些问题。作者根据自ql验Q给Z解决的徏议?/p>

UML在国内不地方获得了应用。这应该说是个好事,然而背后我们也看到Q这U应用大多属于不够冷静的炒作和跟风,UML在很多时候已l变成了一UŞ式主义的东西。实际上QUML本n所倡导的主旨是很好的,它保证了E序员之间的交流语言QRUP之类的工具也保证了Y件开发过E的规范性,严格保证了先设计后开发,设计阶段有翔实的规范化的文档{。接下来Q我们要看看目前的UML热潮是怎么产生的?Z么会存在形式MQ以及RUP之类的工L竟存在哪些问题?/p>

W一是目前几乎所有的UML工具都非怸好用Q不观、不直观、更不方便,在项目中q行同步l护也很困难。很多项目中用UML基本上可归于形式M的范畴。事实上QUML本n是一U规范,而规范本w的目的在于更好的交沟通和更快更好的设计质量,事实上现在UML的发展已l背Mq些更基本的宗旨。我崇尚单就是美Q最传统的流E图每个人都能看懂(甚至不是E序员也可以Q,现在的UML呢?太多不够体脓和h性化的东西了Q过于抽象化和公式化。我x来会有新的更轻量U的cM的东西取代落后、冗肿和闭的UML。我个h崇尚单就是美…?/p>

W二个问题是目前E序员的普遍素质不够。UML本n基本是于面向对象的Y件设计思想的,没有_优良的OO设计能力Q很难有真正需要UMLcd设计工具去表达自p计意囄必要。这个观点不夸张,其实有的人OO理论很强Q但真正在实践中往往q度设计Q或者设计本w极度不qQ把目开发改成了U研实验和上机实验。另外更多的一些h对自q动手能力很信任,往往忽视设计环节Q基本上目的设计一直处于反复和动荡中。这些程序员不给他们一D|间学习和实践Q是很难成ؓ成熟的设计师的,在基本成熟之前,UML对他们将是一个Ş式化的东西,不会有很强的意义。Andrei曄说程序员要到35岁才会成熟,而代码员可能20多岁可以了。这句话里大概也有“设计本w是个很需要经验的工作”的意思?/p>

W三个问题是数C会层面的宣传误对{印度v归派、外企员工、IT译书作者和出版C、职业培训机构等处于各自的经验、目的和原因Q大部分人完全背ȝ实的盲目鼓吹UMLQ甚臛_乎片面的认ؓUML是软g工程。外企应用UML其实也ƈ不很成功Q不q他们有成熟的培训体p,所以一定程度的弥补了UMLq于晦ӆ的弱点,作ؓ已经掌握他们的外企员工有一些可能会比较片面的欢qUML。而印度v归派的目的就不用多说了,至于培训和译书的人很多都学者成分大于实战成分,他们需要鼓吹UMLQ不q早晚他们会发现更好的东西而放弃对UML的鼓吏V事实上Q现在已l有人开始考虑q样作了?/p>

W四个问题是数E序员非怾赖自动代码框架生成,而这其实Ҏ不是UML的关键问题。他们ؓ了用某些工L成的一点也不符合中国h阅读习惯的代码,情愿攑ּ其他的一切。对他们来说UML只是一个代码生成工兯已Q所以他们作的UML大都没有多大价|比较形式化?/p>

W五个问题是目资源的问题。国内大多数目实际可支配的资源非常有限Q如果给其他外国公司的开发h员看无论开发周期还是资金h力都基本是荒唐可W的。UML实际上应该诏I始l,而不是只在最初的设计阶段Q也应该贯穿整个目l,包括设计、管理、开发、测试所有的人都应该应用它?/p>

我想一般的公司如果没有极大的把握不用太q信UML/RUPQ其实某些基于轻量目q不需要RUP或UML。现在正打算学习UML的同行们Q也可以先放下它,来一定会有更优秀的技术取代它Q现在不如多q旉学习和实践一下OO设计{更基础的东ѝ其实仅仅熟悉一下工兯Y件和交流范式Q将来对你来说只是几天到个把月的事情Q不用那么在意。而对于那些现在已l决定了实战UML的项目,要想获得成功Q我的徏议如下:

W一Q项目周期至g镉K常计划?0%?00%。你必须跟所有h解释_只有q样才能让UML本n有意义,才能切实提高目的设计质量?/p>

W二Q在目开始集中提供一D|间的UML开发培训。诏IK目始l,都要l常q行全方位面向对象设计思想的交(当然是结合UML的)Q力N过交流提高设计质量?/p>

W三Q顶住客户和公司领导斚w的压力,坚持把尽可能多的设计问题在最初的设计阶段解决Q而不要被q匆匆完成Ş式主义的UML设计Q然后把设计丢在一边,开始编码?/p>

W四Q妥善处理部分“精英”程序员的抵触情l。能疏导q|不能疏导应考虑压服甚至他d排除在项目组外。UML量的团队开发ƈ不鼓׃雄主义,不下狠心根本没Z推进下去?/p>

W五Q对目的期望不要太高。无论是面对急于验收向上U邀功的政府客户Q还是公叔R不懂技术只懂蛮q的领导Q都要保持低调,把它当做一个ƈ不见得立竿见q实验…?/p>

好了Q就写这么多Q祝大家好运?br />



Diego 2007-03-28 10:22 发表评论
]]>
վ֩ģ壺 żҿ| ®| | ն| ƽ| Ĭ| | | | | | | | | | ϴ| | ɳ| | | | | ɳ| | ƽ| | | ̨ʡ| Т| ƽ| º| | Դ| | | Ϲ| ߺ| | | | ԫ|