Dependencies



  1. Dependencies Meaning
  2. Dependencies In Project Management

In a project network, a dependency is a link amongst a project's terminal elements.[citation needed]

The A Guide to the Project Management Body of Knowledge (PMBOK Guide) does not define the term dependency, but refers for this term to a logical relationship, which in turn is defined as dependency between two activities, or between an activity and a milestone.[1]

Standard types of dependencies[edit]

There are four standard types of dependencies:

Dependencies pc

Dependency (computer science) or coupling, a state in which one object uses a function of another object Data dependency, which describes a dependence relation between statements in a program Dependence analysis, in compiler theory Dependency (UML), a relationship between one element in the Unified Modeling Language.

Dependency definition, the state of being dependent; dependence. Dependencies: Restrict which artifacts are passed to a specific job by providing a list of jobs to fetch artifacts from. Environment: Name of an environment to which the job deploys. Also available: environment:name, environment:url, environment:onstop, environment:autostopin, and environment:action. Except: Limit when jobs are not created. Overview of Schema Object Dependencies. Some types of schema objects can reference other objects in their definitions. For example, a view is defined by a query that references tables or other views, and the body of a subprogram can include SQL statements that reference other objects.

  1. Finish to start (FS)
    • A FS B means 'activity A must finish before activity B can begin' (or 'B can't start until A has finished').[2]
    • (Foundations dug) FS (Concrete poured)
  2. Finish to finish (FF)
    • A FF B means 'activity A must finish before activity B can finish' (or 'B can't finish before A is finished') .[2]
    • (Last chapter written) FF (Entire book written)
  3. Start to start (SS).
    • A SS B means 'activity A must start before activity B can start' (or 'B can't start until A has started').[2]
    • (Project work started) SS (Project management activities started)
  4. Start to finish (SF)
    • A SF B means 'activity A must start before activity B finishes' (or 'B can't finish until A has started')
    • (New shift started) SF (Previous shift finished)

Finish-to-start is considered a 'natural dependency'. The Practice Standard for Scheduling recommends, that 'Typically , each predecessor activity would finish prior to the start of its successor activity (or activities)(known as finish-to-start (FS) relationship). Sometimes it is necessarily to overlap activities; an option may be selected to use start-to-start (SS), finish-to-finish (FF) or start-to-finish (SF) relationships....Whenever possible, the FS logical relationship should be used. If other types of relationships are used, they shall be used sparingly and with full understanding of how the relationships have been implemented in the scheduling software being used. Ideally, the sequence of all activities will be defined in such a way that the start of every activity has a logical relationship from a predecessor and the finish of every activity has a logical relationship to a successor'.[2]

SF is rarely used, and should generally be avoided. Microsoft recommends to use SF dependency for just-in-time scheduling.[3] It can be easily shown however, that this would only work if resource levelling is not used, because resource levelling can delay a successor activity (an activity, which shall be finished just-in-time) in such a way, that it will finish later than the start of its logical predecessor activity, thus not fulfilling the just-in-time requirement.

There are three kinds of dependencies with respect to the reason for the existence of dependency:

Dependencies log
  1. Causal (logical)
    • It is impossible to edit a text before it is written
    • It is illogical to pour concrete before you dig the foundations of a building
  2. Resource constraints
    • It is logically possible to paint four walls in a room simultaneously but there is only one painter
  3. Discretionary (preferential)
    • I want to paint the living room before painting the dining room, although I could do it the other way round, too

Early critical path-derived schedules often reflected only on causal (logical) or discretionary (preferential) dependencies because the assumption was that resources would be available or could be made available. Since at least the mid-1980s, competent project managers and schedulers have recognized that schedules must be based on resource availability. The critical chain method necessitates taking into account resource constraint-derived dependencies as well.

Leads and Lags[edit]

Dependencies can be modified by leads, and lags. Both leads and lags can be applied to all 4 types of dependencies.

Dependencies logDependencies

PMBOK defines lag as 'the amount of time whereby a successor activity will be delayed with respect to a predecessor activity'.

For example:When building two walls from a novel design, one might start the second wall 2 days after the first so that the second team can learn from the first. This is an example of a lag in a Start-Start relationship.

In accordance to PMBOK a lead is 'the amount of time whereby a successor activity can be advanced with respect to a predecessor activity For example, on a project to construct a new office building, the landscaping could be scheduled to start prior to the scheduled punch list completion. This would be shown as a finish-to-start with two-week lead'.[1]

Example[edit]

If you are building a building, you can't paint the walls before installing the water pipes into the walls.

Advanced cases of activities dependencies[edit]

Maximal-Type Relationships[edit]

Activity A and Activity B are said to have a Maximal-Type Relationship, if Activity B can start after Activity A, but with the delay of no more than X.[4] Real life examples, which are simulated by Maximal-Type Relation:

  • Shoring of the trench has to be done not necessarily immediately after excavation, but within certain time, otherwise the trench will collapse.
  • Vaccination of baby has to be done not immediately after birth, but within certain time
  • Renewal of the passport has to be done some time after the current one has been issued, but before it expires.
  • Invoice payment does not have to be done immediately, but within certain time after it has been issued.

Maximal-type relationships are rarely implemented in the project management software, most probably because with this feature it is too easy to create contradictory dependencies.

See also[edit]

References[edit]

  1. ^ abA Guide to the Project Management Body of Knowledge: PMBOK Guide. Project Management Institute, Incorporated. 1 January 2013. ISBN978-1-935589-67-9.
  2. ^ abcdPractice Standard for Scheduling. Project Management Institute. 2011. ISBN978-1-935589-24-2.
  3. ^'Microsoft article of SF links for Microsoft Project'. Archived from the original on 2014-02-02.
  4. ^'ProJack Manager web site, describing maximal-type relationships'. Archived from the original on 2014-02-03.
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Dependency_(project_management)&oldid=991635700'

An open-source modern Dependency Walker

Overview

Dependencies is a rewrite of the legacy software Dependency Walker which was shipped along Windows SDKs, but whose developement stopped around 2006.Dependencies can help Windows developers troubleshooting their dll load dependencies issues.

Releases

  • v1.8 :
    • Add x86/x64 variants for Dependencies
  • v1.7 :
    • Add CLI tool “dependencies.exe”
  • v1.6 :
    • Add appx packaging
  • v1.5 :
    • Support of Sxs parsing
    • Support of api set schema parsing
    • API and Modules list can be filtered
  • v1.0 – Initial release

Installation and Usage

Dependencies is currently shipped as a binary (no installer present). Just uncompress the archive and click on it.Since the binary is not signed, SmartScreen might scream at runtime. Dependencies also bundle ClrPhTester.exe, a dumpbin-like executable used to test for non-regressions.

Dependencies

Dependencies currently does not recursively resolve child imports when parsing a new PE since it can be really memory-hungry to do so ( it can go over a GB even for “simple” PEs ). This behaviour can be overriden (app-wide) via a property located in “Options->Properties->Tree build behaviour”.

Tree build behaviours available :

  • ChildOnly (default) : only process PE child imports and nothing beyond.
  • RecursiveOnlyOnDirectImports : do not process delayload dlls.
  • Recursive : Full recursive analysis. You better have time and RAM on your hands if you activate this setting.

Limitations

Dependencies Meaning

At the moment, Dependencies recreates features and “features” of depends.exe, which means :

  • Only direct, forwarded and delay load dependencies are supported. Dynamic loading via LoadLibrary are not supported (and probably won’t ever be).
  • Min-win dlls are not propertly supported. (UPDATED : support of api set schema redirection in 1.5)
  • There are no checks between Api Imports and Exports for the moment, only dll presence is supported.
  • No support of esoteric dll load paths (via AppPaths or SxS manifests entries). (UPDATED : minimal support of sxs private manifests search).

Credits and licensing

Special thanks to :

  • ProcessHacker2 for :
    • phlib, which does the heavy lifting for processing PE informations.
    • peview, a powerful and lightweight PE informations viewer.
  • Dragablz a C#/XAML library which implement dockable and dragable UI elements, and can recreate the MDI programming model in WPF.
  • @aionescu, @zodiacon and Quarkslab for their public infos on ApiSets schema.
  • Thomas levesque’s blog which pretty much solved all my WPF programming issues. His AutoGridSort is used in this project

Copyright (c) lucasg and licensed under the MIT license. See the LICENSE file for full details.

More

Dependencies In Project Management

Read depends.exe’s FAQs and rationale.