*

Microsoft .NET §Þ³N¥N¨¥¤H±MÄæ¡G

±Ó±¶ªº³nÅé¶}µo¬yµ{

§@ªÌ¡GªLÄ£¬Ã

2003 ¦~ 11 ¤ë

³t«×¬O¥ø·~Ävª§­P³ÓªºÃöÁä¦]¯À¡A³nÅé±M®×ªº³Ì¤j¬D¾Ô¦b©ó¤@¤è­±­nÀ³¥IÅܰʤ¤ªº»Ý¨D¡A¤@¤è­±­n¦bºòÁYªº®Éµ{¤º§¹¦¨±M®×¡A©Ò¥H³nÅé¹Î¶¤°£¤F¦b§Þ³N¤W¥²¶·¤é¯qºë¶i¡A§ó»Ý­n¹B¥Î¦³®Äªº¶}µo¬yµ{¡A¥H½T«O¹Î¶¤¯à°÷µo´§ºî®Ä¡C³o¥¿¬O Agile Process (±Ó±¶ªº³nÅé¶}µo¬yµ{) ©óªñ¦~¨Ó¿³°_ªº¥D­n­ì¦]¡A¥»¤å±N¤¶²Ð¼ÆºØ¼s¬°±µ¨üªº³nÅé¶}µo¬yµ{¡A¤Î¨ä¦b¹B¥Î¤Wªº«ØÄ³¡C

Agile Process - ±Ó±¶ªº¶}µo¬yµ{

´X¥G©Ò¦³ªº³nÅé±M®×³£·|¦b°_©l¶¥¬q­±Á{¿ï¾Ü¶}µo¬yµ{ªº§xÃø¡A¤@ºØ¬O§¹³Æªº¶}µo¬yµ{¡A¥t¤@ºØ¬O²©ö»´«Kªº¬yµ{¡CÁöµM§Ú­Ì¤F¸Ñ±Ä¥Î§¹³Æªº¶}µo¬yµ{¥i¥H´£°ª³nÅ骺«~½è¡A¦ý¬O¦]¬°¤í¯Ê¤H¤O¡B¤u¨ã»P®É¶¡¡A§Ú­Ì±`·|³Q­¢±Ä¥Î²¤Æªº¬yµ{¡A¦ý¨Æ»PÄ@¹H¡A¤j³¡¤Àªº±¡ªp§Ú­Ì¤´µMÃø¥H¦b¹wºâ¤º¤Î®É§¹¦¨±M®×¡C

Agile Process (±Ó±¶ªº¶}µo¬yµ{) ¬O¤@ºØ³nÅé¶}µo¬yµ{ªºªxºÙ¡AAgile Process ¨ã¦³¤U¦C´X¶µ¦@³qªº¯S©Ê¡G

  1. «È¤á»P¶}µo¤H­û§Î¦¨±K¤Á¦X§@ªº¹Î¶¤¡A¦]¬°«È¤áµLªk©óªì´Á©w¸q§¹¾ãªº³W®æ¡A¦Ó¶}µo¤H­û©ó¶}µo¹Lµ{¤¤¤]±`±`µLªkª¾±x¥~¦bÀô¹Ò©Î·~°ÈªºÅܰʡA©Ò¥H»Ý­n¨âªÌ±K¤Á¦X§@¤è¯à¶}µo¾A¥Îªº³nÅé¡C
  2. ±M®×³Ì²×ªº¥Ø¼Ð¬O¥i°õ¦æªºµ{¦¡¡A¦]¦¹©Ò¦³ªº¤¤¶¡²£«~¥²¶·¸g¹L¼f·Vµû¦ô¡A½T»{¦³§U©ó³Ì²×¥Ø¼Ð¡A¤~»Ý­n»s§@¤¤¶¡²£«~¡C
  3. ±Ä¥Î Iterative »P Incremental ¤è¦¡¤À¶¥¬q¶i¦æ¡A±K¶° review ¬O§_²Å¦X»Ý¨D¡C
  4. ¬yµ{¥i¥H²³æ¡A¦ý³W¹º»P°õ¦æ¥²¶·ÄYÂÔ¡C
  5. ±j½Õ¹Î¶¤¦X§@¡A½á¤©°ª«×ªº³d¥ô¡A¹Î¶¤¦³¦Û¥DÅv±o¥H¦]À³Åܤưµ½Õ¾ã¡C

RUP ¶}µo¬yµ{ - Rational Unify Process

RUP ¬° IBM Rational ¤½¥q¸g¹L¦h¦~ªº¬ãµo»P¸gÅç©Ò´£¥Xªº³nÅé¶}µo¬yµ{¡A¨ä¤º®e§t»\ Business modeling, Requirement Modeling, Logical Design, Implementation, Testing, Deployment µ¥³nÅé¶}µo¥Í©R¶g´Áªºª½±µ¤u§@¡A»P Project Management, Change & Configuration Management¡AEnvironment support µ¥¤ä´©©Ê¤u§@¡CRUP ªº¤º®e«D±`Â×´I¡A¤£¦Pªº±M®×»Ý­n¤£¦P½Õ¾ã¡AIBM Rational ´£¨Ñ RUP workbench ¤u¨ã¡A¤è«K½Õ¾ã RUP¡A¨Ã¤½§G©ó Web¡A¤è«K±M®×¦¨­û¿í´`²Î¤@ªº¬yµ{³W½d¶i¦æ¤u§@¡C

RUP ªº¥D­nºë¯«¬°¡G1. ±M®×¶i¦æ±Ä¥Î Iterative µ{§Ç¤À¶¥¬qº¥¶i¦a§¹¦¨±M®×¥\¯à¡F2. ¼sªx¨Ï¥Î Visual Modeling ©ó°Ó·~»Ý¨D¤ÀªR¡B¨t²Î¤ÀªR»P¨t²Î³]­p¡F3. ±j½Õ¬[ºc³]­p¡F4. ¹ï¨C¶µ¤u§@©Ò»Ý­nªº§Þ³N¡B¤u¨ã¡B°µªk¡B½d¥»¡BÀˬd¶µ¥Ø§¡¦³¸Ô²Óªº©w¸q¡A¬[ºc§¹³Æ¥B¨ã¦³¥i½Õ¾ãªº¼u©Ê¡C

¦]¬° RUP ªº¬yµ{³W½d»P¬ÛÃö§Þ³N¸û½ÆÂø¡A©Ò¥H¾É¤J®É¥²¶·ª`·N´X­Ó¦]¯À¡G1. ¥DºÞªº¤ä«ù¥H½T«O¨¬°÷ªº¸ê·½§ë¤J¡F2. ¤À¶¥¬q¾É¤J¡F3. ¾A·íªº°V½m»P±K¤ÁªºÅU°Ý«t¸ß¡F4. ¨Ï¥Î Modeling §Þ³N®É»Ý­n¦Ò¶q Coding ªº¹ê§@Àô¹Ò¡F5. ¨}¦n¹Î¶¤ªººÞ²z¡A¥H·¾³q¡B­@¤ß»P°í«ù¸Ñ¨MÅÜ­²ªº¤H©Êªý¤O¡C

XP ¶}µo¬yµ{ - eXtreme Programming

XP ¥çºÙ¬°²×·¥¬yµ{¡A¬O³Ì»´¶q¯Åªº¶}µo¬yµ{¡A¨ä³Ì¥D­nªººë¯«¬O¡y¦b«È¤á¦³¨t²Î»Ý¨D®É¡Aµ¹¤©¤Î®Éº¡·Nªº¥i°õ¦æµ{¦¡¡z¡A©Ò¥H³Ì¾A¦X»Ý¨D§Ö³tÅܰʪº±M®×¡CXP ¸g¹L 6 ¦~ªº¹ê§@»P­×§ï¡A¤wºt¤Æ¬°ºë½oªº¶}µo¬yµ{¡A¦ý¤´¤£¥¢¨äºë²ªº¯S©Ê¡A¥¦±j½Õ«È¤á©Ò­nªº¬O workable ªº°õ¦æ½X¡A©Ò¥H§â»P¼¶¼gµ{¦¡µLÃöªº¤u§@­°¦Ü³Ì§C¡A¨Ã­n¨D«È¤á»P¶}µo¤H­û³Ì¦n¥H side-by-side ªº¤è¦¡¤@°_¤u§@¡C

XP ¶}µo¬yµ{ªº°ò¥»¨BÆJ¬°¡G1. ¶}µo¤H­ûÀH®É¥i¥H©M«È¤á¶i¦æ¦³®Ä·¾³q¡A¼¶¼g user stories ¥H½T»{»Ý¨D¡C2. ²©ö§Ö³tªº¨t²Î³]­p¡A¼¶¼g¿W¥ßªºÅçÃÒµ{¦¡¥H¸Ñ¨M¯S®í§xÃøªº°ÝÃD¡A§ä¥Xºtºâªk§Y¥i¥á±óÅçÃÒµ{¦¡¡C3. ³W¹º¦h¦¸¤p«¬¶¥¬qªº±M®×­p¹º¡A¥H³Ì§Ö³t«×§¹¦¨¨C¤@¶¥¬qªºµ{¦¡¥æ¥I«È¤á¡A«È¤á­t³d Acceptance tests¡F4. Coding «e¥²¶·§¹¦¨ Unit Test »P Acceptance tests µ{§Ç¡A©Ò¦³¼Ò²Õ¾ã¦X«e³£¶·¸g¹L Unit Tests¡F5. ¶}µo¤H­û¥²¶·§Ö³t¦^À³ Bug »P»Ý¨DÅܧó¡F6. ­n¨D¤G¤H¤@²Õ¨Ï¥Î¤@¥x¹q¸£³]­pµ{¦¡¡A·í¤@¤H coding ®É¡A¥t¤@¤H­t³d«ä¦Ò»P³]­p¡F7. µ{¦¡¥²¶·²Å¦Xµ{¦¡³W½d¡A¨Ã±`°µµ{¦¡ªº­«¾ã (Refactoring)¡C

XP ÄÝ©ó¸ûºë²ªº¬yµ{¡A©ó¾É¤JÀ³ª`·N´X¥ó¨Æ±¡¡G1. ³Ì¦n¦³ÅU°Ýµ¹¤©¨ó§U¡F2. «ùÄòªº Review¡F3. ¥i¾A·í½Õ¾ã¬yµ{¡A¦ý¤£¥i¥¢¥h¨ä°ò¥»ºë¯«¡C

SCRUM ¶}µo¬yµ{

SCRUM ¶}µo¬yµ{¬O Agile Process ªº¤@ºØ¡A¥H­^¦¡¾ñÆV²yª§²y¶¤§Î (Scrum) ¬°¦W¡A°ò¥»°²³]¬O¡y¶}µo³nÅé´N¹³¶}µo·s²£«~¡AµLªk¤@¶}©l´N¯à©w¸q Final Product ªº³Wµ{¡A¹Lµ{¤¤»Ý­n¬ãµo¡B³Ð·N¡B¹Á¸Õ¿ù»~¡A©Ò¥H¨S¦³¤@ºØ©T©wªº¬yµ{¥i¥H«OÃÒ±M®×¦¨¥\¡z¡CScrum ±N³nÅé¶}µo¹Î¶¤¤ñÀÀ¦¨¾ñÆV²y¶¤¡A¦³©ú½Tªº³Ì°ª¥Ø¼Ð¡A¼ô±x¶}µo¬yµ{¤¤©Ò»Ý¨ã³Æªº³Ì¨Î¨å½d»P§Þ³N¡A¨ã¦³°ª«×¦Û¥DÅv¡Aºò±K¦a·¾³q¦X§@¡A¥H°ª«×¼u©Ê¸Ñ¨M¦UºØ¬D¾Ô¡A¸P«O¨C¤Ñ¡B¨C­Ó¶¥¬q³£´Â¦V¥Ø¼Ð¦³©ú½Tªº±À¶i¡A¦]¦¹ SCRUM «D±`¾A¥Î©ó²£«~¶}µo±M®×¡C

SCRUM ¶}µo¬yµ{³q±`¥H 30 ¤Ñ¬°¤@­Ó¶¥¬q¡A¥Ñ«È¤á´£¨Ñ·s²£«~ªº»Ý¨D³W®æ¶}©l¡A¶}µo¹Î¶¤»P«È¤á©ó¨C¤@­Ó¶¥¬q¶}©l®É¬D¿ï¸Ó§¹¦¨ªº³W®æ³¡¥÷¡A¶}µo¹Î¶¤¥²¶·ºÉ¤O©ó 30 ¤Ñ«á¥æ¥I¦¨ªG¡A¹Î¶¤¨C¤Ñ¥Î 15 ¤ÀÄÁ¶}·|À˵ø¨C­Ó¦¨­ûªº¶i«×»P­pµe¡A¤F¸Ñ©Ò¾D¹Jªº§xÃø¨Ã³]ªk±Æ°£¡C

SCRUM »P¶Ç²Î¶}µo¬yµ{¤Î±M®×ºÞ²z®t²§¸û¤j¡A©ó¾É¤J®É³Ì¦n¦³ÅU°Ý¨ó§U¡C

Á`µ²

Agile Process ªººë¯«¤w¸g¦¨¬°¦@ÃÑ¡A¦ý¬O¨S¦³¤@ºØ©T©wªº¬yµ{¥i¥H­«½Æ¨Ï¥Î¦b¤£¦Pªº±M®×¤W¡C¦Ó¥B¤£ºÞ¬O RUP¡BXP¡BSCRUM¡B©Î¨ä¥Lªº¶}µo¬yµ{³£¤¹³\¬Û·í¤jªº¼u©Ê¡A§Ú­Ì¥²¶·«ö±M®×©Ê½èªº¤£¦P¡A½Õ¾ã©Î²V¦X¥X¾A¦Xªº¶}µo¬yµ{¡A¨Ã¤¹³\¹Î¶¤©ó¶i¦æ¤¤°µ¥²­nªº¼u©Ê­×§ï¡A¤è¯à¹F¦¨¥Ø¼Ð¡C

°Ñ¦Ò¸ê®Æ

  RUP¡Gwww.rational.com
  XP¡Gwww.extremeprogramming.org
  SCRUM¡Gwww.controlchaos.com
  AGILE¡Gwww.agilealliance.org

¡@


§@ªÌ²¤¶

ªLÄ£¬Ã¬° Microsoft.NET §Þ³N¥N¨¥¤H¡A¥Ø«e¥ô¾²Ä¤Tªi¸ê°T§Þ³NÁ`ºÊ¡A¾ú¥ô²Ä¤Tªi¸ê°T±Ð¨|°V½m³B³Bªø¤Î¨|ùּƦì¬ì§ÞÁ`¸g²z¡C±Mªø©ó¸ê°T¨t²Î³W¹º¤Î³nÅé¶}µo§Þ³N¡A¾Ö¦³ Microsoft MCSD / MCSE / MCDBA¡ARational OOAD¡ALotus Notes / Domino µ¥»{ÃÒ¸ê®æ¡A¨Ã¬° Microsoft.NET / Java J2EE / ª«¥ó¾É¦V¨t²Î¤ÀªR³]­pªº¸ê²`Á¿®v¤Î¦h®a¤½¥ÁÀç¾÷ºcªº e ¤ÆÅU°Ý¡C

·N¨£»P¤ä´©

 ±z¦³¥ô¦ó°ÝÃD¡B·N¨£©Î«ØÄ³¶Ü¡H±z¥i¥H³z¹L¤U¦C¹q¤l¶l¥ó»P§@ªÌ³sµ¸¡G
 lyaochen@ms3.hinet.net