|
253 | 253 | ] |
254 | 254 | }, |
255 | 255 | { |
256 | | - "attachments": {}, |
257 | 256 | "cell_type": "markdown", |
258 | | - "id": "33c3bb79", |
| 257 | + "id": "0bd11586", |
259 | 258 | "metadata": {}, |
260 | 259 | "source": [ |
261 | | - "### Table 3 - External usage per artifact\n", |
| 260 | + "### Table 3a - External usage per artifact sorted by highest external type rate descending\n", |
| 261 | + "\n", |
| 262 | + "The following table shows the most used external packages separately for each artifact including external annotations. The results are sorted by the artifacts with the highest external type usage rate descending. \n", |
| 263 | + "\n", |
| 264 | + "The intention of this table is to find artifacts that use a lot of external dependencies in relation to their size and get all the external packages and their usage.\n", |
262 | 265 | "\n", |
263 | | - "The following table shows the most used external packages separately for each artifact including external annotations. \n", |
| 266 | + "Here, only the first 40 entries are shown. The whole table can be found in the CSV reports.\n", |
264 | 267 | "\n", |
265 | 268 | "**Columns:**\n", |
266 | 269 | "- *artifactName* is used to group the the external package usage per artifact for a more detailed analysis.\n", |
267 | 270 | "- *externalPackageName* identifies the external package as described above\n", |
268 | 271 | "- *numberOfExternalTypeCaller* refers to the distinct types that make use of the external package\n", |
269 | 272 | "- *numberOfExternalTypeCalls* includes every invocation or reference to the types in the external package\n", |
270 | 273 | "- *numberOfTypesInArtifact* represents the total count of all analyzed types for the artifact\n", |
| 274 | + "- *numberOfExternalTypesInArtifact* is the number of all external types that are used by the artifact\n", |
| 275 | + "- *numberOfExternalPackagesInArtifact* is the number of all external packages that are used by the artifact\n", |
| 276 | + "- *externalTypeRate* is the numberOfExternalTypesInArtifact / numberOfTypesInArtifact * 100\n", |
271 | 277 | "- *externalTypeNames* contains a list of actually utilized types of the external package" |
272 | 278 | ] |
273 | 279 | }, |
| 280 | + { |
| 281 | + "cell_type": "code", |
| 282 | + "execution_count": null, |
| 283 | + "id": "f8459ede", |
| 284 | + "metadata": {}, |
| 285 | + "outputs": [], |
| 286 | + "source": [ |
| 287 | + "query_cypher_to_data_frame(\"../cypher/External_Dependencies/External_package_usage_per_artifact_sorted.cypher\").head(40)" |
| 288 | + ] |
| 289 | + }, |
| 290 | + { |
| 291 | + "attachments": {}, |
| 292 | + "cell_type": "markdown", |
| 293 | + "id": "33c3bb79", |
| 294 | + "metadata": {}, |
| 295 | + "source": [ |
| 296 | + "### Table 3b - External usage per artifact\n", |
| 297 | + "\n", |
| 298 | + "The following table shows the most used external packages separately for each artifact including external annotations. The results are grouped per artifact and sorted by the artifacts with the highest external type usage rate descending. Additionally, for each artifact the top 5 used external packages are listed in the top5ExternalPackages column. \n", |
| 299 | + "\n", |
| 300 | + "The intention of this table is to find artifacts that use a lot of external dependencies in relation to their size and get an overview per artifact with the top 5 used external packages, the number of external types and packages used etc. .\n", |
| 301 | + "\n", |
| 302 | + "Only the first 40 entries are shown. The whole table can be found in the CSV reports.\n", |
| 303 | + "\n", |
| 304 | + "**Columns:**\n", |
| 305 | + "- *artifactName* is used to group the the external package usage per artifact for a more detailed analysis.\n", |
| 306 | + "- *numberOfTypesInArtifact* represents the total count of all analyzed types for the artifact\n", |
| 307 | + "- *numberOfExternalTypesInArtifact* is the number of all external types that are used by the artifact\n", |
| 308 | + "- *numberOfExternalPackagesInArtifact* is the number of all external packages that are used by the artifact\n", |
| 309 | + "- *externalTypeRate* is the numberOfExternalTypesInArtifact / numberOfTypesInArtifact * 100\n", |
| 310 | + "- *numberOfExternalTypeCaller* refers to the distinct types that make use of the external package\n", |
| 311 | + "- *numberOfExternalTypeCalls* includes every invocation or reference to the types in the external package\n", |
| 312 | + "- *numberOfExternalPackages* is the number of distinct external packages used by the artifact\n", |
| 313 | + "- *top5ExternalPackages* contains a list of the top 5 most used external packages of the artifact\n", |
| 314 | + "- *someExternalTypes* contains a list of lists and is also mean't to provide some examples of external types used" |
| 315 | + ] |
| 316 | + }, |
274 | 317 | { |
275 | 318 | "cell_type": "code", |
276 | 319 | "execution_count": null, |
277 | 320 | "id": "1637f8ee", |
278 | 321 | "metadata": {}, |
279 | 322 | "outputs": [], |
280 | 323 | "source": [ |
281 | | - "query_cypher_to_data_frame(\"../cypher/External_Dependencies/External_package_usage_per_artifact.cypher\")" |
| 324 | + "query_cypher_to_data_frame(\"../cypher/External_Dependencies/External_package_usage_per_artifact_sorted_top.cypher\").head(40)" |
282 | 325 | ] |
283 | 326 | }, |
284 | 327 | { |
|
289 | 332 | "source": [ |
290 | 333 | "### Table 4 - External usage per artifact and package\n", |
291 | 334 | "\n", |
292 | | - "The next table lists internal packages and the artifacts they belong to that use many different external types of a specific external package without taken external annotations into account. Only the first 30 rows are shown.\n", |
| 335 | + "This table lists internal packages and the artifacts they belong to that use many different external types of a specific external package without taking external annotations into account. \n", |
| 336 | + "\n", |
| 337 | + "Only the first 40 entries are shown. The whole table can be found in the CSV reports.\n", |
293 | 338 | "\n", |
294 | 339 | "**Columns:**\n", |
295 | 340 | "- *artifactName* that contains the type that calls the external package\n", |
|
310 | 355 | "outputs": [], |
311 | 356 | "source": [ |
312 | 357 | "external_package_usage_per_package = query_cypher_to_data_frame(\"../cypher/External_Dependencies/External_package_usage_per_artifact_and_package.cypher\")\n", |
313 | | - "external_package_usage_per_package.head(30)" |
| 358 | + "external_package_usage_per_package.head(40)" |
314 | 359 | ] |
315 | 360 | }, |
316 | 361 | { |
|
321 | 366 | "source": [ |
322 | 367 | "### Table 5 - Top 20 external package usage per type\n", |
323 | 368 | "\n", |
324 | | - "This table lists the internal types that utilize the most different external types and packages. These have the highest probability of change depending on external libraries. A case-by-case approach is also advisable here because there could for example also be code units that encapsulate an external library and have this high count of external dependencies on purpose.\n", |
| 369 | + "This table shows internal types that utilize the most different external types and packages. These have the highest probability of change depending on external libraries. A case-by-case approach is also advisable here because there could for example also be code units that encapsulate an external library and have this high count of external dependencies on purpose.\n", |
| 370 | + "\n", |
| 371 | + "Only the top 20 entries are shown. The whole table can be found in the CSV reports.\n", |
325 | 372 | "\n", |
326 | 373 | "**Columns:**\n", |
327 | 374 | "- *artifactName* that contains the type that calls the external package\n", |
|
355 | 402 | "source": [ |
356 | 403 | "### Table 6 - External package usage distribution per type\n", |
357 | 404 | "\n", |
358 | | - "The next table shown here only includes the first 20 rows.\n", |
359 | | - "It shows how many types use one external package, how many use two, etc. .\n", |
| 405 | + "This table shows how many types use one external package, how many use two, etc. .\n", |
360 | 406 | "This gives an overview of the distribution of external package calls and the overall coupling to external libraries. The higher the count of distinct external packages the lower should be the count of types that use them. Dependencies to external annotations are left out here.\n", |
361 | 407 | "\n", |
362 | | - "Have a look above to find out which types have the highest external package dependency usage.\n", |
| 408 | + "More details about which types have the highest external package dependency usage can be in the tables 4 and 5 above.\n", |
| 409 | + "\n", |
| 410 | + "Only the first 20 entries are shown. The whole table can be found in the CSV reports.\n", |
363 | 411 | "\n", |
364 | 412 | "**Columns:**\n", |
365 | 413 | "- *artifactName* that contains the type that calls the external package\n", |
|
0 commit comments