-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from antoanne/restart
Resetting the package structure
- Loading branch information
Showing
113 changed files
with
1,126 additions
and
1,434 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,4 +8,4 @@ ifm.Rcheck/* | |
|
||
*.Rproj | ||
|
||
lixo/* | ||
demo/output |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,11 @@ | ||
Package: ifm | ||
Type: Package | ||
Title: Set of functions for financial evaluation of Software Projects | ||
Version: 1.0 | ||
Date: 2018-07-31 | ||
Author: Antoanne Pontes and Eber Schmitz | ||
Title: Financial evaluation of Projects | ||
Version: 0.1.0 | ||
Author: Antoanne Christopher Pontes Wanderley | ||
Authors@R: c( | ||
person("Antoanne", "Pontes", email = "antoanne@gmail.com", role = c("aut", "ctb", "cre")), | ||
person("Eber", "Schmitz", email = "[email protected]", role = c("aut", "cph", "cre")), | ||
person("Antoanne", "Pontes", email = "antoanne@ufrj.br", role = c("aut", "ctb", "cre")), | ||
person("Eber", "Schmitz", email = "[email protected]", role = c("ctb")), | ||
person("Alexandre", "Costa", email = "[email protected]", role = "ctb"), | ||
person("Anderson", "Nepomuceno", email = "[email protected]", role = "ctb"), | ||
person("Andre", "Gheventer", email = "[email protected]", role = "ctb"), | ||
|
@@ -15,12 +14,14 @@ Authors@R: c( | |
person("Marcelo", "Tueiv", email = "[email protected]", role = "ctb"), | ||
person("Washington", "Correia", email = "[email protected]", role = "ctb") | ||
) | ||
Maintainer: Antoanne Pontes <antoanne@gmail.com> | ||
Maintainer: Antoanne Pontes <antoanne@ufrj.br> | ||
Description: R packeage with a set of functions for financial evaluation of | ||
Software Project. | ||
License: LGPL (>= 2.1) | ||
Encoding: UTF-8 | ||
URL: https://github.com/antoanne/ifmFramework | ||
BugReports: https://github.com/antoanne/ifmFramework/issues | ||
NeedsCompilation: no | ||
RoxygenNote: 5.0.1 | ||
Imports: igraph, XLConnect | ||
RoxygenNote: 7.1.1 | ||
Imports: igraph, XLConnect, openxlsx, RUnit | ||
Date: 2018-07-31 |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,79 +1,82 @@ | ||
#' The critical path method (CPM) is a step-by-step project management technique for process | ||
#' The critical path method (CPM) is a step-by-step project management technique for process | ||
#' planning that defines critical and non-critical tasks with the goal of preventing time-frame | ||
#' problems and process bottlenecks#' activities are "critical," meaning that they have to be done on time or else | ||
#' problems and process bottlenecks#' activities are "critical," meaning that they have to be done on time or else | ||
#' the whole project will take longer. | ||
#' | ||
#' | ||
#' @name cpm | ||
#' | ||
#' | ||
#' @aliases critical.path.method critical_path_method | ||
#' | ||
#' | ||
#' @param activities.duration Vector with activities duration. | ||
#' @param activities.successors Vector with dependencies between activities. | ||
#' | ||
#' @description The Critical Path Method or Critical Path Analysis, is a | ||
#' mathematically based algorithm for scheduling a set of project activities. | ||
#' | ||
#' CPM will get how long your complex project will take to complete and which | ||
#' activities are "critical," meaning that they have to be done on time or else | ||
#' | ||
#' @description The Critical Path Method or Critical Path Analysis, is a | ||
#' mathematically based algorithm for scheduling a set of project activities. | ||
#' | ||
#' CPM will get how long your complex project will take to complete and which | ||
#' activities are "critical," meaning that they have to be done on time or else | ||
#' the whole project will take longer. | ||
#' | ||
#' @export | ||
#' @return Returns list of EST (Early Start Time), EFT(Early Finish Time),LST(Lately Start Time), LFT (Lately Finish Time) using Forward Pass and Backward Pass | ||
#' | ||
#' | ||
#' @return Returns list of EST (Early Start Time), EFT(Early Finish Time), | ||
#' LST(Lately Start Time), LFT (Lately Finish Time) using Forward Pass and Backward Pass | ||
#' | ||
#' @keywords critical path, scheduling, project activities | ||
#' | ||
#' | ||
#' @family scheduling | ||
#' | ||
#' | ||
#' @examples | ||
#' ex.cpm.activities.duration <- c(1,4,5,7,2,3,1) | ||
#' ex.cpm.activities.successors <- list(c(2,3), 4, c(4,5), 6, 7, 7, c(0)) | ||
#' ex.cpm <- cpm(ex.cpm.activities.duration, | ||
#' ex.cpm <- cpm(ex.cpm.activities.duration, | ||
#' ex.cpm.activities.successors) | ||
#' | ||
cpm <- critical.path.method <- critical_path_method <- | ||
function(activities.duration = c(1,4,5,7,2,3,1), | ||
#' | ||
cpm <- critical.path.method <- critical_path_method <- | ||
function(activities.duration = c(1,4,5,7,2,3,1), | ||
activities.successors = list(c(2,3), 4, c(4,5), 6, 7, 7, c(0))) | ||
{ | ||
|
||
activities.predecessors <- utils.suc2pred(activities.successors) | ||
|
||
activities.quantity <- length(activities.duration) | ||
#generates early and late start times of for a cpm network | ||
est<-vector (mode="numeric", length=activities.quantity) | ||
eft<-vector (mode="numeric", length=activities.quantity) | ||
lst<-vector (mode="numeric", length=activities.quantity) | ||
lft<-vector (mode="numeric", length=activities.quantity) | ||
|
||
#Functions | ||
cpm.forward <- function(s=1){ | ||
#find early start and finish times | ||
eft[s] <<- est[s] + activities.duration[s] | ||
eft[s] <<- est[s] + activities.duration[s] | ||
if (activities.successors[[s]][1]!=0){ | ||
for (i in activities.successors[[s]]){ | ||
if (est[i] < eft[s]){ | ||
est[i]<<-eft[s] | ||
} | ||
} | ||
cpm.forward(i) | ||
} | ||
} | ||
} | ||
} | ||
|
||
cpm.backward<-function(s){ | ||
#find late start and finish times | ||
lst[s]<<-lft[s] - activities.duration[s] | ||
lst[s]<<-lft[s] - activities.duration[s] | ||
if (activities.predecessors[[s]][1]!=0){ | ||
for (i in activities.predecessors[[s]]){ | ||
if (lft[i]>lst[s]){ | ||
lft[i]<<-lst[s] | ||
} | ||
lft[i]<<-lst[s] | ||
} | ||
cpm.backward(i) | ||
} | ||
} | ||
} | ||
|
||
#Main | ||
cpm.forward() | ||
lft<-rep(eft[activities.quantity], times=activities.quantity) | ||
cpm.backward(activities.quantity) | ||
return(list('est' = est, 'eft' = eft, | ||
return(list('est' = est, 'eft' = eft, | ||
'lst' = lst, 'lft' = lft)) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.