You are on page 1of 5

c Ê 

       


   
  
 Ê           
    !"
O  
  
  

  
 



 
  

 

  
 
 
  
  !   
 " 
"

  
 " #"
O  

 $
 

  

 
 "    !"#

c Ê u  
: Business and development cooperate to produce the maximum
business value as rapidly as possible The planning game happens at various scales, but
the basic rules are always the same:
c Ê Business comes up with a list of desired features for the system Each feature is
written out as a £    , which gives the feature a name, and describes in
broad strokes what is required User stories are typically written on 4x6 cards
2 Ê èevelopment estimates how much effort each story will take, and how much
effort the team can produce in a given time interval (the iteration)
3 Ê Business then decides which stories to implement in what order, as well as when
and how often to produce a production releases of the system
2 Ê
  : Start with the smallest useful feature set Release early and often, adding
a few features each time
3 Ê  
   : Each project has an organizing metaphor, which provides an easy to
remember naming convention
4 Ê 
 : Always use the simplest possible design that gets the job done The
requirements will change tomorrow, so only do what's needed to meet today's
requirements
5 Ê    u : Before programmers add a feature, they write a test for it When
the suite runs, the job is done Tests in XP come in two basic flavors
c Ê £ u are automated tests written by the developers to test functionality as
they write it Each unit test typically tests only a single class, or a small cluster of
classes Unit tests are typically written using a unit testing framework, such
as JUnit
2 Ê [   u (also known as Î u ) are specified by the
customer to test that the overall system is functioning as specified Acceptance
tests typically test the entire system, or some large chunk of it When all the
acceptance tests pass for a given user story, that story is considered complete At
the very least, an acceptance test could consist of a script of user interface actions
and expected results that a human can run Ideally acceptance tests should be
automated, either using the unit testing framework, or a separate acceptance
testing framework
6 Ê   : Refactor out any duplicate code generated in a coding session You can do
this with confidence that you didn't break anything because you have the tests
ü Ê    

: All production code is written by two programmers sitting at one


machine Essentially, all code is reviewed as it is written
8 Ê     : No single person "owns" a module Any developer is
expect to be able to work on any part of the codebase at any time
9 Ê       : All changes are integrated into the codebase at least daily The
tests have to run c both before and after integration
c ʺ   : Programmers go home on time In crunch mode, up to one week
of overtime is allowed But multiple consecutive weeks of overtime are treated as a sign
that something is very wrong with the process
cc Ê    
 : èevelopment team has continuous access to a real live customer, that
is, someone who will actually be using the system For commercial software with lots of
customers, a customer proxy (usually the product manager) is used instead
c2 Ê    : Everyone codes to the same standards Ideally, you shouldn't be able
to tell by looking at it who on the team has touched a specific piece of code


ÿÊ ÊÊÊ
 Ê   Ê 
Ê  Ê
Ê Ê Ê
 

ÊÊÊÊÊÊÊÊÊÊÊÊÊ  Ê Ê

Π
 
 

  % 
 
  
  
    
 
 Π
 
 
  
  



 
 
   




$ Π
 
   
 "
 
"  
 
&" "    
 

' ( 
  %)  
   
  
 

 
 



 
 

*  
%(    

 " "
 
+   
,  
  - .




   
  
 

 
    
     
 

‘

ºÊ ÊÊÊÊ Ê  Ê 


ÊÊ  Ê
 Ê ÊÊ ÊÊ

ÊÊÊÊÊÊÊÊÊÊÊÊÊ  ÊÊÊ  Ê Ê  


  Ê

Ê Ê ÊÊ
Ê   ÊÊ  Ê
 ÊÊ ÊÊ  Ê
 Ê Ê

ÊÊÊÊÊÊÊÊÊÊÊÊ Ê  Ê Ê 
ÊÊ  Ê
 ÊÊÊ ÊÊ Ê  Ê  Ê
 Ê
ÊÊÊÊÊÊÊÊÊÊÊÊ  Ê

 Ê
 Ê
 Ê Ê
[Ê ÊÊ Ê
   ÊÊ
Ê Ê
Ê

Ê  Ê   Ê
Ê Ê ÊÊ
 Ê  Ê  Ê
ÊÊ
 
Ê Ê  Ê
ÊÊ  Ê   ÊÊ  Ê

  ÊÊ  ÊÊ ÊÊ ÊÊ ÊÊ Ê Ê  Ê
ÊÊ  Ê
   Ê

 Ê
 ÊÊ
[Ê  Ê  Ê Ê Ê
Ê  Ê   

ÊÊÊ  Ê  ÊÊ ÊÊÊ
ÊÊ[

 ÊÊ
Ê[Ê
Ê Ê 
Ê
  Ê  
Ê[Ê
Ê Ê 
Ê
ÊÊ Ê Ê
 Ê Ê
ÊÊ ÊÊ
Ê
Ê

 Ê 
Ê
Ê
Ê
 ÊÊ
[Ê
ÊÊ ÊÊÊ 
ÊÊ 
 Ê
ÊÊ Ê Ê Ê Ê  Ê ÊÊ  Ê
ÊÊ
 
Ê
ÊÊ
 Ê  Ê[Ê Ê  
Ê
Ê 
ÊÊÊÊ Ê 
Ê Ê
Ê
ÊÊÊ

[    


  



  

/


   
0 




 

  
 

[         0


    




 
 
    
 $


  

 
 
    
 

0 


   *1 
  




2[       0


 

 

  



  
 

Ê
Ê
Ê

Ñ Ê  Ê   Ê Ê 


Ê Ê Ê Ê  Ê !Ê
 Ê 
Ê

ÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ÊÊ Ê Ê ÊÊ ÊÊÊ ÊÊ


 Ê ÊÊ Ê
 Ê
 ÊÊ
ÊÊ
Ê
Ê
Î$%
  
&'

- 
34
  .


 
    %-(O

)

3%-(O
0 
  


 
%Π 30%-(O  
      
 
   

   


0
3%-(O  
    
  

) 
3* %-(O
  

 
 
  

Ê
" Ê ÊÊÊ
  ÊÊ #ÊÊÊ Ê #Ê ÊÊ  Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊ Ê
  ÊÊ  Ê   Ê Ê$ÊÊ
Ê ÊÊ%& Ê
  ÊÊ
Ê
Ê
4 
 356
 
  
 

 
  
* 3%  
.$0
  

Π

 3%

  
  
- 
 3(   
  

 
4

 3( 

 
 
- 3( 7 8


Ê
Ê
' Ê !( Ê Ê ÊÊ ÊÊÊÊ  Ê
 Ê ÊÊ ÊÊ
 Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊ Ê

Ê ÊÊ Ê


 Ê Ê

)Ê ÊÊÊÊ
   ÊÊÊ  ÊÊ$Ê ÊÊÊ$  Ê Ê
 Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊ Ê
   Ê ÊÊ
  ÊÊÊÊÊO  Ê
  Ê

&* Ê  Ê ÊÊ !Ê


 Ê
 
 Ê
ÊÊ ÊÊÊ  Ê
   ÊÊ !Ê  Ê
  Ê
Ê

 [ Ê
Êclassifications help managers to understand the types of CASE tools and
their role in
Supporting software process activities There are several ways to classify CASE tools
each of which gives us a different perspective on these tools 
Êthis section I discuss
CASE tools from three of these perspectives:
c  
   where CASE tools are classified according to their specific
function
       where tools are classified according to the process activities
that they support
  
    where CASE tools are classified according to how
they are organized into integrated units that provide support for one or more
Process activities
Ê
&& Ê + 
#ÊÊ 
 ÊÊ
 Ê Ê
 Ê Ê
  Ê ÊÊ Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊ$Ê #ÊÊÊ #Ê 
ÊÊÊ, Ê-
 Ê ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊ 
 ÊÊ
Ê !Ê
 Ê Ê$ÊÊÊ!.Ê Ê
 /
 ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ  Ê   ÊÊÊ 0Ê $ÊÊ #Ê( Ê Ê  ÊÊÊ $ÊÊÊ Ê

ÊÊÊÊÊÊÊÊÊÊÊÊ, Ê  #Ê ÊÊ
ÊÊÊm  mm
ÊÊ ÊÊ
Ê  ÊÊ
 
 ÊÊ Ê
 

You might also like