Skip to content

Branch: package_by_component_Secondary

Vanskarner edited this page Oct 30, 2023 · 4 revisions

Gradle Modules Dependency

Gradle Modules Dependency

Components

In all component diagrams, the rectangle labeled 'UI/Presentation' is used simply as a way of grouping these related components. So for organizational purposes, the dependency representation of the 'UI/Presentation' components and the Core component has been simplified to a single line, as doing so for each UI component would create a lot of visual clutter.

Simplified Showing Internal Structure of the Movie Component
Simplified component diagram Diagram of components showing internal structure
Showing Main Component
Component Diagram with Main

Main Component

The main component is made up of the module configuration and also includes auto-generated code from the dependency injection framework.

Main Component Configuration

Movie Component

The Movie component is represented by the com.vanskarner.movie package, as shown in the following diagram:

Movie Package Class Diagram

Note that both local and remote persistence depend on the business logic package, as shown in the internal structure of the Movie component in the component diagram.

Service Exposure

These are the software artifacts that are visible to the client or consumer of this component:

Services exhibition

Movie Dependencies

This diagram shows the dependency of the Movie component on the Core component:

Movie Component Dependency

Testing

Locals

Tests in com.vanskarner.movie

Instrumented

Tests in com.vanskarner.movie.persistence.local

UI Components

The UpcomingUI, UpcomingDetailUI and FavoritesUI components are represented by the upcoming, upcomingDetail and favorites packages, respectively:

UI class diagram

UI Dependencies

This diagram shows the dependency of the UI components on the Movie component:

UI Component Dependency

Testing

Locals

Local Tests in com.vanskarner.cleanmovie.ui.movie

Instrumented

Instrumented Tests in 'com.vanskarner.cleanmovie.ui.movie'

Metrics

Application

Summary of application metrics.

Application Metrics in this Branch

Instability/Abstraction Graph

All gradle modules are located in this graph.

Instability/Abstraction Graph

Core

Core Instability/Abstraction Graph

Movie

Movie Instability/Abstraction Graph

App

Although the gradle module "app" is placed outside the green band, it is important to note that a gradle module does not necessarily always represent a single component. In fact, the gradle "app" module houses both the Main component and the UI components, such as: upcoming, upcomingDetail and favorites.

App Instability/Abstraction Graph

Therefore, each UI component could be analyzed. For this purpose, a rule called "Distance from main sequence in UI components" has been designed to calculate the metrics Instability, Abstraction and Distance from Main Sequence:

UI Component Metrics

Clone this wiki locally