GeXiangDong

精通Java、SQL、Spring的拼写,擅长Linux、Windows的开关机

0%

mybatis调用存储过程和调用普通的sql略有区别:

  • 首先xml文件中要增加参数 `statementType=”CALLABLE”
  • 调用存储过程的语句用大括号包含起来,并写上call关键字

例如:

1
2
3
<select id="loginByWxOpenId" resultType="cn.devmgr.exam.domain.Token" statementType="CALLABLE">
{ call wxLogin(#{wxOpenId}, #{ipAddr}) }
</select>

传递的参数还是和普通sql一样,可以直接 #{} 来引用参数。

postgresql server提供了查询慢sql的方法,不过默认没有启动。

安装插件 pg_stat_statements

1
create extension pg_stat_statements;

安装插件就这一句sql,但pg_stat_statements还需要修改postgresql.conf,加入这句

1
shared_preload_libraries = 'pg_stat_statements'

默认的是有注释的shared_preload_libraries

更改完配置文件需要重启postgresql server

重置计数器

可以使用如下sql重置计数器

1
2
select pg_stat_reset();
select pg_stat_statements_reset();

查询慢sql

可以使用下面的sql查出来哪些sql执行的比较慢:

1
select * from pg_stat_statements order by total_time desc limit 5;

参考

https://help.aliyun.com/knowledge_detail/43562.html

Java的异常默认都有堆栈信息,详细显示出来调用层次,这对查找错误原因很有帮助。今日遇到一个无堆栈信息的java.lang.NullPointerException
经查询原来是HotSpot VM提供的一种叫fast throw的优化导致的。

Fast Throw

有些特定的隐式异常类型(NullPointerException、ArithmeticException( / 0)之类)如果在代码里某个特定位置被抛出过多次的话,HotSpot Server Compiler(C2)会透明的决定用fast throw来优化这个抛出异常的地方——直接抛出一个事先分配好的、类型匹配的异常对象。这个对象的message和stack trace都被清空。抛出这个异常的速度是非常快,不但不用额外分配内存,而且也不用爬栈;但反面就是可能正好是需要知道哪里出问题的时候看不到stack trace了。从Sun JDK5开始要避免C2做这个优化还得额外传个VM参数:-XX:-OmitStackTraceInFastThrow

既然这种异常速度比较快,那么我们自定义的一些业务异常,有些是不会使用堆栈信息的,是不是也可这样做呢?是的。可以通过继承Throwable,使用构造函数Throwable(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)来实现。

如果不是继承的Throwable,其它异常也有类似的protected方法,例如RuntimeException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)

禁用 Fast Throw

ubuntu 16.x 可以修改/etc/systemd/system/tomcat 配置文件

1
Environment=’CATALINA_OPTS=-Xms512M -Xmx2048M -server -XX:+UseParallelGC -XX:-OmitStackTraceInFastThrow‘

重现 Fast Throw

可以用下面的这段代码重现没有堆栈的异常:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class NpeThief {
public void callManyNPEInLoop() {
int preLen = -1;
for (int i = 0; i < 10000000; i++) {
try {
((Object)null).getClass();
} catch (Exception e) {
if(e.getStackTrace().length != preLen){
System.out.println("#" + i + " " + e.getStackTrace().length);
preLen = e.getStackTrace().length;
}
}
}
}
public static void main(String[] args) {
NpeThief thief = new NpeThief();
thief.callManyNPEInLoop();
}
}

用java NpeThief运行,会输出2、0两行
用java -XX:-OmitStackTraceInFastThrow NpeTHief运行,则只会有2一行,也能直接感觉到Fast Throw优化带来的运行速度的提升。

使用命令

1
2
crontab -e
virsh edit ubuntu

等时,会出现选择编辑器

no crontab for developer - using an empty one

Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny

Choose 1-4 [2]:

这里没有vi,如果要使用vi,可以修改/etc/enviroment文件,增加一行

1
EDITOR=vi

也可以修改 /etc/profile增加一行

1
export EDITOR=vi

这样下次使用crontab -e就自动使用vi了

遇到的问题

Java Exception :
java aes 256 java.security.InvalidKeyException: Illegal key size after installation the policy

解决方法

这是由于jdk里不包含256位加密算法导致的

  1. download JCE at http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
  2. unzip and copy two jars to JAVA_HOME/jre/lib/security and override the old ones.
  3. restart tomcat

公司内部开发用的redmine, wiki等服务,计划在公司内网IP访问时可以直接访问,因为偶尔需要在家等远程访问需求,需要开放外网访问,计划在外网访问时增加一个基本认证机制,以限制外部人员获取信息。

首先使用htpasswd创建了一个用户密码文件

htpasswd -c /etc/nginx/.htpasswd developer

如果没有htpasswd命令可以通过 apt-get install apache2-utils 安装。

修改nginx的配置文件,加入以下内容

1
2
3
4
if ($remote_addr ~ "^(192.168.1.|192.168.2.)" ) {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}

测试(nginx -t)会出错:

nginx: [emerg] "auth_basic" directive is not allowed here in /etc/nginx/sites-enabled/default:31

改成

1
2
3
4
5
6
set $realm "Restricted Content";
if ($remote_addr ~ "^(192.168.1.|192.168.2.)" ) {
set $realm "off";
}
auth_basic $realm;
auth_basic_user_file /etc/nginx/.htpasswd;

可解决。

如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.test.websocket;

import javax.websocket.server.ServerEndpointConfig.Configurator;

public class ChatServerEndPointConfigurator extends Configurator {

private ChatServerEndPoint chatServer = new ChatServerEndPoint();

@Override
public <T> T getEndpointInstance(Class<T> endpointClass)
throws InstantiationException {
return (T) chatServer;
}
}

第12行会有警告 Class Type safety: Unchecked cast from ChatServerEndPoint to T
修改为:

1
2
3
4
5
6
7
8
if(endpointClass.isAssignableFrom(chatServer.getClass())){
return endpointClass.cast(chatServer);
}else{
AssertionError ae = new AssertionError("Cannot cast to " + endpointClass.getName() +
" from " + chatServer.getClass().getName());
log.error("类型不匹配", ae);
throw ae;
}

可消除警告。

遇到的问题

后端服务返回HTTP状态码401时,没有Header “WWW-Authenticate”,某些版本Android客户端会出错,错误信息为no authentication challenges found。

解决办法

可修改服务器的返回,在401的返回增加 Header WWW-Authenticate, Basic realm=”fake” 来避免此问题。

android(4.x) 的DELETE方法问题

另外某些Android版本(4.x)在调用DELETE方法(RESTFul中会用到)如果HTTP BODY中有内容会出错,服务器收不到请求。

PMBOK5中47个过程中用得最多的工具技术是专家判断,其次是会议。头脑风暴用的次数也较多,但隐藏在群体创新技术、引导式研讨会、引导技术、信息收集技术等大类别之下,不易被发现。

47个过程用到的工具和技术

源码

此图使用graphviz制作。http://www.graphviz.org/

dot文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
/*
#dot -Tpng integration.dot -o integration.png
*/
digraph Integration{

DevelopProjectCharter[label=" | 4.1 Develop Project Charter | ", shape="record", style=filled, color="#FF0000", fillcolor="#E0FFFF"]
DevelopProjectManagementPlan[label=" | 4.2 Develop Project Management Plan | ", shape="record", style=filled, color="#FF0000", fillcolor="#E0FFFF"]
DirectAndManageProjectWork[label=" | 4.3 Direct and Manage Project Work | ", shape="record", style=filled, color="#FF0000", fillcolor="#E0FFFF"]
MonitorAndControlProjectWork[label=" | 4.4 Monitor and Control Project Work | ", shape="record", style=filled, color="#FF0000", fillcolor="#E0FFFF"]
PerformIntegratedChangeControl[label=" | 4.5 Perform Integrated Change Control | ", shape="record", style=filled, color="#FF0000", fillcolor="#E0FFFF"]
CloseProjectOrPhase[label=" | 4.6 Close Project or Phase | ", shape="record", style=filled, color="#FF0000", fillcolor="#E0FFFF"]

ProjectStatementOfWork->DevelopProjectCharter[color="#FF0000"];
BusinessCase->DevelopProjectCharter[aname=tee,color="#FF0000"];
Agreements->DevelopProjectCharter[color="#FF0000"];
DevelopProjectCharter->ProjectCharter[color="#FF0000"];

ProjectCharter->DevelopProjectManagementPlan[color="#FF0000"];
OuputsFromOtherProcesses->DevelopProjectManagementPlan[color="#FF0000"];
DevelopProjectManagementPlan->ProjectManagementPlan[color="#FF0000"]

ProjectManagementPlan->DirectAndManageProjectWork[color="#FF0000"]
ApprovedChangeRequests->DirectAndManageProjectWork[color="#FF0000"]
DirectAndManageProjectWork->Deliverables[color="#FF0000"]
DirectAndManageProjectWork->ChangeRequests[color="#FF0000"]
DirectAndManageProjectWork->WorkPerformanceData[color="#FF0000"]
DirectAndManageProjectWork->ProjectManagementPlanUpdates[color="#FF0000"]
DirectAndManageProjectWork->ProjectDocumentsUpdates[color="#FF0000"]

ProjectManagementPlan->MonitorAndControlProjectWork[color="#FF0000"]
ScheduleForecasts->MonitorAndControlProjectWork[color="#FF0000"]
CostForecasts->MonitorAndControlProjectWork[color="#FF0000"]
ValidatedChanges->MonitorAndControlProjectWork[color="#FF0000"]
WorkPerformanceInformation->MonitorAndControlProjectWork[color="#FF0000"]
MonitorAndControlProjectWork->ChangeRequests[color="#FF0000"]
MonitorAndControlProjectWork->ProjectDocumentsUpdates[color="#FF0000"]
MonitorAndControlProjectWork->ProjectManagementPlanUpdates[color="#FF0000"]
MonitorAndControlProjectWork->WorkPerformanceReports[color="#FF0000"]

ProjectManagementPlan->PerformIntegratedChangeControl[color="#FF0000"]
WorkPerformanceReports->PerformIntegratedChangeControl[color="#FF0000"]
ChangeRequests->PerformIntegratedChangeControl[color="#FF0000"]
PerformIntegratedChangeControl->ApprovedChangeRequests[color="#FF0000"]
PerformIntegratedChangeControl->ChangeLog[color="#FF0000"]
PerformIntegratedChangeControl->ProjectManagementPlanUpdates[color="#FF0000"]
PerformIntegratedChangeControl->ProjectDocumentsUpdates[color="#FF0000"]

ProjectManagementPlan->CloseProjectOrPhase[color="#FF0000"]
CloseProjectOrPhase->FinalProduct[color="#FF0000"]
CloseProjectOrPhase->OrgnizationalProcessAssetsUpdates[color="#FF0000"]
AcceptedDeliverables->CloseProjectOrPhase[color="#FF0000"]

ProjectStatementOfWork[label="Project statement of work", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"];
BusinessCase[label="Business case", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
Agreements[label="Agreements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectCharter[label="Project charter", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectManagementPlan[label="Project management plan", shape=note, style=filled, color="gray", fillcolor="#f9f1d5"]
AcceptedDeliverables[label="Accepted deliverables", shape="doubleoctagon", style="filled", fillcolor="#A0522D", color="#A0522D", fontcolor="#FFFFFF"]
FinalProduct[label="Final product, service, or result transition", shape="doubleoctagon", style="filled", fillcolor="#A0522D", color="#A0522D", fontcolor="#FFFFFF"]
OrgnizationalProcessAssetsUpdates[label="Orgnizational process assets updates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectDocumentsUpdates[label="Project documents updates", shape=folder, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectManagementPlanUpdates[label="Project management plan updates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ChangeLog[label="Change log", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ApprovedChangeRequests[label="Approved change requests", shape=note, style=filled, color="#8470FF", fillcolor="#EFEFEF"]
ChangeRequests[label="Change requests", shape=note, style=filled, color="#8470FF", fillcolor="#EFEFEF"]
WorkPerformanceReports[label="Work performance reports", shape=note, style=filled, color="#00FF7F", fillcolor="#EFEFEF"]
WorkPerformanceInformation[label="Work performance information", shape=note, style=filled, color="#00FF7F", fillcolor="#EFEFEF"]
WorkPerformanceData[label="Work performance data", shape=note, style=filled, color="#00FF7F", fillcolor="#EFEFEF"]
ValidatedChanges[label="Validated changes", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ScheduleForecasts[label="Schedule forecasts", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
CostForecasts[label="Cost forecasts", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
Deliverables[label="Deliverables", shape="doubleoctagon", style="filled", fillcolor="#A0522D", color="#A0522D", fontcolor="#FFFFFF"]
OuputsFromOtherProcesses[label="Ouputs from other processes", shape="folder", style=filled, color="#999999", fillcolor="#FFFFFF"]

/* 5. scope */
PlanScopeManagement[label=" | 5.1 Plan Scope Management | ", shape="record", style=filled, color="#000000", fillcolor="#E0FFFF"]
CollectRequirements[label=" | 5.2 Collect Requirements | ", shape="record", style=filled, color="#000000", fillcolor="#E0FFFF"]
DefineScope[label=" | 5.3 Define Scope | ", shape="record", style=filled, color="#000000", fillcolor="#E0FFFF"]
CreateWBS[label=" | 5.4 Create WBS | ", shape="record", style=filled, color="#000000", fillcolor="#E0FFFF"]
ValidateScope[label=" | 5.5 Validate Scope | ", shape="record", style=filled, color="#000000", fillcolor="#E0FFFF"]
ControlScope[label=" | 5.6 Control Scope | ", shape="record", style=filled, color="#000000", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanScopeManagement[color="#000000"]
ProjectCharter->PlanScopeManagement[color="#000000"]
PlanScopeManagement->ScopeManagementPlan[color="#000000"]
PlanScopeManagement->RequirementsManagementPlan[color="#000000"]

ScopeManagementPlan->CollectRequirements[color="#000000"]
RequirementsManagementPlan->CollectRequirements[color="#000000"]
ProjectCharter->CollectRequirements[color="#000000"]
StakeholderManagementPlan->CollectRequirements[color="#000000"]
StakeholderRegister->CollectRequirements[color="#000000"]
CollectRequirements->RequirementsDocumentation[color="#000000"]
CollectRequirements->RequirementsTraceabilityMatrix[color="#000000"]

ScopeManagementPlan->DefineScope[color="#000000"]
ProjectCharter->DefineScope[color="#000000"]
RequirementsDocumentation->DefineScope[color="#000000"]
DefineScope->ProjectScopeStatement[color="#000000"]
DefineScope->ProjectDocumentsUpdates[color="#000000"]

ScopeManagementPlan->CreateWBS[color="#000000"]
ProjectScopeStatement->CreateWBS[color="#000000"]
RequirementsDocumentation->CreateWBS[color="#000000"]
CreateWBS->ScopeBaseline[color="#000000"]
CreateWBS->ProjectDocumentsUpdates[color="#000000"]

ProjectManagementPlan->ValidateScope[color="#000000"]
RequirementsDocumentation->ValidateScope[color="#000000"]
RequirementsTraceabilityMatrix->ValidateScope[color="#000000"]
VerifiedDeliverables->ValidateScope[color="#000000"]
WorkPerformanceData->ValidateScope[color="#000000"]
ValidateScope->AcceptedDeliverables[color="#000000"]
ValidateScope->ChangeRequests[color="#000000"]
ValidateScope->WorkPerformanceInformation[color="#000000"]
ValidateScope->ProjectDocumentsUpdates[color="#000000"]

ProjectManagementPlan->ControlScope[color="#000000"]
RequirementsDocumentation->ControlScope[color="#000000"]
RequirementsTraceabilityMatrix->ControlScope[color="#000000"]
WorkPerformanceData->ControlScope[color="#000000"]
ControlScope->WorkPerformanceInformation[color="#000000"]
ControlScope->ChangeRequests[color="#000000"]
ControlScope->ProjectManagementPlanUpdates[color="#000000"]
ControlScope->ProjectDocumentsUpdates[color="#000000"]

VerifiedDeliverables[label="Verified deliverables", shape="doubleoctagon", style="filled", fillcolor="#A0522D", color="#A0522D", fontcolor="#FFFFFF"]
ScopeBaseline[label="Scope baseline", shape=note, style=filled, color="gray", fillcolor="#f9f1d5"]
ScopeManagementPlan[label="Scope management plan", shape=note, style=filled, color="gray", fillcolor="#f9f1d5"]
RequirementsManagementPlan[label="Requirements management plan", shape=note, style=filled, color="gray", fillcolor="#f9f1d5"]
ProjectScopeStatement[label="Project scope statement", shape=note, style=filled, color="gray", fillcolor="#f9f1d5"]
StakeholderRegister[label="Stakeholder register", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
StakeholderManagementPlan[label="Stakeholder management plan", shape=note, style=filled, color="gray", fillcolor="#f9f1d5"]
RequirementsDocumentation[label="Requirements documentation", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
RequirementsTraceabilityMatrix[label="Requirements traceability matrix", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 6. time */
PlanScheduleManagement[label=" |6.1 Plan Schedule Management| ", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]
DefineActivities[label="|6.2 Define Activities|", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]
SequenceActivities[label="|6.3 Sequence Activities|", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]
EstimateActivityResources[label="|6.4 Estimate Activity Resources|", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]
EstimateActivityDuration[label="|6.5 Estimate Activity Duration|", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]
DevelopSchedule[label="|6.6 Develop Schedule|", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]
ControlSchedule[label="|6.7 Control Schedule|", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanScheduleManagement[color="#0000FF"]
ProjectCharter->PlanScheduleManagement[color="#0000FF"]
PlanScheduleManagement->ScheduleManagementPlan[color="#0000FF"]

ScheduleManagementPlan->DefineActivities[color="#0000FF"]
ScopeBaseline->DefineActivities[color="#0000FF"]
DefineActivities->ActivityList[color="#0000FF"]
DefineActivities->ActivityAttributes[color="#0000FF"]
DefineActivities->MilestoneList[color="#0000FF"]

ScheduleManagementPlan->SequenceActivities[color="#0000FF"]
ActivityList->SequenceActivities[color="#0000FF"]
ActivityAttributes->SequenceActivities[color="#0000FF"]
MilestoneList->SequenceActivities[color="#0000FF"]
ProjectScopeStatement->SequenceActivities[color="#0000FF"]
SequenceActivities->ProjectScheduleNetworkDiagrams[color="#0000FF"]
SequenceActivities->ProjectDocumentsUpdates[color="#0000FF"]

ScheduleManagementPlan->EstimateActivityResources[color="#0000FF"]
ActivityList->EstimateActivityResources[color="#0000FF"]
ActivityAttributes->EstimateActivityResources[color="#0000FF"]
ResourceCalendar->EstimateActivityResources[color="#0000FF"]
RiskRegister->EstimateActivityResources[color="#0000FF"]
ActivityCostEstimates->EstimateActivityResources[color="#0000FF"]
EstimateActivityResources->ActivityResourceRequirements[color="#0000FF"]
EstimateActivityResources->ResourceBreakdownStructure[color="#0000FF"]
EstimateActivityResources->ProjectDocumentsUpdates[color="#0000FF"]

ScheduleManagementPlan->EstimateActivityDuration[color="#0000FF"]
ActivityList->EstimateActivityDuration[color="#0000FF"]
ActivityAttributes->EstimateActivityDuration[color="#0000FF"]
ActivityResourceRequirements->EstimateActivityDuration[color="#0000FF"]
ResourceCalendar->EstimateActivityDuration[color="#0000FF"]
ProjectScopeStatement->EstimateActivityDuration[color="#0000FF"]
RiskRegister->EstimateActivityDuration[color="#0000FF"]
ResourceBreakdownStructure->EstimateActivityDuration[color="#0000FF"]
EstimateActivityDuration->ActivityDurationEstimates[color="#0000FF"]
EstimateActivityDuration->ProjectDocumentsUpdates[color="#0000FF"]

ScheduleManagementPlan->DevelopSchedule[color="#0000FF"]
ActivityList->DevelopSchedule[color="#0000FF"]
ActivityAttributes->DevelopSchedule[color="#0000FF"]
ProjectScheduleNetworkDiagrams->DevelopSchedule[color="#0000FF"]
ActivityResourceRequirements->DevelopSchedule[color="#0000FF"]
ResourceCalendar->DevelopSchedule[color="#0000FF"]
ActivityDurationEstimates->DevelopSchedule[color="#0000FF"]
ProjectScopeStatement->DevelopSchedule[color="#0000FF"]
RiskRegister->DevelopSchedule[color="#0000FF"]
ProjectStaffAssignments->DevelopSchedule[color="#0000FF"]
ResourceBreakdownStructure->DevelopSchedule[color="#0000FF"]
DevelopSchedule->ScheduleBaseline[color="#0000FF"]
DevelopSchedule->ProjectSchedule[color="#0000FF"]
DevelopSchedule->ScheduleData[color="#0000FF"]
DevelopSchedule->ProjectCalendar[color="#0000FF"]
DevelopSchedule->ProjectManagementPlanUpdates[color="#0000FF"]
DevelopSchedule->ProjectDocumentsUpdates[color="#0000FF"]

ProjectManagementPlan->ControlSchedule[color="#0000FF"]
ProjectSchedule->ControlSchedule[color="#0000FF"]
WorkPerformanceData->ControlSchedule[color="#0000FF"]
ProjectCalendar->ControlSchedule[color="#0000FF"]
ScheduleData->ControlSchedule[color="#0000FF"]
ControlSchedule->WorkPerformanceInformation[color="#0000FF"]
ControlSchedule->ScheduleForecasts[color="#0000FF"]
ControlSchedule->ChangeRequests[color="#0000FF"]
ControlSchedule->ProjectManagementPlanUpdates[color="#0000FF"]
ControlSchedule->ProjectDocumentsUpdates[color="#0000FF"]

ScheduleManagementPlan[label="Schedule management plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ScheduleBaseline[label="Schedule baseline", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ActivityList[label="Activity list", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityAttributes[label="Activity attributes", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
MilestoneList[label="Milestone list", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectScheduleNetworkDiagrams[label="Project schedule network diagrams", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
RiskRegister[label="Risk register", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ResourceCalendar[label="Resource calendar", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityCostEstimates[label="Activity cost estimates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ResourceBreakdownStructure[label="Resource breakdown structure", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityResourceRequirements[label="activity resource requirements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityDurationEstimates[label="Activity duration estimates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectStaffAssignments[label="Project staff assignments", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectCalendar[label="Project calendar", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectSchedule[label="Project schedule", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ScheduleData[label="Schedule data", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 7. Cost */
PlanCostManagement[label=" |7.1 Plan Cost Management| ", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]
EstimateCosts[label="|7.2 Estimate Costs|", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]
DetermineBudget[label="|7.3 Determine Budget|", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]
ControlCosts[label="|7.4 Control Costs|", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanCostManagement[color="#FFA500"]
ProjectCharter->PlanCostManagement[color="#FFA500"]
PlanCostManagement->CostManagementPlan[color="#FFA500"]

CostManagementPlan->EstimateCosts[color="#FFA500"]
HumanResourceManagementPlan->EstimateCosts[color="#FFA500"]
ScopeBaseline->EstimateCosts[color="#FFA500"]
ProjectSchedule->EstimateCosts[color="#FFA500"]
RiskRegister->EstimateCosts[color="#FFA500"]
EstimateCosts->ActivityCostEstimates[color="#FFA500"]
EstimateCosts->BasisOfEstimates[color="#FFA500"]
EstimateCosts->ProjectDocumentsUpdates[color="#FFA500"]

CostManagementPlan->DetermineBudget[color="#FFA500"]
ScopeBaseline->DetermineBudget[color="#FFA500"]
ActivityCostEstimates->DetermineBudget[color="#FFA500"]
BasisOfEstimates->DetermineBudget[color="#FFA500"]
ProjectSchedule->DetermineBudget[color="#FFA500"]
ResourceCalendar->DetermineBudget[color="#FFA500"]
RiskRegister->DetermineBudget[color="#FFA500"]
Agreements->DetermineBudget[color="#FFA500"]
DetermineBudget->CostBaseline[color="#FFA500"]
DetermineBudget->ProjectFundingRequirements[color="#FFA500"]
DetermineBudget->ProjectDocumentsUpdates[color="#FFA500"]

ProjectManagementPlan->ControlCosts[color="#FFA500"]
ProjectFundingRequirements->ControlCosts[color="#FFA500"]
WorkPerformanceData->ControlCosts[color="#FFA500"]
ControlCosts->WorkPerformanceInformation[color="#FFA500"]
ControlCosts->CostForecasts[color="#FFA500"]
ControlCosts->ChangeRequests[color="#FFA500"]
ControlCosts->ProjectManagementPlanUpdates[color="#FFA500"]
ControlCosts->ProjectDocumentsUpdates[color="#FFA500"]

HumanResourceManagementPlan[label="Human Resource Management Plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
CostManagementPlan[label="Cost Management Plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
CostBaseline[label="Cost Baseline", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ProjectFundingRequirements[label="Project funding requirements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
BasisOfEstimates[label="Basis of estimates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 8 Quality */
PlanQualityManagement[label=" | 8.1 Plan Quality Management | ", shape="record", style=filled, color="#228B22", fillcolor="#E0FFFF"]
PerformQualityAssurance[label=" | 8.2 Perform Quality Assurance | ", shape="record", style=filled, color="#228B22", fillcolor="#E0FFFF"]
ControlQuality[label=" | 8.3 Control Quality | ", shape="record", style=filled, color="#228B22", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanQualityManagement[color="#228B22"]
StakeholderRegister->PlanQualityManagement[color="#228B22"]
RequirementsDocumentation->PlanQualityManagement[color="#228B22"]
PlanQualityManagement->QualityManagementPlan[color="#228B22"]
PlanQualityManagement->ProcessImprovementPlan[color="#228B22"]
PlanQualityManagement->QualityMetrics[color="#228B22"]
PlanQualityManagement->QualityChecklists[color="#228B22"]
PlanQualityManagement->ProjectDocumentsUpdates[color="#228B22"]

ProjectManagementPlan->PerformQualityAssurance[color="#228B22"]
ProcessImprovementPlan->PerformQualityAssurance[color="#228B22"]
QualityMetrics->PerformQualityAssurance[color="#228B22"]
QualityControlMeasurements->PerformQualityAssurance[color="#228B22"]
ProjectDocuments->PerformQualityAssurance[color="#228B22"]
PerformQualityAssurance->ChangeRequests[color="#228B22"]
PerformQualityAssurance->ProjectManagementPlanUpdates[color="#228B22"]
PerformQualityAssurance->ProjectDocumentsUpdates[color="#228B22"]

ProjectManagementPlan->ControlQuality[color="#228B22"]
QualityMetrics->ControlQuality[color="#228B22"]
QualityChecklists->ControlQuality[color="#228B22"]
WorkPerformanceData->ControlQuality[color="#228B22"]
ApprovedChangeRequests->ControlQuality[color="#228B22"]
Deliverables->ControlQuality[color="#228B22"]
ProjectDocuments->ControlQuality[color="#228B22"]
ControlQuality->QualityControlMeasurements[color="#228B22"]
ControlQuality->ValidatedChanges[color="#228B22"]
ControlQuality->ValidatedDeliverables[color="#228B22"]
ControlQuality->WorkPerformanceInformation[color="#228B22"]
ControlQuality->ChangeRequests[color="#228B22"]
ControlQuality->ProjectManagementPlanUpdates[color="#228B22"]
ControlQuality->ProjectDocumentsUpdates[color="#228B22"]

QualityManagementPlan[label="Quality Management Plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ProcessImprovementPlan[label="Process Improvement Plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
QualityMetrics[label="Quality metrics", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
QualityChecklists[label="Quality checklists", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
QualityControlMeasurements[label="Quality control measurements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectDocuments[label="Project documents", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ValidatedDeliverables[label="Validated deliverables", shape="doubleoctagon", style="filled", fillcolor="#A0522D", color="#A0522D", fontcolor="#FFFFFF"]

/* 9. Human Resource */
PlanHumanResourceManagement[label=" |9.1 Plan Human Resource Management | ", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]
AcquireProjectTeam[label="|9.2 Acquire Project Team |", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]
DevelopProjectTeam[label="|9.3 Develop Project Team |", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]
ManageProjectTeam[label="|9.4 Manage Project Team |", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanHumanResourceManagement[color="#6A5ACD"]
ActivityResourceRequirements->PlanHumanResourceManagement[color="#6A5ACD"]
PlanHumanResourceManagement->HumanResourceManagementPlan[color="#6A5ACD"]

HumanResourceManagementPlan->AcquireProjectTeam[color="#6A5ACD"]
ActivityResourceRequirements->AcquireProjectTeam[color="#6A5ACD"]
AcquireProjectTeam->ProjectStaffAssignments[color="#6A5ACD"]
AcquireProjectTeam->ResourceCalendar[color="#6A5ACD"]
AcquireProjectTeam->ProjectManagementPlanUpdates[color="#6A5ACD"]

HumanResourceManagementPlan->DevelopProjectTeam[color="#6A5ACD"]
ProjectStaffAssignments->DevelopProjectTeam[color="#6A5ACD"]
ResourceCalendar->DevelopProjectTeam[color="#6A5ACD"]
DevelopProjectTeam->TeamPerformanceAssessments[color="#6A5ACD"]
DevelopProjectTeam->EnterpriseEnvironmentalFactorsUpdates[color="#6A5ACD"]

HumanResourceManagementPlan->ManageProjectTeam[color="#6A5ACD"]
ProjectStaffAssignments->ManageProjectTeam[color="#6A5ACD"]
TeamPerformanceAssessments->ManageProjectTeam[color="#6A5ACD"]
IssueLog->ManageProjectTeam[color="#6A5ACD"]
WorkPerformanceReports->ManageProjectTeam[color="#6A5ACD"]
ManageProjectTeam->ChangeRequests[color="#6A5ACD"]
ManageProjectTeam->ProjectManagementPlanUpdates[color="#6A5ACD"]
ManageProjectTeam->ProjectDocumentsUpdates[color="#6A5ACD"]
ManageProjectTeam->EnterpriseEnvironmentalFactorsUpdates[color="#6A5ACD"]

IssueLog[label="Issue log", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
TeamPerformanceAssessments[label="Team performance assessments", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
EnterpriseEnvironmentalFactorsUpdates[label="Enterprise environmental factors updates", shape=component, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 10. Communications */
PlanCommunicationsManagement[label=" |10.1 Plan Communications Management | ", shape="record", style=filled, color="#088A68", fillcolor="#E0FFFF"]
ManageCommunications[label="|10.2 Manage Communications |", shape="record", style=filled, color="#088A68", fillcolor="#E0FFFF"]
ControlCommunications[label="|10.3 Control Communications |", shape="record", style=filled, color="#088A68", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanCommunicationsManagement[color="#088A68"]
StakeholderRegister->PlanCommunicationsManagement[color="#088A68"]
PlanCommunicationsManagement->CommunicationsManagementPlan[color="#088A68"]
PlanCommunicationsManagement->ProjectDocumentsUpdates[color="#088A68"]

CommunicationsManagementPlan->ManageCommunications[color="#088A68"]
WorkPerformanceReports->ManageCommunications[color="#088A68"]
ManageCommunications->ProjectCommunications[color="#088A68"]
ManageCommunications->ProjectManagementPlanUpdates[color="#088A68"]
ManageCommunications->ProjectDocumentsUpdates[color="#088A68"]

CommunicationsManagementPlan->ControlCommunications[color="#088A68"]
ProjectCommunications->ControlCommunications[color="#088A68"]
IssueLog->ControlCommunications[color="#088A68"]
WorkPerformanceData->ControlCommunications[color="#088A68"]
ControlCommunications->WorkPerformanceInformation[color="#088A68"]
ControlCommunications->ChangeRequests[color="#088A68"]
ControlCommunications->ProjectManagementPlanUpdates[color="#088A68"]
ControlCommunications->ProjectDocumentsUpdates[color="#088A68"]

CommunicationsManagementPlan[label="Communications Management Plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ProjectCommunications[label="Project communications", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 11. Risk */
PlanRiskManagement[label=" |11.1 Plan Risk Management | ", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
IdentifyRisks[label="|11.2 Identify Risks |", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
PerformQualitativeRiskAnalysis[label="|11.3 Perform Qualitative Risk Analysis |", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
PerformQuantitativeRiskAnalysis[label="|11.4 Perform Quantitative Risk Analysis |", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
PlanRiskResponses[label=" |11.5 Plan Risk Responses | ", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
ControlRisks[label=" |11.6 Control Risks | ", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanRiskManagement[color="#FFFF00"]
ProjectCharter->PlanRiskManagement[color="#FFFF00"]
StakeholderRegister->PlanRiskManagement[color="#FFFF00"]
PlanRiskManagement->RiskManagementPlan[color="#FFFF00"]

RiskManagementPlan->IdentifyRisks[color="#FFFF00"]
CostManagementPlan->IdentifyRisks[color="#FFFF00"]
ScheduleManagementPlan->IdentifyRisks[color="#FFFF00"]
QualityManagementPlan->IdentifyRisks[color="#FFFF00"]
HumanResourceManagementPlan->IdentifyRisks[color="#FFFF00"]
ScopeBaseline->IdentifyRisks[color="#FFFF00"]
ActivityCostEstimates->IdentifyRisks[color="#FFFF00"]
ActivityResourceRequirements->IdentifyRisks[color="#FFFF00"]
StakeholderRegister->IdentifyRisks[color="#FFFF00"]
ProjectDocuments->IdentifyRisks[color="#FFFF00"]
ProcurementDocuments->IdentifyRisks[color="#FFFF00"]
IdentifyRisks->RiskRegister[color="#FFFF00"]

RiskManagementPlan->PerformQualitativeRiskAnalysis[color="#FFFF00"]
ScopeBaseline->PerformQualitativeRiskAnalysis[color="#FFFF00"]
RiskRegister->PerformQualitativeRiskAnalysis[color="#FFFF00"]
PerformQualitativeRiskAnalysis->ProjectDocumentsUpdates[color="#FFFF00"]

RiskManagementPlan->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
CostManagementPlan->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
ScheduleManagementPlan->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
RiskRegister->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
PerformQuantitativeRiskAnalysis->ProjectDocumentsUpdates[color="#FFFF00"]

RiskManagementPlan->PlanRiskResponses[color="#FFFF00"]
RiskRegister->PlanRiskResponses[color="#FFFF00"]
PlanRiskResponses->ProjectManagementPlanUpdates[color="#FFFF00"]
PlanRiskResponses->ProjectDocumentsUpdates[color="#FFFF00"]

ProjectManagementPlan->ControlRisks[color="#FFFF00"]
RiskRegister->ControlRisks[color="#FFFF00"]
WorkPerformanceData->ControlRisks[color="#FFFF00"]
WorkPerformanceReports->ControlRisks[color="#FFFF00"]
ControlRisks->WorkPerformanceInformation[color="#FFFF00"]
ControlRisks->ChangeRequests[color="#FFFF00"]
ControlRisks->ProjectManagementPlanUpdates[color="#FFFF00"]
ControlRisks->ProjectDocumentsUpdates[color="#FFFF00"]

RiskManagementPlan[label="Risk Management Plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ProcurementDocuments[label="Procurement Documents", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 12. Procurement */
PlanProcurementManagement[label=" |12.1 Plan Procurement Management | ", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]
ConductProcurements[label="|12.2 Conduct Procurements |", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]
ControlProcurements[label="|12.3 Control Procurements |", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]
CloseProcurements[label="|12.4 Close Procurements |", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanProcurementManagement[color="#DA70D6"]
RequirementsDocumentation->PlanProcurementManagement[color="#DA70D6"]
RiskRegister->PlanProcurementManagement[color="#DA70D6"]
ActivityResourceRequirements->PlanProcurementManagement[color="#DA70D6"]
ProjectSchedule->PlanProcurementManagement[color="#DA70D6"]
ActivityCostEstimates->PlanProcurementManagement[color="#DA70D6"]
StakeholderRegister->PlanProcurementManagement[color="#DA70D6"]
PlanProcurementManagement->ProcurementManagementPlan[color="#DA70D6"]
PlanProcurementManagement->ProcurementStatementOfWork[color="#DA70D6"]
PlanProcurementManagement->ProcurementDocuments[color="#DA70D6"]
PlanProcurementManagement->SourceSelectionCriteria[color="#DA70D6"]
PlanProcurementManagement->MakeOrBuyDecisions[color="#DA70D6"]
PlanProcurementManagement->ChangeRequests[color="#DA70D6"]
PlanProcurementManagement->ProjectDocumentsUpdates[color="#DA70D6"]

ProcurementManagementPlan->ConductProcurements[color="#DA70D6"]
ProcurementDocuments->ConductProcurements[color="#DA70D6"]
SourceSelectionCriteria->ConductProcurements[color="#DA70D6"]
SellerProposals->ConductProcurements[color="#DA70D6"]
ProjectDocuments->ConductProcurements[color="#DA70D6"]
MakeOrBuyDecisions->ConductProcurements[color="#DA70D6"]
ProcurementStatementOfWork->ConductProcurements[color="#DA70D6"]
ConductProcurements->SelectedSellers[color="#DA70D6"]
ConductProcurements->ProcurementAgreements[color="#DA70D6"]
ConductProcurements->ResourceCalendar[color="#DA70D6"]
ConductProcurements->ChangeRequests[color="#DA70D6"]
ConductProcurements->ProjectManagementPlanUpdates[color="#DA70D6"]
ConductProcurements->ProjectDocumentsUpdates[color="#DA70D6"]

ProjectManagementPlan->ControlProcurements[color="#DA70D6"]
ProcurementDocuments->ControlProcurements[color="#DA70D6"]
ProcurementAgreements->ControlProcurements[color="#DA70D6"]
ApprovedChangeRequests->ControlProcurements[color="#DA70D6"]
WorkPerformanceReports->ControlProcurements[color="#DA70D6"]
WorkPerformanceData->ControlProcurements[color="#DA70D6"]
ControlProcurements->WorkPerformanceInformation[color="#DA70D6"]
ControlProcurements->ChangeRequests[color="#DA70D6"]
ControlProcurements->ProjectManagementPlanUpdates[color="#DA70D6"]
ControlProcurements->ProjectDocumentsUpdates[color="#DA70D6"]

ProjectManagementPlan->CloseProcurements[color="#DA70D6"]
ProcurementDocuments->CloseProcurements[color="#DA70D6"]
CloseProcurements->ClosedProcurements[color="#DA70D6"]

ProcurementManagementPlan[label="Procurement Management Plan", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ProcurementStatementOfWork[label="Procurement statement of work", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
SourceSelectionCriteria[label="Source selection criteria", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
MakeOrBuyDecisions[label="Make-or-buy decisions", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProcurementAgreements[label="Agreements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
SellerProposals[label="Seller proposals", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
SelectedSellers[label="Selected sellers", shape="pentagon", style=filled, color=gray, fillcolor="#EFEFEF"]
ClosedProcurements[label="Closed procurements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 13. Stakeholder */
IdentifyStakeholders[label=" |13.1 Identify Stakeholders | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]
PlanStakeholderManagement[label=" |13.2 Plan Stakeholder Management | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]
ManageStakeholderEngagement[label=" |13.3 Manage Stakeholder Engagement | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]
ControlStakeholderEngagement[label=" |13.4 Control Stakeholder Engagement | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]

ProjectCharter->IdentifyStakeholders[color="#EE82EE"]
ProcurementDocuments->IdentifyStakeholders[color="#EE82EE"]
IdentifyStakeholders->StakeholderRegister[color="#EE82EE"]

ProjectManagementPlan->PlanStakeholderManagement[color="#EE82EE"]
StakeholderRegister->PlanStakeholderManagement[color="#EE82EE"]
PlanStakeholderManagement->StakeholderManagementPlan[color="#EE82EE"]
PlanStakeholderManagement->ProjectDocumentsUpdates[color="#EE82EE"]

StakeholderManagementPlan->ManageStakeholderEngagement[color="#EE82EE"]
CommunicationsManagementPlan->ManageStakeholderEngagement[color="#EE82EE"]
ChangeLog->ManageStakeholderEngagement[color="#EE82EE"]
ManageStakeholderEngagement->IssueLog[color="#EE82EE"]
ManageStakeholderEngagement->ChangeRequests[color="#EE82EE"]
ManageStakeholderEngagement->ProjectManagementPlanUpdates[color="#EE82EE"]
ManageStakeholderEngagement->ProjectDocumentsUpdates[color="#EE82EE"]

ProjectManagementPlan->ControlStakeholderEngagement[color="#EE82EE"]
IssueLog->ControlStakeholderEngagement[color="#EE82EE"]
WorkPerformanceData->ControlStakeholderEngagement[color="#EE82EE"]
ProjectDocuments->ControlStakeholderEngagement[color="#EE82EE"]
ControlStakeholderEngagement->WorkPerformanceInformation[color="#EE82EE"]
ControlStakeholderEngagement->ChangeRequests[color="#EE82EE"]
ControlStakeholderEngagement->ProjectManagementPlanUpdates[color="#EE82EE"]
ControlStakeholderEngagement->ProjectDocumentsUpdates[color="#EE82EE"]

}

耗费9个小时,终于做出来了PMBOK5中47个过程和对应的输入输出的关系图。

这个图太大,很难一眼看完。本意是用这个图来从全局的角度看各个文档/子计划的和过程的关系的。

PMBOK各个过程输入输出关系图

源码

此图使用graphviz制作。http://www.graphviz.org/

dot文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
/*
#dot -Tpng integration.dot -o integration.png
*/
digraph Processes{
graph [nodesep=0.5, ranksep=0.2];

ProjectManagementPlan[label="Project management plan", shape="record"];

subgraph cluster_projectmanagementplan{
label="Project management plan";
node[sep="+20", color="#FF0000", style="filled", fillcolor="#FFFFFF"];
color="#f9f1d5";
style="filled";
rankdir="TB";

ProjectManagementPlan[label="Project management plan", shape="point"];

subgraph cluster_scopebaseline{
label = "Scope Baseline";
style="filled";
color="#FFFFFF";
ScopeBaseline[label="Scope baseline", shape="point" ];
ProjectScopeStatement[label="Project scope statement", shape="note" ];
WBS[label="WBS", shape="note" ];
WBSDictonary[label="WBS dictonary", shape="note" ];

ScopeBaseline -> ProjectScopeStatement -> WBS -> WBSDictonary [color="#FFFFFF"];
};

ScopeManagementPlan[label="Scope management plan", shape="note" ];
RequirementsManagementPlan[label="Requirements management plan", shape="note" ];
StakeholderManagementPlan[label="Stakeholder management plan", shape="note" ];
ScheduleManagementPlan[label="Schedule management plan", shape="note" ];
ScheduleBaseline[label="Schedule baseline", shape="note" ];
HumanResourceManagementPlan[label="Human Resource Management Plan", shape="note" ];
CostManagementPlan[label="Cost Management Plan", shape="note" ];
CostBaseline[label="Cost Baseline", shape="note" ];
QualityManagementPlan[label="Quality Management Plan", shape="note" ];
ProcessImprovementPlan[label="Process Improvement Plan", shape="note" ];
CommunicationsManagementPlan[label="Communications Management Plan", shape="note" ];
RiskManagementPlan[label="Risk Management Plan", shape="note" ];
ProcurementManagementPlan[label="Procurement Management Plan", shape="note" ];

}

DevelopProjectCharter[label=" | 4.1 Develop Project Charter | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
DevelopProjectManagementPlan[label=" | 4.2 Develop Project Management Plan | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
DirectAndManageProjectWork[label=" | 4.3 Direct and Manage Project Work | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
MonitorAndControlProjectWork[label=" | 4.4 Monitor and Control Project Work | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
PerformIntegratedChangeControl[label=" | 4.5 Perform Integrated Change Control | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
CloseProjectOrPhase[label=" | 4.6 Close Project or Phase | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]

ProjectStatementOfWork->DevelopProjectCharter[color="#FF0000"];
BusinessCase->DevelopProjectCharter[aname=tee,color="#FF0000"];
Agreements->DevelopProjectCharter[color="#FF0000"];
DevelopProjectCharter->ProjectCharter[color="#FF0000"];

ProjectCharter->DevelopProjectManagementPlan[color="#FF0000"];
OuputsFromOtherProcesses->DevelopProjectManagementPlan[color="#FF0000"];
DevelopProjectManagementPlan->ProjectManagementPlan[color="#FF0000"]

ProjectManagementPlan->DirectAndManageProjectWork[color="#FF0000"]
ApprovedChangeRequests->DirectAndManageProjectWork[color="#FF0000"]
DirectAndManageProjectWork->Deliverables[color="#FF0000"]
DirectAndManageProjectWork->ChangeRequests[color="#FF0000"]
DirectAndManageProjectWork->WorkPerformanceData[color="#FF0000"]
DirectAndManageProjectWork->ProjectManagementPlan[color="#FF0000"]
DirectAndManageProjectWork->ProjectDocumentsUpdates[color="#FF0000"]

ProjectManagementPlan->MonitorAndControlProjectWork[color="#FF0000"]
ScheduleForecasts->MonitorAndControlProjectWork[color="#FF0000"]
CostForecasts->MonitorAndControlProjectWork[color="#FF0000"]
ValidatedChanges->MonitorAndControlProjectWork[color="#FF0000"]
WorkPerformanceInformation->MonitorAndControlProjectWork[color="#FF0000"]
MonitorAndControlProjectWork->ChangeRequests[color="#FF0000"]
MonitorAndControlProjectWork->ProjectDocumentsUpdates[color="#FF0000"]
MonitorAndControlProjectWork->ProjectManagementPlan[color="#FF0000"]
MonitorAndControlProjectWork->WorkPerformanceReports[color="#FF0000"]

ProjectManagementPlan->PerformIntegratedChangeControl[color="#FF0000"]
WorkPerformanceReports->PerformIntegratedChangeControl[color="#FF0000"]
ChangeRequests->PerformIntegratedChangeControl[color="#FF0000"]
PerformIntegratedChangeControl->ApprovedChangeRequests[color="#FF0000"]
PerformIntegratedChangeControl->ChangeLog[color="#FF0000"]
PerformIntegratedChangeControl->ProjectManagementPlan[color="#FF0000"]
PerformIntegratedChangeControl->ProjectDocumentsUpdates[color="#FF0000"]

ProjectManagementPlan->CloseProjectOrPhase[color="#FF0000"]
CloseProjectOrPhase->FinalProduct[color="#FF0000"]
CloseProjectOrPhase->OrgnizationalProcessAssetsUpdates[color="#FF0000"]
AcceptedDeliverables->CloseProjectOrPhase[color="#FF0000"]

ProjectStatementOfWork[label="Project statement of work", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"];
BusinessCase[label="Business case", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
Agreements[label="Agreements", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ProjectCharter[label="Project charter", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
AcceptedDeliverables[label="Accepted deliverables", shape=doubleoctagon, style=filled, fillcolor="#A0522D", color="#000000", fontcolor="#FFFFFF"]
FinalProduct[label="Final product, service, or result transition", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
OrgnizationalProcessAssetsUpdates[label="Organizational process assets updates", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ProjectDocumentsUpdates[label="Project documents updates", shape=folder, style=filled, color=gray, fillcolor="#f9f1d5"]
ChangeLog[label="Change log", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ApprovedChangeRequests[label="Approved change requests", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ChangeRequests[label="Change requests", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
WorkPerformanceReports[label="Work performance reports", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
WorkPerformanceInformation[label="Work performance information", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
WorkPerformanceData[label="Work performance data", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ValidatedChanges[label="Validated changes", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
ScheduleForecasts[label="Schedule forecasts", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
CostForecasts[label="Cost forecasts", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
Deliverables[label="Deliverables", shape=doubleoctagon, style=filled, fillcolor="#A0522D", color="#000000", fontcolor="#FFFFFF"]
OuputsFromOtherProcesses[label="Ouputs from other processes", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]

/* 5. scope */
PlanScopeManagement[label=" | 5.1 Plan Scope Management | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
CollectRequirements[label=" | 5.2 Collect Requirements | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
DefineScope[label=" | 5.3 Define Scope | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
CreateWBS[label=" | 5.4 Create WBS | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
ValidateScope[label=" | 5.5 Validate Scope | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
ControlScope[label=" | 5.6 Control Scope | ", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanScopeManagement[color="#000000"]
ProjectCharter->PlanScopeManagement[color="#000000"]
PlanScopeManagement->ScopeManagementPlan[color="#000000"]
PlanScopeManagement->RequirementsManagementPlan[color="#000000"]

ScopeManagementPlan->CollectRequirements[color="#000000"]
RequirementsManagementPlan->CollectRequirements[color="#000000"]
ProjectCharter->CollectRequirements[color="#000000"]
StakeholderManagementPlan->CollectRequirements[color="#000000"]
StakeholderRegister->CollectRequirements[color="#000000"]
CollectRequirements->RequirementsDocumentation[color="#000000"]
CollectRequirements->RequirementsTraceabilityMatrix[color="#000000"]

ScopeManagementPlan->DefineScope[color="#000000"]
ProjectCharter->DefineScope[color="#000000"]
RequirementsDocumentation->DefineScope[color="#000000"]
DefineScope->ProjectScopeStatement[color="#000000"]
DefineScope->ProjectDocumentsUpdates[color="#000000"]

ScopeManagementPlan->CreateWBS[color="#000000"]
ProjectScopeStatement->CreateWBS[color="#000000"]
RequirementsDocumentation->CreateWBS[color="#000000"]
CreateWBS->ScopeBaseline[color="#000000"]
CreateWBS->ProjectDocumentsUpdates[color="#000000"]

ProjectManagementPlan->ValidateScope[color="#000000"]
RequirementsDocumentation->ValidateScope[color="#000000"]
RequirementsTraceabilityMatrix->ValidateScope[color="#000000"]
VerifiedDeliverables->ValidateScope[color="#000000"]
WorkPerformanceData->ValidateScope[color="#000000"]
ValidateScope->AcceptedDeliverables[color="#000000"]
ValidateScope->ChangeRequests[color="#000000"]
ValidateScope->WorkPerformanceInformation[color="#000000"]
ValidateScope->ProjectDocumentsUpdates[color="#000000"]

ProjectManagementPlan->ControlScope[color="#000000"]
RequirementsDocumentation->ControlScope[color="#000000"]
RequirementsTraceabilityMatrix->ControlScope[color="#000000"]
WorkPerformanceData->ControlScope[color="#000000"]
ControlScope->WorkPerformanceInformation[color="#000000"]
ControlScope->ChangeRequests[color="#000000"]
ControlScope->ProjectManagementPlan[color="#000000"]
ControlScope->ProjectDocumentsUpdates[color="#000000"]

VerifiedDeliverables[label="Verified deliverables", shape=doubleoctagon, style=filled, fillcolor="#A0522D", color="#000000", fontcolor="#FFFFFF"]
StakeholderRegister[label="Stakeholder register", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
RequirementsDocumentation[label="Requirements documentation", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]
RequirementsTraceabilityMatrix[label="Requirements traceability matrix", shape=note, style=filled, color=gray, fillcolor="#f9f1d5"]

/* 6. time */
PlanScheduleManagement[label=" |6.1 Plan Schedule Management| ", shape="record", style=filled, color="#0000FF", fillcolor="#E0FFFF"]
DefineActivities[label="|6.2 Define Activities|", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
SequenceActivities[label="|6.3 Sequence Activities|", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
EstimateActivityResources[label="|6.4 Estimate Activity Resources|", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
EstimateActivityDuration[label="|6.5 Estimate Activity Duration|", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
DevelopSchedule[label="|6.6 Develop Schedule|", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]
ControlSchedule[label="|6.7 Control Schedule|", shape="record", style=filled, color=blue, fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanScheduleManagement[color="#0000FF"]
ProjectCharter->PlanScheduleManagement[color="#0000FF"]
PlanScheduleManagement->ScheduleManagementPlan[color="#0000FF"]

ScheduleManagementPlan->DefineActivities[color="#0000FF"]
ScopeBaseline->DefineActivities[color="#0000FF"]
DefineActivities->ActivityList[color="#0000FF"]
DefineActivities->ActivityAttributes[color="#0000FF"]
DefineActivities->MilestoneList[color="#0000FF"]

ScheduleManagementPlan->SequenceActivities[color="#0000FF"]
ActivityList->SequenceActivities[color="#0000FF"]
ActivityAttributes->SequenceActivities[color="#0000FF"]
MilestoneList->SequenceActivities[color="#0000FF"]
ProjectScopeStatement->SequenceActivities[color="#0000FF"]
SequenceActivities->ProjectScheduleNetworkDiagrams[color="#0000FF"]
SequenceActivities->ProjectDocumentsUpdates[color="#0000FF"]

ScheduleManagementPlan->EstimateActivityResources[color="#0000FF"]
ActivityList->EstimateActivityResources[color="#0000FF"]
ActivityAttributes->EstimateActivityResources[color="#0000FF"]
ResourceCalendar->EstimateActivityResources[color="#0000FF"]
RiskRegister->EstimateActivityResources[color="#0000FF"]
ActivityCostEstimates->EstimateActivityResources[color="#0000FF"]
EstimateActivityResources->ActivityResourceRequirements[color="#0000FF"]
EstimateActivityResources->ResourceBreakdownStructure[color="#0000FF"]
EstimateActivityResources->ProjectDocumentsUpdates[color="#0000FF"]

ScheduleManagementPlan->EstimateActivityDuration[color="#0000FF"]
ActivityList->EstimateActivityDuration[color="#0000FF"]
ActivityAttributes->EstimateActivityDuration[color="#0000FF"]
ActivityResourceRequirements->EstimateActivityDuration[color="#0000FF"]
ResourceCalendar->EstimateActivityDuration[color="#0000FF"]
ProjectScopeStatement->EstimateActivityDuration[color="#0000FF"]
RiskRegister->EstimateActivityDuration[color="#0000FF"]
ResourceBreakdownStructure->EstimateActivityDuration[color="#0000FF"]
EstimateActivityDuration->ActivityDurationEstimates[color="#0000FF"]
EstimateActivityDuration->ProjectDocumentsUpdates[color="#0000FF"]

ScheduleManagementPlan->DevelopSchedule[color="#0000FF"]
ActivityList->DevelopSchedule[color="#0000FF"]
ActivityAttributes->DevelopSchedule[color="#0000FF"]
ProjectScheduleNetworkDiagrams->DevelopSchedule[color="#0000FF"]
ActivityResourceRequirements->DevelopSchedule[color="#0000FF"]
ResourceCalendar->DevelopSchedule[color="#0000FF"]
ActivityDurationEstimates->DevelopSchedule[color="#0000FF"]
ProjectScopeStatement->DevelopSchedule[color="#0000FF"]
RiskRegister->DevelopSchedule[color="#0000FF"]
ProjectStaffAssignments->DevelopSchedule[color="#0000FF"]
ResourceBreakdownStructure->DevelopSchedule[color="#0000FF"]
DevelopSchedule->ScheduleBaseline[color="#0000FF"]
DevelopSchedule->ProjectSchedule[color="#0000FF"]
DevelopSchedule->ScheduleData[color="#0000FF"]
DevelopSchedule->ProjectCalendar[color="#0000FF"]
DevelopSchedule->ProjectManagementPlan[color="#0000FF"]
DevelopSchedule->ProjectDocumentsUpdates[color="#0000FF"]

ProjectManagementPlan->ControlSchedule[color="#0000FF"]
ProjectSchedule->ControlSchedule[color="#0000FF"]
WorkPerformanceData->ControlSchedule[color="#0000FF"]
ProjectCalendar->ControlSchedule[color="#0000FF"]
ScheduleData->ControlSchedule[color="#0000FF"]
ControlSchedule->WorkPerformanceInformation[color="#0000FF"]
ControlSchedule->ScheduleForecasts[color="#0000FF"]
ControlSchedule->ChangeRequests[color="#0000FF"]
ControlSchedule->ProjectManagementPlan[color="#0000FF"]
ControlSchedule->ProjectDocumentsUpdates[color="#0000FF"]

ActivityList[label="Activity list", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityAttributes[label="Activity attributes", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
MilestoneList[label="Milestone list", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectScheduleNetworkDiagrams[label="Project schedule network diagrams", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
RiskRegister[label="Risk register", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ResourceCalendar[label="Resource calendar", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityCostEstimates[label="Activity cost estimates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ResourceBreakdownStructure[label="Resource breakdown structure", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityResourceRequirements[label="activity resource requirements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ActivityDurationEstimates[label="Activity duration estimates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectStaffAssignments[label="Project staff assignments", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectCalendar[label="Project calendar", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectSchedule[label="Project schedule", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ScheduleData[label="Schedule data", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 7. Cost */
PlanCostManagement[label=" |7.1 Plan Cost Management| ", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]
EstimateCosts[label="|7.2 Estimate Costs|", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]
DetermineBudget[label="|7.3 Determine Budget|", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]
ControlCosts[label="|7.4 Control Costs|", shape="record", style=filled, color="#FFA500", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanCostManagement[color="#FFA500"]
ProjectCharter->PlanCostManagement[color="#FFA500"]
PlanCostManagement->CostManagementPlan[color="#FFA500"]

CostManagementPlan->EstimateCosts[color="#FFA500"]
HumanResourceManagementPlan->EstimateCosts[color="#FFA500"]
ScopeBaseline->EstimateCosts[color="#FFA500"]
ProjectSchedule->EstimateCosts[color="#FFA500"]
RiskRegister->EstimateCosts[color="#FFA500"]
EstimateCosts->ActivityCostEstimates[color="#FFA500"]
EstimateCosts->BasisOfEstimates[color="#FFA500"]
EstimateCosts->ProjectDocumentsUpdates[color="#FFA500"]

CostManagementPlan->DetermineBudget[color="#FFA500"]
ScopeBaseline->DetermineBudget[color="#FFA500"]
ActivityCostEstimates->DetermineBudget[color="#FFA500"]
BasisOfEstimates->DetermineBudget[color="#FFA500"]
ProjectSchedule->DetermineBudget[color="#FFA500"]
ResourceCalendar->DetermineBudget[color="#FFA500"]
RiskRegister->DetermineBudget[color="#FFA500"]
Agreements->DetermineBudget[color="#FFA500"]
DetermineBudget->CostBaseline[color="#FFA500"]
DetermineBudget->ProjectFundingRequirements[color="#FFA500"]
DetermineBudget->ProjectDocumentsUpdates[color="#FFA500"]

ProjectManagementPlan->ControlCosts[color="#FFA500"]
ProjectFundingRequirements->ControlCosts[color="#FFA500"]
WorkPerformanceData->ControlCosts[color="#FFA500"]
ControlCosts->WorkPerformanceInformation[color="#FFA500"]
ControlCosts->CostForecasts[color="#FFA500"]
ControlCosts->ChangeRequests[color="#FFA500"]
ControlCosts->ProjectManagementPlan[color="#FFA500"]
ControlCosts->ProjectDocumentsUpdates[color="#FFA500"]

ProjectFundingRequirements[label="Project funding requirements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
BasisOfEstimates[label="Basis of estimates", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 8 Quality */
PlanQualityManagement[label=" | 8.1 Plan Quality Management | ", shape="record", style=filled, color="#228B22", fillcolor="#E0FFFF"]
PerformQualityAssurance[label=" | 8.2 Perform Quality Assurance | ", shape="record", style=filled, color="#228B22", fillcolor="#E0FFFF"]
ControlQuality[label=" | 8.3 Control Quality | ", shape="record", style=filled, color="#228B22", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanQualityManagement[color="#228B22"]
StakeholderRegister->PlanQualityManagement[color="#228B22"]
RequirementsDocumentation->PlanQualityManagement[color="#228B22"]
PlanQualityManagement->QualityManagementPlan[color="#228B22"]
PlanQualityManagement->ProcessImprovementPlan[color="#228B22"]
PlanQualityManagement->QualityMetrics[color="#228B22"]
PlanQualityManagement->QualityChecklists[color="#228B22"]
PlanQualityManagement->ProjectDocumentsUpdates[color="#228B22"]

ProjectManagementPlan->PerformQualityAssurance[color="#228B22"]
ProcessImprovementPlan->PerformQualityAssurance[color="#228B22"]
QualityMetrics->PerformQualityAssurance[color="#228B22"]
QualityControlMeasurements->PerformQualityAssurance[color="#228B22"]
ProjectDocuments->PerformQualityAssurance[color="#228B22"]
PerformQualityAssurance->ChangeRequests[color="#228B22"]
PerformQualityAssurance->ProjectManagementPlan[color="#228B22"]
PerformQualityAssurance->ProjectDocumentsUpdates[color="#228B22"]

ProjectManagementPlan->ControlQuality[color="#228B22"]
QualityMetrics->ControlQuality[color="#228B22"]
QualityChecklists->ControlQuality[color="#228B22"]
WorkPerformanceData->ControlQuality[color="#228B22"]
ApprovedChangeRequests->ControlQuality[color="#228B22"]
Deliverables->ControlQuality[color="#228B22"]
ProjectDocuments->ControlQuality[color="#228B22"]
ControlQuality->QualityControlMeasurements[color="#228B22"]
ControlQuality->ValidatedChanges[color="#228B22"]
ControlQuality->ValidatedDeliverables[color="#228B22"]
ControlQuality->WorkPerformanceInformation[color="#228B22"]
ControlQuality->ChangeRequests[color="#228B22"]
ControlQuality->ProjectManagementPlan[color="#228B22"]
ControlQuality->ProjectDocumentsUpdates[color="#228B22"]

QualityMetrics[label="Quality metrics", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
QualityChecklists[label="Quality checklists", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
QualityControlMeasurements[label="Quality control measurements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProjectDocuments[label="Project documents", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ValidatedDeliverables[label="Validated deliverables", shape=doubleoctagon, style=filled, fillcolor="#A0522D", color="#000000", fontcolor="#FFFFFF"]

/* 9. Human Resource */
PlanHumanResourceManagement[label=" |9.1 Plan Human Resource Management | ", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]
AcquireProjectTeam[label="|9.2 Acquire Project Team |", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]
DevelopProjectTeam[label="|9.3 Develop Project Team |", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]
ManageProjectTeam[label="|9.4 Manage Project Team |", shape="record", style=filled, color="#6A5ACD", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanHumanResourceManagement[color="#6A5ACD"]
ActivityResourceRequirements->PlanHumanResourceManagement[color="#6A5ACD"]
PlanHumanResourceManagement->HumanResourceManagementPlan[color="#6A5ACD"]

HumanResourceManagementPlan->AcquireProjectTeam[color="#6A5ACD"]
ActivityResourceRequirements->AcquireProjectTeam[color="#6A5ACD"]
AcquireProjectTeam->ProjectStaffAssignments[color="#6A5ACD"]
AcquireProjectTeam->ResourceCalendar[color="#6A5ACD"]
AcquireProjectTeam->ProjectManagementPlan[color="#6A5ACD"]

HumanResourceManagementPlan->DevelopProjectTeam[color="#6A5ACD"]
ProjectStaffAssignments->DevelopProjectTeam[color="#6A5ACD"]
ResourceCalendar->DevelopProjectTeam[color="#6A5ACD"]
DevelopProjectTeam->TeamPerformanceAssessments[color="#6A5ACD"]
DevelopProjectTeam->EnterpriseEnvironmentalFactorsUpdates[color="#6A5ACD"]

HumanResourceManagementPlan->ManageProjectTeam[color="#6A5ACD"]
ProjectStaffAssignments->ManageProjectTeam[color="#6A5ACD"]
TeamPerformanceAssessments->ManageProjectTeam[color="#6A5ACD"]
IssueLog->ManageProjectTeam[color="#6A5ACD"]
WorkPerformanceReports->ManageProjectTeam[color="#6A5ACD"]
ManageProjectTeam->ChangeRequests[color="#6A5ACD"]
ManageProjectTeam->ProjectManagementPlan[color="#6A5ACD"]
ManageProjectTeam->ProjectDocumentsUpdates[color="#6A5ACD"]
ManageProjectTeam->EnterpriseEnvironmentalFactorsUpdates[color="#6A5ACD"]

IssueLog[label="Issue log", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
TeamPerformanceAssessments[label="Team performance assessments", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
EnterpriseEnvironmentalFactorsUpdates[label="Enterprise environmental factors updates", shape=component, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 10. Communications */
PlanCommunicationsManagement[label=" |10.1 Plan Communications Management | ", shape="record", style=filled, color="#FF00FF", fillcolor="#E0FFFF"]
ManageCommunications[label="|10.2 Manage Communications |", shape="record", style=filled, color="#FF00FF", fillcolor="#E0FFFF"]
ControlCommunications[label="|10.3 Control Communications |", shape="record", style=filled, color="#FF00FF", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanCommunicationsManagement[color="#FF00FF"]
StakeholderRegister->PlanCommunicationsManagement[color="#FF00FF"]
PlanCommunicationsManagement->CommunicationsManagementPlan[color="#FF00FF"]
PlanCommunicationsManagement->ProjectDocumentsUpdates[color="#FF00FF"]

CommunicationsManagementPlan->ManageCommunications[color="#FF00FF"]
WorkPerformanceReports->ManageCommunications[color="#FF00FF"]
ManageCommunications->ProjectCommunications[color="#FF00FF"]
ManageCommunications->ProjectManagementPlan[color="#FF00FF"]
ManageCommunications->ProjectDocumentsUpdates[color="#FF00FF"]

CommunicationsManagementPlan->ControlCommunications[color="#FF00FF"]
ProjectCommunications->ControlCommunications[color="#FF00FF"]
IssueLog->ControlCommunications[color="#FF00FF"]
WorkPerformanceData->ControlCommunications[color="#FF00FF"]
ControlCommunications->WorkPerformanceInformation[color="#FF00FF"]
ControlCommunications->ChangeRequests[color="#FF00FF"]
ControlCommunications->ProjectManagementPlan[color="#FF00FF"]
ControlCommunications->ProjectDocumentsUpdates[color="#FF00FF"]

ProjectCommunications[label="Project communications", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 11. Risk */
PlanRiskManagement[label=" |11.1 Plan Risk Management | ", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
IdentifyRisks[label="|11.2 Identify Risks |", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
PerformQualitativeRiskAnalysis[label="|11.3 Perform Qualitative Risk Analysis |", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
PerformQuantitativeRiskAnalysis[label="|11.4 Perform Quantitative Risk Analysis |", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
PlanRiskResponses[label=" |11.5 Plan Risk Responses | ", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]
ControlRisks[label=" |11.6 Control Risks | ", shape="record", style=filled, color="#FFFF00", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanRiskManagement[color="#FFFF00"]
ProjectCharter->PlanRiskManagement[color="#FFFF00"]
StakeholderRegister->PlanRiskManagement[color="#FFFF00"]
PlanRiskManagement->RiskManagementPlan[color="#FFFF00"]

RiskManagementPlan->IdentifyRisks[color="#FFFF00"]
CostManagementPlan->IdentifyRisks[color="#FFFF00"]
ScheduleManagementPlan->IdentifyRisks[color="#FFFF00"]
QualityManagementPlan->IdentifyRisks[color="#FFFF00"]
HumanResourceManagementPlan->IdentifyRisks[color="#FFFF00"]
ScopeBaseline->IdentifyRisks[color="#FFFF00"]
ActivityCostEstimates->IdentifyRisks[color="#FFFF00"]
ActivityResourceRequirements->IdentifyRisks[color="#FFFF00"]
StakeholderRegister->IdentifyRisks[color="#FFFF00"]
ProjectDocuments->IdentifyRisks[color="#FFFF00"]
ProcurementDocuments->IdentifyRisks[color="#FFFF00"]
IdentifyRisks->RiskRegister[color="#FFFF00"]

RiskManagementPlan->PerformQualitativeRiskAnalysis[color="#FFFF00"]
ScopeBaseline->PerformQualitativeRiskAnalysis[color="#FFFF00"]
RiskRegister->PerformQualitativeRiskAnalysis[color="#FFFF00"]
PerformQualitativeRiskAnalysis->ProjectDocumentsUpdates[color="#FFFF00"]

RiskManagementPlan->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
CostManagementPlan->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
ScheduleManagementPlan->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
RiskRegister->PerformQuantitativeRiskAnalysis[color="#FFFF00"]
PerformQuantitativeRiskAnalysis->ProjectDocumentsUpdates[color="#FFFF00"]

RiskManagementPlan->PlanRiskResponses[color="#FFFF00"]
RiskRegister->PlanRiskResponses[color="#FFFF00"]
PlanRiskResponses->ProjectManagementPlan[color="#FFFF00"]
PlanRiskResponses->ProjectDocumentsUpdates[color="#FFFF00"]

ProjectManagementPlan->ControlRisks[color="#FFFF00"]
RiskRegister->ControlRisks[color="#FFFF00"]
WorkPerformanceData->ControlRisks[color="#FFFF00"]
WorkPerformanceReports->ControlRisks[color="#FFFF00"]
ControlRisks->WorkPerformanceInformation[color="#FFFF00"]
ControlRisks->ChangeRequests[color="#FFFF00"]
ControlRisks->ProjectManagementPlan[color="#FFFF00"]
ControlRisks->ProjectDocumentsUpdates[color="#FFFF00"]

ProcurementDocuments[label="Procurement Documents", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 12. Procurement */
PlanProcurementManagement[label=" |12.1 Plan Procurement Management | ", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]
ConductProcurements[label="|12.2 Conduct Procurements |", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]
ControlProcurements[label="|12.3 Control Procurements |", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]
CloseProcurements[label="|12.4 Close Procurements |", shape="record", style=filled, color="#DA70D6", fillcolor="#E0FFFF"]

ProjectManagementPlan->PlanProcurementManagement[color="#DA70D6"]
RequirementsDocumentation->PlanProcurementManagement[color="#DA70D6"]
RiskRegister->PlanProcurementManagement[color="#DA70D6"]
ActivityResourceRequirements->PlanProcurementManagement[color="#DA70D6"]
ProjectSchedule->PlanProcurementManagement[color="#DA70D6"]
ActivityCostEstimates->PlanProcurementManagement[color="#DA70D6"]
StakeholderRegister->PlanProcurementManagement[color="#DA70D6"]
PlanProcurementManagement->ProcurementManagementPlan[color="#DA70D6"]
PlanProcurementManagement->ProcurementStatementOfWork[color="#DA70D6"]
PlanProcurementManagement->ProcurementDocuments[color="#DA70D6"]
PlanProcurementManagement->SourceSelectionCriteria[color="#DA70D6"]
PlanProcurementManagement->MakeOrBuyDecisions[color="#DA70D6"]
PlanProcurementManagement->ChangeRequests[color="#DA70D6"]
PlanProcurementManagement->ProjectDocumentsUpdates[color="#DA70D6"]

ProcurementManagementPlan->ConductProcurements[color="#DA70D6"]
ProcurementDocuments->ConductProcurements[color="#DA70D6"]
SourceSelectionCriteria->ConductProcurements[color="#DA70D6"]
SellerProposals->ConductProcurements[color="#DA70D6"]
ProjectDocuments->ConductProcurements[color="#DA70D6"]
MakeOrBuyDecisions->ConductProcurements[color="#DA70D6"]
ProcurementStatementOfWork->ConductProcurements[color="#DA70D6"]
ConductProcurements->SelectedSellers[color="#DA70D6"]
ConductProcurements->ProcurementAgreements[color="#DA70D6"]
ConductProcurements->ResourceCalendar[color="#DA70D6"]
ConductProcurements->ChangeRequests[color="#DA70D6"]
ConductProcurements->ProjectManagementPlan[color="#DA70D6"]
ConductProcurements->ProjectDocumentsUpdates[color="#DA70D6"]

ProjectManagementPlan->ControlProcurements[color="#DA70D6"]
ProcurementDocuments->ControlProcurements[color="#DA70D6"]
ProcurementAgreements->ControlProcurements[color="#DA70D6"]
ApprovedChangeRequests->ControlProcurements[color="#DA70D6"]
WorkPerformanceReports->ControlProcurements[color="#DA70D6"]
WorkPerformanceData->ControlProcurements[color="#DA70D6"]
ControlProcurements->WorkPerformanceInformation[color="#DA70D6"]
ControlProcurements->ChangeRequests[color="#DA70D6"]
ControlProcurements->ProjectManagementPlan[color="#DA70D6"]
ControlProcurements->ProjectDocumentsUpdates[color="#DA70D6"]

ProjectManagementPlan->CloseProcurements[color="#DA70D6"]
ProcurementDocuments->CloseProcurements[color="#DA70D6"]
CloseProcurements->ClosedProcurements[color="#DA70D6"]

ProcurementStatementOfWork[label="Procurement statement of work", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
SourceSelectionCriteria[label="Source selection criteria", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
MakeOrBuyDecisions[label="Make-or-buy decisions", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
ProcurementAgreements[label="Agreements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
SellerProposals[label="Seller proposals", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]
SelectedSellers[label="Selected sellers", shape="pentagon", style=filled, color=gray, fillcolor="#EFEFEF"]
ClosedProcurements[label="Closed procurements", shape=note, style=filled, color=gray, fillcolor="#EFEFEF"]

/* 13. Stakeholder */
IdentifyStakeholders[label=" |13.1 Identify Stakeholders | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]
PlanStakeholderManagement[label=" |13.2 Plan Stakeholder Management | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]
ManageStakeholderEngagement[label=" |13.3 Manage Stakeholder Engagement | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]
ControlStakeholderEngagement[label=" |13.4 Control Stakeholder Engagement | ", shape="record", style=filled, color="#EE82EE", fillcolor="#E0FFFF"]

ProjectCharter->IdentifyStakeholders[color="#EE82EE"]
ProcurementDocuments->IdentifyStakeholders[color="#EE82EE"]
IdentifyStakeholders->StakeholderRegister[color="#EE82EE"]

ProjectManagementPlan->PlanStakeholderManagement[color="#EE82EE"]
StakeholderRegister->PlanStakeholderManagement[color="#EE82EE"]
PlanStakeholderManagement->StakeholderManagementPlan[color="#EE82EE"]
PlanStakeholderManagement->ProjectDocumentsUpdates[color="#EE82EE"]

StakeholderManagementPlan->ManageStakeholderEngagement[color="#EE82EE"]
CommunicationsManagementPlan->ManageStakeholderEngagement[color="#EE82EE"]
ChangeLog->ManageStakeholderEngagement[color="#EE82EE"]
ManageStakeholderEngagement->IssueLog[color="#EE82EE"]
ManageStakeholderEngagement->ChangeRequests[color="#EE82EE"]
ManageStakeholderEngagement->ProjectManagementPlan[color="#EE82EE"]
ManageStakeholderEngagement->ProjectDocumentsUpdates[color="#EE82EE"]

ProjectManagementPlan->ControlStakeholderEngagement[color="#EE82EE"]
IssueLog->ControlStakeholderEngagement[color="#EE82EE"]
WorkPerformanceData->ControlStakeholderEngagement[color="#EE82EE"]
ProjectDocuments->ControlStakeholderEngagement[color="#EE82EE"]
ControlStakeholderEngagement->WorkPerformanceInformation[color="#EE82EE"]
ControlStakeholderEngagement->ChangeRequests[color="#EE82EE"]
ControlStakeholderEngagement->ProjectManagementPlan[color="#EE82EE"]
ControlStakeholderEngagement->ProjectDocumentsUpdates[color="#EE82EE"]

}