Skip to content
This repository was archived by the owner on Sep 27, 2019. It is now read-only.

Commit 4bc0642

Browse files
authored
Merge pull request #12 from enderian/branchR4
R4
2 parents a49a730 + f2dcd23 commit 4bc0642

File tree

123 files changed

+4305
-583
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+4305
-583
lines changed
0 Bytes
Binary file not shown.

Deliverables/R3/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
###### Παραδοτέο R3
2+
3+
> Έχει γίνει και μερική υλοποίηση του παραδοτέου με Guice (dependency injection) και Mockito στο branch R3-Guice.
4+
5+
# Εισαγωγή
6+
7+
Στο παρών έγγραφο θα αναλυθούν η λογική της αρχιτεκτονικής και τα διαγράμματα ακολουθίας για την λογική πεδίου. Στο τέλος θα αναρτηθεί coverage report για τον κώδικα.
8+
9+
# Αρχιτεκτονική Λογισμικού
10+
11+
## Διάγραμμα πακέτων
12+
13+
![](package-diagram.png)
14+
15+
Τα πακέτα builder, configurations, lab, people, schedule ανήκουν στο domain model. Το πακέτα dao & memorydao προσφέρουν πρόσβαση στα δεδομένα μας (Direct Memory Access). Τέλος έχουμε εφαρμόσει το μοντέλο model view presenter για τα fragments που θα δημιουργηθούν στο R4.
16+
17+
# Στατική Όψη Λογικής Πεδίου
18+
19+
Παρακάτω παρουσιάζεται διαγραμματικά η στατική όψη της λογικής πεδίου.
20+
21+
![](static-view.png)
22+
23+
# Διαγράμματα Ακολουθίας Δυναμικής Όψης Λογικής Πεδίου
24+
25+
Παρακάτω παρουσιάζεται διαγραμματικά το διάγραμμα ακολουθίας για το signIn ενός χρήστη.
26+
27+
![](signin-seq.png)
28+
29+
# Υλοποίηση Λογικής Πεδίου & Testing
30+
31+
Η υλοποίηση της λογικής πεδίου και το testing μπορούν να βρεθούν στο Android Studio Project που έχει αναρτηθεί.
32+
33+
# Coverage Reports
34+
35+
Το report για το coverage του κώδικα μπορεί να δημιουργηθεί μέσα από το Android Studio (Analyze -> Generate Coverage Report), αλλά συνοπτικά είχαμε 95% coverage στις κλάσεις, 99% coverage στις μεθόδους & 96% coverage στις γραμμές.
25.4 KB
Loading

Deliverables/R3/static-view.png

-15.7 KB
Loading

Deliverables/R4/class-diagram.png

140 KB
Loading
18.1 KB
Loading

Deliverables/R4/history-read.png

34.2 KB
Loading

Deliverables/R4/sign-in.png

9.87 KB
Loading

README.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
1-
###### Παραδοτέο R3
2-
3-
> Έχει γίνει και μερική υλοποίηση του παραδοτέου με Guice (dependency injection) και Mockito στο branch R3-Guice.
1+
###### Παραδοτέο R4
42

53
# Εισαγωγή
64

7-
Στο παρών έγγραφο θα αναλυθούν η λογική της αρχιτεκτονικής και τα διαγράμματα ακολουθίας για την λογική πεδίου. Στο τέλος θα αναρτηθεί coverage report για τον κώδικα.
5+
Στο παρών έγγραφο θα αναλυθεί η τελική υλοποίηση της εφαρμογής στο Android framework.
86

97
# Αρχιτεκτονική Λογισμικού
108

11-
## Διάγραμμα πακέτων
9+
## Διάγραμμα κλάσεων
1210

13-
![](Deliverables/R3/package-diagram.png)
11+
Παρακάτων παρουσιάζεται το διάγραμμα κλάσεων που εμπεριέχει όλο το project. Δυστυχώς είναι δυσανάγνωστο από το αρχείο της Markdown.
1412

15-
Τα πακέτα builder, configurations, lab, people, schedule ανήκουν στο domain model. Το πακέτα dao & memorydao προσφέρουν πρόσβαση στα δεδομένα μας (Direct Memory Access). Τέλος έχουμε εφαρμόσει το μοντέλο model view presenter για τα fragments που θα δημιουργηθούν στο R4.
13+
![](Deliverables/R4/class-diagram.png)
1614

17-
# Στατική Όψη Λογικής Πεδίου
15+
## Διάγραμμα πακέτων
1816

19-
Παρακάτω παρουσιάζεται διαγραμματικά η στατική όψη της λογικής πεδίου.
17+
![](Deliverables/R3/package-diagram.png)
2018

21-
![](Deliverables/R3/static-view.png)
19+
Τα πακέτα builder, configurations, lab, people, schedule ανήκουν στο domain model.
20+
Το πακέτα dao & memorydao προσφέρουν πρόσβαση στα δεδομένα μας (Direct Memory Access).
21+
Το πακέτο services περιέχει τις υπηρεσίες (services), που εδώ λειτουργούν ως presenters.
2222

23-
# Διαγράμματα Ακολουθίας Δυναμικής Όψης Λογικής Πεδίου
23+
## Παραδείγματα λειτουργειών
2424

25-
Παρακάτω παρουσιάζεται διαγραμματικά το διάγραμμα ακολουθίας για το signIn ενός χρήστη.
25+
Ακολουθούν τα sequence diagrams για την συνδεση, και ως παράδειγμα την ανάγνωση ιστορικού ανά terminal και την αποθήκευση νέου configuration.
2626

27-
![](Deliverables/R3/signin-seq.png)
27+
![](Deliverables/R4/sign-in.png)
2828

29-
# Υλοποίηση Λογικής Πεδίου & Testing
29+
![](Deliverables/R4/history-read.png)
3030

31-
Η υλοποίηση της λογικής πεδίου και το testing μπορούν να βρεθούν στο Android Studio Project που έχει αναρτηθεί.
31+
![](Deliverables/R4/configuration-save.png)
3232

3333
# Coverage Reports
3434

35-
Το report για το coverage του κώδικα μπορεί να δημιουργηθεί μέσα από το Android Studio (Analyze -> Generate Coverage Report), αλλά συνοπτικά είχαμε 95% coverage στις κλάσεις, 99% coverage στις μεθόδους & 96% coverage στις γραμμές.
35+
Το report για το coverage του κώδικα μπορεί να δημιουργηθεί μέσα από το Android Studio (Analyze -> Generate Coverage Report). Συνοπτικά με τις κλάσεις των activities και των fragments που απαιτούν Android tests είχαμε 46% συνολικό coverage, 50% στα services/presenters (λόγω μεθόδων Android) και 100% σε DAO και μοντέλο πεδίου.

app/build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ android {
44
compileSdkVersion 28
55
defaultConfig {
66
applicationId "gr.aueb.se.labadministration"
7-
minSdkVersion 22
7+
minSdkVersion 26
88
targetSdkVersion 28
99
versionCode 1
1010
versionName "1.0"
@@ -24,7 +24,11 @@ android {
2424

2525
dependencies {
2626
implementation fileTree(include: ['*.jar'], dir: 'libs')
27-
implementation 'com.android.support:appcompat-v7:28.0.0'
27+
implementation 'androidx.appcompat:appcompat:1.0.2'
28+
implementation 'com.google.android.material:material:1.1.0-alpha06'
29+
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
30+
implementation 'androidx.preference:preference:1.1.0-alpha05'
31+
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
2832
testImplementation 'junit:junit:4.12'
2933
androidTestImplementation 'com.android.support.test:runner:1.0.2'
3034
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

0 commit comments

Comments
 (0)