11.07.2015 Views

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

Encyclopedia of Computer Science and Technology

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

project management s<strong>of</strong>tware 389Nonprocedural LanguagesAlthough the bulk <strong>of</strong> today’s s<strong>of</strong>tware is written using procedurallanguages, there are some important languages constructedusing quite different paradigms. LISP, for example,is a powerful language used in artificial intelligence applications.LISP is written by putting together layers <strong>of</strong> functionsthat carry out the desired processing (see nonprocedurallanguages, LISP, <strong>and</strong> functional languages). There arealso “logic programming” languages, <strong>of</strong> which Prolog isbest known (see Prolog). Here a chain <strong>of</strong> logical steps isconstructed such that the program can traverse it to findthe solution <strong>of</strong> a problem.Context <strong>and</strong> Change inProgramming LanguagesBecause <strong>of</strong> the amount <strong>of</strong> effort it takes to truly mastera major programming language, most programmersare fluent in only a few languages <strong>and</strong> developers tendto st<strong>and</strong>ardize on one or two languages. The store <strong>of</strong>tried-<strong>and</strong>-true code <strong>and</strong> lore built up by the programmingcommunity tends to make it disadvantageous to radicallychange languages. Thus, FORTRAN <strong>and</strong> COBOL,although more than 40 years old, are still in considerableuse today. C, which is about 30 years old, has been graduallysupplanted by C++ <strong>and</strong> Java, but the latter languagesrepresent an object-oriented evolution <strong>of</strong> C, intentionallydesigned to make it easy for programmers to make thetransition. (Smalltalk, which was designed as a “pure”object-oriented language, never achieved widespread usein commercial development.)Similarly, when programmers had to cope with parallelprocessing (programs that can have several threads <strong>of</strong> executiongoing at the same time), they have tended to favor “parallelized”versions <strong>of</strong> familiar languages rather than whollynew ones (see concurrent programming <strong>and</strong> parallelprocessing).While the basic elements <strong>of</strong> computer languages tendto persist in the same recognizable forms, the way programmersexperience their use <strong>of</strong> languages has changedconsiderably through the use <strong>of</strong> modern visual integrateddevelopment environments (see programming environment).A variety <strong>of</strong> languages have also been designed fortasks such as data management, interfacing Web pages, <strong>and</strong>system administration (see scripting languages, awk,Perl, PHP, <strong>and</strong> Python).Further ReadingBergin, Thomas J., <strong>and</strong> Richard G. Gibson, eds. History <strong>of</strong> ProgrammingLanguages-II. Reading, Mass.: Addison-Wesley/ACMPress, 1996.Sebesta, Robert W. Concepts <strong>of</strong> Programming Languages. 8th ed.Boston: Pearson Addison-Wesley, 2007.project management s<strong>of</strong>twareWhether a project involves only a few people in the samedepartment or thous<strong>and</strong>s <strong>of</strong> people <strong>and</strong> several years, thereis a variety <strong>of</strong> s<strong>of</strong>tware to help managers plan <strong>and</strong> monitorthe status <strong>of</strong> their projects.At the simplest level, PIM s<strong>of</strong>tware (see personalinformation manager) can be used by an individual tomonitor simple personal projects. Such s<strong>of</strong>tware generallyincludes the ability to record the description, priority, duedate, <strong>and</strong> reminder date for a task.Project management s<strong>of</strong>tware is generally used toplan larger projects involving many persons or teams. Acomplex project must first be broken down into tasks.(Large projects <strong>of</strong>ten have subprojects as an intermediateentity.) Next, dependencies must be taken into account.For example, the user testing program for a s<strong>of</strong>twareproduct can’t begin until a usable preliminary (“alpha”or “beta”) version <strong>of</strong> the program is available. The various“resources” assigned to a subproject or task mustalso be tracked, including personnel <strong>and</strong> number <strong>of</strong> hoursassigned <strong>and</strong> budget allocations. In tracking personnelassigned to a project, their availability (who is on vacation<strong>and</strong> who is assigned to what location) must also beconsidered.Once the scheduling <strong>and</strong> priorities are arranged, theinevitable divergences between what was planned <strong>and</strong> whatis actually happening must be monitored. Good projectmanagement s<strong>of</strong>tware provides many tools for the purpose.Available charts <strong>and</strong> reports <strong>of</strong>ten include:• Gantt charts that use bars to show the duration <strong>and</strong>percentage <strong>of</strong> completion <strong>of</strong> the various overlappingsubprojects or tasks.• PERT (Program Evaluation <strong>and</strong> Review Technique)charts that show each subproject or task as a rectangular“node” with information about the task. Theconnections between nodes show the relationships(dependencies) between the items. PERT charts areusually used at the beginning stages <strong>of</strong> planning.• Analysis tools that show critical paths <strong>and</strong> bottlenecks(places where one or more tasks falling behindmight threaten large portions <strong>of</strong> the project). Generally,the more preceding items a task is dependent on,the more likely that task is to fall behind.• Tools for estimating the probability for completion<strong>of</strong> a given task based on the probabilities <strong>of</strong> tasks itis dependent on, as well as other factors such as thelikelihood <strong>of</strong> certain resources becoming available.• A system <strong>of</strong> alerts or “stoplights” that show slowdowns,potential problems, or areas where work hasstopped completely. These can be set to be triggeredwhen various specified conditions occur.• Integration between project management <strong>and</strong> budgetreporting so tasks <strong>and</strong> the project as a whole can bemonitored in relation to budget constraints.• Integration between the project management s<strong>of</strong>tware<strong>and</strong> individual schedules kept in PIM s<strong>of</strong>tware such asMicros<strong>of</strong>t Outlook or in h<strong>and</strong>held computers (PDAs)such as the PalmPilot.• Integration between project management <strong>and</strong> s<strong>of</strong>twarefor scheduling meetings.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!