Skip to content

Architecture Recovery

jadmalek edited this page Apr 14, 2018 · 19 revisions

The following includes the architecture recovered from the Wikipedia android application. Upon analysis of the code, the team decided that the app/src/main/org/wikipedia subdirectory was critical, would be the basis for architecture recovery, and will be the source for changes made throughout the project.

Class Diagrams

Release 1

Release 2

Share Reading List
Set Up and Enhancement of Trip Planner

Release 3

Article Translator

Translation of Articles Architecture

Article Note Taker and Tracker

Tracking and Note Taking of Articles Architecture

Private Browsing

Incognito Mode Architecture

Article Image Search

Search for an Article by Image Architecture

Finalization of Trip Planner

Component Diagrams of Existing Components Recovered for Initial Architecture Comprehension

Class Diagrams

The class diagrams for the wikipedia/main, wikipedia/activity/baseactivity, wikipedia/feed/onthisday, wikipedia/settings/settingspreferenceloader (as well as the basepreferenceloader), wikipedia/notifications, wikipedia/travel (specifically, subdirectories contained within will be depicted below) and wikipedia/readinglist (particular subdirectories within were modified) subdirectories were constructed as the classes therein have been altered for feature implementations.

main

mainClassDiagram

baseactivity

baseActivityDiagram

Release 1 Features Main Architecture Additions

Changes were also made to the main and activity (namely the baseactivity.class java) packages shown above.

onthisday

OnThisDayClassDiagram

settingspreferenceloader

SettingsPreferenceLoader

notifications

notificationsClassDiagram

Release 2 Features Main Architecture Additions

SHARE READING LIST FEATURE

Reading list database classes relevant to sharing implementation

Reading list database classes relevant to sharing implementation

Single reading list changes

Single reading list changes

Reading lists and reading list item view alterations

Reading lists and reading list item view alterations

SET UP AND ENHANCEMENT OF THE TRIP PLANNER FEATURE

Trip database

Trip database

Trip class and fragment

Trip class and fragment

Date, destination and landmark picker implementations

Date, destination and landmark picker implementations

Trip integration controller and its associations with trip

Trip integration controller and its associations with trip

Release 3 Features Main Architecture Additions

TRANSLATION OF ARTICLES ARCHITECTURE

Class diagram involving main classes Translator, TranslatorDialog, and ShareHandler

TRACKING AND NOTE TAKING OF ARTICLES ARCHITECTURE

Depiction of the main classes involved with this feature and their interactions

INCOGNITO MODE ARCHITECTURE

Illustration of classes altered (no new core classes were introduced) to enable this feature's functionality

SEARCH FOR AN ARTICLE BY IMAGE ARCHITECTURE

Portrayal of core classes that enable article image search

FINALIZATION OF TRIP PLANNER FEATURE

LANDMARK IMPROVEMENTS ARCHITECTURE

Alterations made to trip planner code to allow storage/retrieval and proper display of landmarks

DESTINATION SEARCH HISTORY ARCHITECTURE

Modifications made to trip planner allow for implementation of destination search history

Component Diagrams

The diagram below depicts a holistic view of the main components within the aforementioned wikipedia subdirectory deemed important to illustrate. As this is an overview, the changes made for feature implementations will mainly be depicted in the class diagrams above.

Overall View of Main Components

OverallComponentDiagram

Of said main components, the individual component diagrams for the notifications, feed/onthisday, settings, bridge, concurrency, media, and util components were drawn and displayed below

notifications Component

NotificationsComponentDiagram

onthisday Component

ComponentDiagram

settings Component

SettingsComponentDiagram

bridge and concurrency Components

BridgeAndConcurrencyComponentDiagram

media Component

MediaComponentDiagram

util Component

UtilComponentDiagram