Chapter 8
An Example

8.1 Project Definition

 \newproject
 
      \defmilestone{m1}{Announcement}
         {27/02/95}
         {}
         {You read the WWW announcement.}
 
       \deftask{t1.1}{FTP}
         {28/02/95}{01/03/95}
         {you:10}
         {}
         {You ftp the .sty files, manuals and examples.}
 
       \deftask{t1.2}{Test}
         {01/03/95}{02/03/95}
         {you:60}
         {t1.1}
         {You test the system locally.}
 
       \deftask{t1.3}{Installation}
         {02/03/95}{03/03/95}
         {system~engineer:30}
         {t1.2}
         {You ask your system engineer to install the package
         for your center.}
 
       \defproject{t1}{Package}
         {t1.1,t1.2,t1.3}
         {m1}
         {You get and install the package.}
 
       \deftask{t2.1}{Manual}
         {01/03/95}{04/03/95}
         {you:10}
         {t1.1}
         {You review the manual and examples.}
 
       \deftask{t2.2}{Ask}
         {27/02/95}{04/03/95}
         {you:5,someone:5}
         {}
         {You communicate with others.}
 

       \deftask{t2.3}{Experiment}
         {03/03/95}{04/03/95}
         {you:30}
         {t1.2}
         {You set up a small example.}
 
       \defproject{t2}{Help}
         {t2.1,t2.2,t2.3}
         {m1}
         {You get to know the system.}
 
      \defmilestone{m2}{Usage}
         {04/03/95}
         {t1}
         {You can use TeXProject.}
 
     \defproject{texproject}{TeXProject}
         {m1,t1,t2,m2}
         {}
         {Welcome to TeXProject.}
 
 \endnewproject

8.2 Text Output

The following text is an example of output using the project definition of section 8.1. In the text, we have emphasized all the TeXProject outputs and shown the corresponding commands between parentheses.

The project is called TeXProject (\name{texproject}).

It starts on the 27/02/95 (\start{texproject}) and ends on the 04/03/95 (\finish{texproject}).

It involves the following people: you, system engineer, someone (\resource{texproject}), and a total amount of man-minutes of 150 (\effort{texproject}). You will be involved for 115 (\effort{texproject,you}) minutes.

The task Installation (\name{t1.3}) has the following description: You ask your system engineer to install the package for your center. (\annotation{t1.3}).

8.3 Graphical Output

The following charts and diagrams is an example of graphical output using the project definition of section 8.1. The Charts and diagrams follow their generating commands.

8.3.1 Tree Diagram

 \Draw
 \TreeSpace(C,10,10)
 \treediagram(texproject)
 \EndDraw

                                          ---------------
                                          --TeXProject----
        |---------------|-----------------------------------------------------------------|
 -Announcement-| |   Package    --                                  |    Help     -|-----Usage----|
 -------|--------------------------------|               |---------------------------------|------
------FTP-----|  -----Test-----|  --Installation---| ----Manual----|  -----Ask------| |--Experiment---|
---------------  ---------------  --------------- ---------------  --------------- |---------------

 \Draw
 \TreeAlign(H,-1,0)(0,0,0)
 \treediagram(texproject)
 \EndDraw

                   --------------|
                 ---Announcement--
                 |                    --------------|
                 |                  -------FTP-------
                 | ---------------- | --------------|
                 ------Package-------|------Test------
                 |                  | --------------|
---------------- |                  ----Installation----
---TeXProject-----|                    --------------|
                 |                  ------Manual-----
                 | ---------------- | --------------|
                 |------Help--------|------Ask-------
                 |                  | --------------|
                 |                  ----Experiment----
                 | --------------|
                 ------Usage------

8.3.2 Pert Diagram

 \Draw
 \pertdiagram(texproject)
 \EndDraw

 --------------|     ----------------
 -Announcement------------Help------|
        |
----------------
----Package----|
        |
 --------------|
 ----Usage------

 \Draw
 \ArrowHeads(1)
 \adjustpert(t1,30 & m2,-30 )
 \pertdiagram(texproject)
 \EndDraw

     --------------|      ---------------
     --Announcement------||-----Help-----|
              --|
           -----||--------
           ----Package----|
          |----
---------|||--|
----Usage------

 \Draw
    \pertnodestyle{\annotation{#1}}
    \pertdiagram(texproject)
 \EndDraw

 --------------|     ----------------
 |  You read    |    --Yougettoknow ||
 |  the WWW     ---------the-system.----|
 -announcement.--
        |
----------------
|  You get and||
|   install the  ||
----package.----|
        |
 --------------|
 | You can use  |
 --TeXProject.---

 \Draw
   \ArrowHeads(1)
   \pertlimits(,1)
   \pertdiagram(texproject)
 \EndDraw

|--------------|   |--|||||-
 -Announcement-----|||Help-|
       ||
----------------
----Package----|
       ||
|--------------|
|----Usage------

                        |||||||||||
---------------||-----|Announcement||||
-----Help------|        ||||||||||||

 \Draw
   \ArrowHeads(1)
   \Define\externalnode(1){
      \filtercommand\name{#1}
      \Node(#1)(--\putcommand--)}
   \pertlimits(,1,\externalnode,\par$\bigoplus$\par)
   \pertdiagram(texproject)
 \EndDraw

--------------| --|||
-Announcement---    Help
       ||
----------------
----Package-----|
       ||
--------------|
-----Usage-----

 o+

---------------|----Announcement
-----Help------|

8.3.3 Effort Chart

 \Draw
 \effortchart(texproject)
 \EndDraw

          ----------------------------------------
          |--|                                   |
          |someone                               |
          |--                                    |
 Help     |------------------------|             |
          |you---------------------|             |
          |------------------------|             |
          ----------------------------------------
          |--------------------------------------|
          |you-----------------------------------|
Package    |                                      |
          |----------------                      |
          |system-engineer---                      |
          |----------------                      |
          ----------------------------------------
          0                 35                 70.0

 \Draw
 \effortchart(texproject,,,,2)
 \EndDraw

           |----------------------------------------
           |--------------------                  |
Experiment  |you-----------------                  |
           |--------------------                  |
           |----------------------------------------
           |someone                               |
           |----                                  |
   Ask     |                                      |
           |----                                  |
           |you-                                  |
           |----------------------------------------
           |-------                               |
 Manual    |you----                               |
           |-------                               |
           |----------------------------------------
           |system engineer------                   |
Installation  |--------------------                  |
           |----------------------------------------
           |--------------------------------------|
   Test     |you-----------------------------------|
           |----------------------------------------
           |-------                               |
   FTP     |you----                               |
           |-------                               |
           |----------------------------------------
           0                  30                 60

 \Draw
 \effortlimits(2)
 \effortchart(texproject,,,,2)
 \EndDraw

          ------------------------------------------
           |--------------------                  |
Experiment  |you-----------------                  |
           |--------------------                  |
          ------------------------------------------
           |someone                               |
   Ask     |----                                  |
           |-------------------|------------------|-
           0                  30                 60

           |--------------------------------------|
           |---                                   |
           |you-                                   |
           |---                                   |
         --|---------------------------------------
           |you----                                |
Manual     |------                                |
         ------------------------------------------
          0                  30                 60

          --|---------------------------------------
            |-------------------                   |
Installation   |system-engineer-------                   |
          --|---------------------------------------
            |--------------------------------------|
   Test      |you------------------------------------|
          --|---------------------------------------
            |                  |                  |
           0                  30                 60

       --|---------------------------------------
         |------                                |
FTP      |you----                                |
       --|---------------------------------------

        0                  30                 60

 \Draw
 \Scale(1,0.6)
 \effortstyle(A,3,7,0,0,12)
 \effortchart(texproject,02/03/95,03/03/95,,3)
 \EndDraw

           |----------------------------------------
Experiment  |you---------------|-                  |
           |----------------------------------------
           |someone                               |
           |----                                  |
   Ask     |you|                                  |
           |----------------------------------------
           |you---|                               |
 Manual    |----------------------------------------
           |system-engineer-----|-                  |
Installation  |----------------------------------------
           |you-----------------------------------|
   Test     |----------------------------------------

           0                  30                 60

8.3.4 Schedule Chart

 \Draw
 \schedulechart(texproject,,,,99)
 \EndDraw

            -----------------------------------------|
             |                                       |
Announcement | ox                                      |
             |                                       |
            --     |------------------|              |
             |     |                  |              |
    FTP      |     --------------------              |
            --                                       |
             |                        |----|         |
     Test     |                        |----|         |
            --                                       |
             |                             |----|    |
  Installation   |                             |    |    |
             |                             -----     |
            --                        |-------------||
             |                        |             ||
   Manual    |                        ---------------|
            --                                       |
             ||-------------------------------------||
     Ask     ||--------------------------------------|
            --                                       |
             |                                  |---||
  Experiment  |                                  |   ||
             |                                  -----|
            --                                       |
    Usage    |                                       ox 
             |                                       |
            ------------------------------------------
           27/02/95                               04/03/95

 \Draw
 \schedulelimits(3)
 \schedulechart(texproject,,,,99)
 \EndDraw

            -----------------------------------------|
             |                                       |
Announcement | ox                                      |
             |                                       |
            --     |------------------|              |
             |     |                  |              |
    FTP      |     --------------------              |
            --                                       |
             |                        |----|         |
     Test     |                        |----|         |
            ------------------------------------------

           27/02/95                               04/03/95

          -----------------------------------------|
           |                             |    |    |
Installation   |                             -----     |
          --                                       |
           |                        |-------------||
 Manual    |                        |--------------|
          --                                       |
           ||-------------------------------------||
   Ask     ||                                     ||
           |---------------------------------------|
          ------------------------------------------
         27/02/95                               04/03/95

          -----------------------------------------|
           |                                  |---||
Experiment  |                                  |----|
          --                                       |
           |                                       |
  Usage    |                                       ox 
           |                                       |
          ------------------------------------------
         27/02/95                               04/03/95

8.4 Data Views

8.4.1 Dates

 \Draw
    \setnumericdate\Current{02/03/95}
 
    \pertnodestyle{%
       \setnumericdate\Finish{#1,finish}%
       \ifnum\Finish<\Current \Huge \bf
          \smallskip \name{#1} \smallskip
       \else
          \name{#1}
       \fi  }
 
    \pertdiagram(t1)
 \EndDraw

--------------|
|             |
----FTP|-------
       |
--------------|
-----Test------
       |
---Installation---|
---------------

 \newcommand\showentry[1]{
   \sapply{xx,down,{#1}}
   \sapply{xx,tasks,xx}
   \filtercommand\start{#1}
   \sapply{xx,\item[\putcommand]  \annotation{#1} \getname}
 }
 \newcommand\getname[1]{ \sapply{xx,\name} }
 
 \datesproject{cal}{calendar}{texproject}{}
 \sapply{xx,down,{cal}}
 \begin{description}
    \sapply{xx,\showentry}
 \end{description}
27/02/95
start Ask
28/02/95
start FTP
01/03/95
finish FTP
01/03/95
start Test
01/03/95
start Manual
02/03/95
finish Test
02/03/95
start Installation
03/03/95
finish Installation
03/03/95
start Experiment
04/03/95
finish Manual
04/03/95
finish Ask
04/03/95
finish Experiment

8.4.2 Contributors

 \contributorsproject{c}{contributors}{texproject}{description}
 \Draw
 \TreeAlign(H,-1,0)(0,0,0)
 \treediagram(c)
 \EndDraw

                                      --------------|
                                    -------FTP-------
                                    | --------------|
                                    -------Test------
                   ---------------  | --------------|
                 -------you---------|-----Manual-----
                 | ---------------- | --------------|
                 |                  |------Ask-------
                 |                  | --------------|
--contributors-----|                  --| Experiment
---------------- |                    ---------------
                 |--system-engineer--------Installation---|
                 | ---------------|   ---------------
                 -----someone--------------Ask------|
                   ----------------   ---------------

 \Draw
 \schedulechart(c)
 \EndDraw

            -----------------------------------------|
             |---------------------------------------|
     you     |---------------------------------------|
             |---------------------------------------|
            --                             -----|    |
system engineer|                             -----|    |
             |                             -----     |
            --                                       |
             |---------------------------------------|
   someone    |---------------------------------------|
            ------------------------------------------

           27/02/95                               04/03/95

 \newcommand\info[1]{
    {\bf \name{#1}}:  effort \effort{#1}, \start{#1}--\finish{#1}. }
 \newcommand\cinfo[1]{
     \info{#1}
     \sapply{tasks,down,{#1}}
     \begin{enumerate}
        \sapply{tasks,\tinfo}
     \end{enumerate} }
 \newcommand\tinfo[1]{ \item \info{#1} }
 
 \sapply{contributors,down,{c}}
 \sapply{contributors,\cinfo}

you: effort 120, 27/02/95-04/03/95.

  1. FTP: effort 10, 28/02/95-01/03/95.
  2. Test: effort 60, 01/03/95-02/03/95.
  3. Manual: effort 10, 01/03/95-04/03/95.
  4. Ask: effort 10, 27/02/95-04/03/95.
  5. Experiment: effort 30, 03/03/95-04/03/95.

system engineer: effort 30, 02/03/95-03/03/95.

  1. Installation: effort 30, 02/03/95-03/03/95.

someone: effort 10, 27/02/95-04/03/95.

  1. Ask: effort 10, 27/02/95-04/03/95.

8.4.3 Tag and Set Operations

 \newcommand\getparent[1]{
    \sapply{p,up,{#1}}
    \sapply{p,\name}
 }
 \newcommand\V[5]{\sapply{all,merge,all,{#1}}}
 \newcommand\Vii[7]{\sapply{all,merge,all,{#1}}}
 \sapply{all,merge,{},{}}
 \rapply{texproject,\V,\V,\Vii}
 \sapply{all,subtract,all,{texproject}}
 \sapply{foo,defproject,all,,}
 
 \Draw
   \TreeAlign(H,-1,0)(0,0,0)
   \treediagram(foo,1)
 \EndDraw
 
 \Draw
   \ArrowHeads(1)
   \pertnodestyle{\getparent{#1}:\break\hfil\name{#1}}
   \pertdiagram *(foo)
 \EndDraw
 
 \smallskip \hrule\smallskip
 
 \Draw
   \ArrowHeads(1)
   \pertnodestyle{\getparent{#1}:\break\hfil\name{#1}}
   \pertdiagram(foo)
 \EndDraw
 
 \Draw
   \sapply{all,merge,all,{texproject}}
   \sapply{foo,defproject,all,,}
   \effortchart(foo)
 \EndDraw
 
 \Draw
   \schedulechart(foo)
 \EndDraw

     --------------|
   ----Announcement--
   | --------------|-
   ------Package----|
   | ---------------|
   --------FTP------
   | ---------------|
   --------Test-----
   | ---------------|
   -----Installation---
---| --------------|-
   |-------Help------|
   | ---------------|
   |------Manual----
   | ---------------|
   |-------Ask------
   | ---------------|
   |----Experiment---|
   |
   -------Usage----|
     ---------------

 --------------|     --------------|      --------------|     --------------|
 | TeXProject : |     |  Package :  |------|   Help :    ----|||    Help :   |
 -Announcement--     ------FTP------      -----Ask-------     ----Manual-----
       ||      -----               ------
----------------    --|--------------   --||------------|
|  TeXProject :||     | TeXProject : ||     |  Package :  |
----Package----|     -----Help------|     -----Test------
       ||                            ------     |||
 --------------|     -------------||--    --------------|
 | TeXProject : |     |  Package :  |      |   Help :    |
 ----Usage------     ---Installation---      --Experiment----
__________________________________________________________________

 --------------|     ----------------     --------------|
 | TeXProject : -----|| TeXProject : ||     |   Help :    |
 -Announcement--     -----Help------|     -----Ask-------
       ||
----------------     --------------|
|  TeXProject :||     |  Package :  |
----Package----|     ------FTP----------------------------- ||--------------|
        |                                 |  Package :  | ---||    Help :   |
        |            --------------|||---------Test------     ----Manual-----
        |            |  Package :  |            |||
        |            ---Installation---      --------------|
 ------||------|                          |   Help :    |
 | TeXProject : |                          --Experiment----
 |   Usage     |
 ---------------

            ----------------------------------------
            |---------|                            |
            |system-engineer                         |
            |---------                             |
            |-|                                    |
TeXProject   |someone                               |
            |-                                     |
            |                                      |
            |--------------------------------------|
            |you-----------------------------------|
            ----------------------------------------
            |---------|                            |
Experiment   |you------|                            |
            |---------                             |
            ----------------------------------------
            |someone                               |
            |-                                     |
   Ask      |                                      |
            |-|                                    |
            |you                                   |
            ----------------------------------------
            |---                                   |
  Manual    |you                                   |
            |---                                   |
            ----------------------------------------
            |someone                               |
            |-                                     |
   Help     |                                      |
            |--------------|                       |
            |you-----------|                       |
            ----------------------------------------
            |---------|                            |
Installation   |system-engineer                         |
            |---------                             |
            ----------------------------------------
            |you----------------|                  |
   Test     |-------------------|                  |
            ----------------------------------------
            |---                                   |
   FTP      |you                                   |
            ----------------------------------------
            |-----------------------               |
            |you--------------------               |
            |-----------------------               |
  Package    |---------|                            |
            |system engineer                         |
            |---------|                            |
            ----------------------------------------
           0                 57.5               115.0

            -----------------------------------------|
             |                                       |
Announcement | ox                                      |
             |                                       |
            --     -----------------------------|    |
   Package    |     -----------------------------|    |
             |     -----------------------------     |
            --                                       |
             |     |------------------|              |
    FTP      |     |-------------------              |
            --                                       |
             |                        |----|         |
     Test     |                        |    |         |
             |                        -----          |
            --                             |----|    |
             |                             |    |    |
  Installation   |                             -----     |
            --                                       |
             |---------------------------------------|
    Help     |---------------------------------------|
            --                                       |
             |                        |-------------||
   Manual    |                        |             ||
             |                        ---------------|
            --|-------------------------------------||
             ||                                     ||
     Ask     |---------------------------------------|
            --                                       |
             |                                  |---||
  Experiment  |                                  |----|
            --                                       |
             |                                       |
    Usage    |                                       ox 
             |                                       |
            ------------------------------------------
           27/02/95                               04/03/95

8.5 Beyond the TEXProject Native Features

8.5.1 Tree Diagrams

 \Draw
 \treenodestyle{\annotation{#1}\break  \start{#1}\quad\hfill\finish{#1}}
 \font\sevenrm=cmr7 \sevenrm
 \baselineskip=9pt
 \treestyle(,,,,85)
 \TreeAlign(H,-1,0)(0,0,0)
 \TreeSpace(,5,10)            \treediagram(texproject)
 \EndDraw

                   -----------------|
                   | You read the WWW |
                  --27/0a2nn/9o5unceme2n7/t.02/95|
                  |-----------------   -----------------|
                  |                   -| You ftp the .sty files,
                  |                   ||m28a/n0u2/al9s5 and exa01m/p0l3/es9.5
                  |------------------ |-----------------|
                  || You get and install-||   You test the   |
                  --    the package.  |-||01/0sy3/s9te5m loca02lly/.03/95|
                  |-28/02/95----03/03/95-||-----------------|
                  |                   || You ask your system |
                  |                   -|epancgkinageeer f toor i yonsutral clen thteer.
WelcometoTeXProject.-|                    |02/03/95    03/03/95|
27/02/95----04/03/95--|                    -----------------|
                  |                   -|   You review the   |
                  |                   ||m01a/n0u3/a9l5 and exa04m/p0le3/s9.5
                  |-------------------|-----------------|
                  ||  You get to know||||  You communicate  |
                  |-27/02t/9he5 system0.4/03/95|-||27/02/w9it5h other04s./03/95
                  |-------------------|-----------------|
                  |                   ||   You set up a |
                  |                   -|03/0sm3/a9l5l examp04le/.03/95
                  |-----------------|  ------------------
                  ||    You can use    |
                  --    TeXProject.    |
                   -04/03/95----04/03/95

8.5.2 Schedule Charts

 \newproject     \minmaxdates{0/0/0//100/0/0}
 \defproject{tasks}{}{a,b,c,d}{}{}
 \deftask{a}{task 1}{0/0/0}{3/0/0}{}{}{}
 \deftask{b}{task 2}{2/0/0}{6/0/0}{}{}{}
 \deftask{c}{task 3}{1/0/0}{2/0/0}{}{}{}
 \deftask{d}{task 4}{5/0/0}{7/0/0}{}{}{}
 \endnewproject
 \Draw   \Scale(1,0.5)  \schedulestyle(,,,,3,,)
     \schedulechart(tasks)
     \MoveToLoc(SW)  \Move(-5pt\du,0)  \MarkLoc(sw)
     \MoveToLoc(NE)  \Move( 5pt\du,0)  \MarkLoc(ne)  \CSeg\DrawRect(ne,sw)
     \namesaxis(sw,ne)(W-0)
     \nonamesaxis(sw,ne)(W-1)
     \font\sevenrm=cmr7      \sevenrm
     \Axis(SW,NE)(N0,& week~1 && week~2 && week~3 && week~4 &&
                       week~5 && week~6 && week~7 & )
     \Axis(SW,NE)(N-1,&&&&&&& )
 \EndDraw

           week 1|week 2 week 3|week 4 week 5|week 6 week 7
         -----------------------------------------|
task 1   -------------------                      |
task 2    |           ----------------------|     |
         --     ------|---------------------      |
task 3    |     ------                            |
         --                           -----------||
task 4   -----------------------------------------|