[ANN] Precedence 0.6

F

Farrel Lifson

I've made the initial release of Precedence which is a small API to
construct and analyse precedence networks, which are used quite a bit
in project management and other areas. Here's the README file:

=3D Precedence

Precedence is a library that allows for the creation, manipulation and anal=
ysis
of precedence networks.

=3D=3D Download and Install

Available as a RubyGem from Rubyforge. To install
$ gem install precedence
will fetch the latest gem from Rubyforge and install it.

Source can also be downloaded from http://rubyforge.org/projects/precedenc=
e.

=3D=3D Example Usage
require('precedence')
=20
# Set up network
net =3D Precedence::Network.new('Begin','End')
net.new_activity('act-1-1',3,'System specification')
net.new_activity('act-1-2',2,'Review')
net.new_activity('act-1-3',2,'System re-specification')
net.new_activity('act-2-1',3,'Test tool design')
net.new_activity('act-2-2',5,'Test tool implementation')
net.new_activity('act-3-1',3,'System design')
net.new_activity('act-3-2',12,'System implementation')
net.new_activity('act-2-3',10,'System testing')
net.connect('act-1-1','act-1-2')
net.connect('act-1-2','act-1-3')
net.connect('act-1-3','act-3-1')
net.connect('act-1-2','act-2-1')
net.connect('act-2-1','act-2-2')
net.connect('act-2-2','act-3-2')
net.connect('act-3-1','act-3-2')
net.connect('act-3-2','act-2-3')
net.fix_connections!
=20
# Generate a diagram
File.open('network.dot',File::CREAT|File::TRUNC|File::WRONLY) do|file|
=09file.puts(net.to_dot)
end
system("dot","-Tpng","-onetwork.png","network.dot")
=20
# Perform some analysis of the activities
activity =3D net.activities['act-1-2']
activity.on_critical_path? # =3D> true=20
activity.earliest_start # =3D> 3.0
activity.latest_finish # =3D> 5.0
activity.total_float # =3D> 0 - activities on the critical path have no f=
loat
=20
=3D=3D Documentation

The Precedence API online documentation is available at=20
http://precedence.rubyforge.org.=20

Refer to the CHANGELOG and TODO files for past changes and upcoming plans.

=3D=3D Credits

Farrel Lifson <[email protected]>

=3D=3D License

This software is made available under the BSD license.
 
G

gabriele renzi

Farrel Lifson ha scritto:
I've made the initial release of Precedence which is a small API to
construct and analyse precedence networks, which are used quite a bit
in project management and other areas. Here's the README file:

= Precedence

Precedence is a library that allows for the creation, manipulation and analysis
of precedence networks.

wow, this seem cool, thanks for releasing it.
Anyway, I wonder why you designed the api this way (I'm dumb that's not
your fault):
why add_activity does not allow pre and post conditions to be set ?
Also, IMHO an alias #<< for #add_activity would be nice
 
F

Farrel Lifson

wow, this seem cool, thanks for releasing it.
Anyway, I wonder why you designed the api this way (I'm dumb that's not
your fault):
why add_activity does not allow pre and post conditions to be set ?
Also, IMHO an alias #<< for #add_activity would be nice
=20

I actually never thought about it but some post facto justification is
that from the network level I guess it might be better seperating
adding activities to the network and connecting them. What I probably
will do in the next version is have add_activity return the added
activity so that you could then say
net.add_activity(someActivity).add_post_activities(someOtherActivity)

Farrel
 
G

gabriele renzi

Farrel Lifson ha scritto:
I actually never thought about it but some post facto justification is
that from the network level I guess it might be better seperating
adding activities to the network and connecting them. What I probably
will do in the next version is have add_activity return the added
activity so that you could then say
net.add_activity(someActivity).add_post_activities(someOtherActivity)

then I'd probably ask about adding #<< to Activity so that you could write:
net << act1 << act2 << act3
but maybe I just need more sleep :)
Thanks for the answer.
 
R

Ralph \PJPizza\ Siegler

I've made the initial release of Precedence which is a small API to
construct and analyse precedence networks, which are used quite a bit
in project management and other areas. Here's the README file:

= Precedence

Precedence is a library that allows for the creation, manipulation and analysis
of precedence networks.
Farrel, neat idea and I myself was thinking about what it would take to do some of the things a certain popular scheduling package (with initials O.P.) does, doing prededence networks but also with holidays (or "calendars") and the constraints of PDM method start-start, start-finish, finish-finish, etc.

So I'm mainly thinking of starting off with just the time calculations, before even getting into "activities" and "networks". Just going down to the hour would be painful enough with nonworking hour calculations, but maybe I should go "all the way" and do allow scheduling down to minute or at least 15 minute interval.

Very thought provoking, thanks!

Ralph "PJPizza"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,740
Latest member
JudsonFrie

Latest Threads

Top