Avant-propos
:-(
Spécial COVID-19…
Désolé…
-
… pour l'anglais (really?)
-
… de ne pas être un spécialiste d’Android
-
… que ce cours arrive avant que vous sachiez développer en Android/Mobile (majorité)
-
… pour le distanciel (quoi que…)
1. Content
-
Brainstorming & organization
-
Internet search & site web building
-
UML & Modeling for Mobile Applications
-
Case study
2. Organisation prévue
Module de 21h (14 créneaux de 1,5h):
-
3 créneaux semaine 41
-
[1] Intro & Brainstorming (07/10)
-
[2] Travail de groupe (07/10)
-
[3] Première maquette du site Web (07/10)
-
-
3 créneaux semaine 42
-
[4] UML rappel et concepts importants (13/10)
-
[5] Reverse ingéniérie d’une application Android (13/10)
-
[6] Gestion de projet spécifique, UML (13/10)
-
-
8 créneaux 2ème période
-
[7-9] Mise en oeuvre sur une étude de cas (??)
-
[10-11] Modélisation : projet perso (binôme) (??)
-
[12] Modélisation : projet perso (binôme) (??)
-
[13] Présentation publique de votre appli perso (binôme) (??)
-
[14] QCM exam final (??)
-
3. Let’s start Brainstorming
Résultats du brainstorming 2019/2020 TBD… :
Répartition des technos connues (depuis 2015) :
4. Wrap-up
Par petits groupes :
-
[1] Préparation du site web
-
[2] Liste des concepts UML connus et utiles
-
[3] Outils et langages de description d’écrans
-
[4] Plateformes de développement Android
-
[5] Différences iOS /Android
-
[…] Résultats du brainstorm
Les numéros ne représentent pas un ordre d’importance! |
4.1. Plans B …
-
Spécificités des applications mobiles
-
Modélisation des interfaces
-
Modélisation de l’architecture
-
Modélisation du comportement
-
Agilité et applications mobiles
4.2. [1] Site web des fiches
-
Simple et statique
-
Moderne (Foundation, Bootstrap, Awestruct)
-
Multilingue compliant (FR/UK)
Je fais parti de ce groupe! |
4.3. [2] Concepts UML connus
-
1. Recensement des concepts connus
-
diagrammes
-
concepts dans ces diagrammes
-
méthodes (RUP, OpenUP, Agile)
-
⇒ Google Sheet ?
-
-
2. Pour le Mobile Modeling
-
brainstorming
-
4.4. [3] Outils et langages de description d’écrans
-
Type SNI (Schéma de Navigation des Interfaces)
-
Dessin / Générationd de code
-
Focus sur les Open Sources of course
-
…
4.5. [4] Plateformes de développement Android
-
Avis objectifs (chiffrés)
-
Aspects historiques
-
Focus sur les Open Sources of course
-
…
4.6. [5] Différences /
-
Niveau modélisation
-
Concepts
-
Cycle de développement
-
…
4.7. Consignes
Pour chaque groupe (sauf [1]) :
-
Exprimer le problème
-
Rechercher les solutions existantes
-
Brainstormer sur la meilleure solution
-
La formaliser un minimum
-
Remplir un poster sous la forme d’une fiche (cf. point suivant)
-
Merger sa branche
4.8. Fiche
-
Titre
-
Motivations & problems (shortly)
-
Current approaches
-
Proposed approach
-
Example
-
4.9. Résultats
En 2015/2016 nous avons eu deux équipes chargées du site web :
Pour 2016/2017 :
En 2017/2018 :
En 2019/2020 :
4.10. C’est parti!!
https://docs.google.com/spreadsheets/d/1LRaiHSqqxB8LithvgLm12TSxTnb6iG5bInCoD-nxEnQ/edit?usp=sharing
Discord B-219 [detail]#Sujets de PTUT
5. Exemple complet de démarche "ad hoc" autour d’UML
Nous allons aborder une étude de cas tirée du livre de Pascal Roques.
Pour un aperçu du livre, cf. http://www.editions-eyrolles.com/Chapitres/9782212110708/chap01.pdf. |
5.1. Le cahier des charges
Il s’agit de développer un service de vente en ligne (http://jeBouquine.com).
Depuis l’écriture du livre un vrai site de vente utilise cette URL! |
5.2. Des besoins au code
5.3. Raffinement des besoins
5.4. Près du code
5.5. Comment trouver les classes ?
5.6. Comment trouver les interactions ?
5.7. Liens entre diagrammes
5.8. Démarche complète
6. Diagrammatic models
6.1. UML Use Case Diagram
6.2. SysML Requirements Diagram
6.3. Sketch and drawings (Maquettes)
L’IUT de Blagnac a une licence éducation qui vous permet d’utiliser gratuitement Balsamiq : https://iutblagnac.mybalsamiq.com. |
L’IUT de Nice a une licence éducation qui vous permet d’utiliser gratuitement l’outil Axure. |
6.4. UML Class Diagram
6.5. SNI: Schéma de Navigation d’Interface
Il existe un plug-in Eclipse pour SNI: http://sourceforge.net/projects/visual-sni/ |
6.6. UML State Machines
6.7. UML Sequence Diagram
6.8. UML Component Diagram
6.9. SysML Block Definition Diagram
6.10. SysML Internal Block Definition Diagram
6.11. UML deployment diagram
7. Process examples
7.1. One example
-
1) Identify the app users
-
2) Identify the main functionalities
-
3) Analyzing and expanding each functionality
7.2. Agile for Mobile Application Development
7.2.1. Example 1
Some restrictions with mobile application development are:
-
Mobile has restrictions: size of the apps, …
-
Application should be downloadable very fast
-
Update applications quickly and smoothly
-
Error free and fast
-
Seamlessly interact with backend server as needed
7.2.2. Example 2
Challenges presented by developing mobile apps:
-
Short life cycles
-
Short development cycles
-
Limited hardware
-
Frequently changing user demands
-
Must be easily updateable
-
Must download quickly
7.2.3. Example 3
An “Agile with Discipline” approach for mobile app development
Taken from [IBM] |
7.2.4. Example 4
Multi-target User Interface design & Generation using MDE
Taken from [Veldhuis2013] |
8. Reverse Engineering tools
9. Android Application Architecture
9.1. Content
-
Big picture
-
Concepts
-
Android Studio
-
Brainstorm on Android MetaModel
-
Thoughts for your process
|
9.2. Big Picture
A unique aspect of the Android system design is that any app can start another app’s component.
9.2.1. Build
9.2.2. Running
9.2.3. Overall Organization
9.2.4. Interactions
9.2.5. Set of libraries, resources, etc.
9.2.6. Messages
Try to avoid "Hello JMB!":
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
<TextView android:text="Hello JMB!" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
Use "@string/message" instead:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
<TextView android:text="@string/message" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
<resources>
<string name="app_name">My First App</string>
<string name="action_settings">Settings</string>
<string name="message">Hello JMB!</string>
</resources>
9.2.7. content_main.xml
content_main.xml
is a kind of Layout
.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
<TextView android:text="@string/message" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
9.2.8. Views
A Layout
contains components (buttons, etc.) ⇒ Views
9.2.9. Intent
Activities communicate through Intent
.
In the same app:
Or between apps:
9.3. Android Studio in a minute
9.3.2. Create a new Android Studio project
9.3.3. Select a Project Template
9.3.4. Configure the project
9.3.5. First app created!
9.3.6. Detail of an activity
9.3.7. Android Virtual Device Manager
9.3.8. AVD Selection and Configuration
9.3.9. AVD Launching
9.3.10. Navigation Editor
9.4. Android metamodel
Check the Android fundamentals, enrich the list of important concepts and organize them.
9.5. Organizing you app
-
List of
Activities
-
Top Activities
-
Category activities
-
Detail/edit
-
-
Navigation through the activities
-
App structure
-
Process:
-
define class, resources (images, …), strings
-
top-level / layout
-
loop for each activity
-
9.6. Subtilities not covered
-
Manifest.xml
-
Fragments
-
Screen-specific resources
-
Librairies, themes, styles, etc.
-
Database connection
-
Services
-
Material specifics, ART
-
Distribution and commercial aspects
10. Etude de cas 2020 : Original Quiz Player
10.1. Cahier des charges
Original Quiz Player (OQP) est un projet collaboratif de développement devant permettre simplement :
-
Pour un concepteur de quiz (
Quiz
) :-
décrire les questions du quiz et les réponses associées
-
décrire les paramètres supplémentaires
-
-
Pour un joueur (celui répond au quiz) :
-
jouer seul ou contre les autres joueurs
-
manipuler une interface individuelle de suivie (scores, progressions, …)
-
En tant que spécialiste de la modélisation d’applications mobiles, vous aurez la charge de la modélisation des interfaces de l’application.
Voici quelques caractéristiques et besoins clients (en vrac, mais numérotée pour référence) :
-
Le logiciel doit permettre à une personne de décrire les questions et les réponses associées (type, niveau, mots-clés, …)
-
Le logiciel doit permettre à une personne de décrire les paramètres d’un quiz (questions mélangées, choisies au hazard, …)
-
Le logiciel doit permettre à une personne de répondre à un quiz
-
Le logiciel doit permettre à plusieurs personnes de jouer ensemble à un même quiz
Voici quelques options que vous pourrez considérer (en vrac, mais numérotée pour références) :
Quelques commentaires :
-
Comme "Minimal Viable Product" on pourra imaginer le cas d’un logiciel qui affiche les questions une par une, saisie les réponses et affiche le score final. On pourra commencer par une question, puis par un fichier d’entrée (type
CSV
) de questions, puis améliorer au fur et à mesure. -
On se limitera aux quiz sans images ou suppléments, dans un premier temps (uniquement du texte).
10.2. Questions
-
Réalisez un diagramme des cas d’utilisation de cette application.
Figure 39. Exemple 2015/2016 (Ballades VTT) -
Réalisez un diagramme de domaine (diagramme des classes métiers) de cette application.
Figure 40. Exemple 2015/2016 (Ballades VTT) -
Réalisez un diagramme (de votre choix) pour représenter les écrans (et leur enchainement) de votre application.
Figure 41. Exemple 2015/2016 d’une maquette en Balsamiq (Ballades VTT)
Un écran est composé d’éléments structurels. Il peut donc être représenté avec un diagramme de classe. |
Les enchainements d’écrans peuvent être décrits comme des comportements. On peut utiliser :
-
un d’état-transition (cf. Figure ci-dessous),
-
un outil de sketchs, genre Balsamiq (cf. Figure ci-dessous),
-
un outil qui génère du code, genre Android Studio
10.3. Outils
-
Pour les mockups/sketchs : https://iutblagnac.mybalsamiq.com/projects/cardgameplayer2019
Vous pouvez accéder aux dessins de :
-
2015/2016 (https://iutblagnac.mybalsamiq.com/projects/voismabalade).
-
2017 (https://iutblagnac.mybalsamiq.com/projects/slat-parapente).
-
un exemple de 2018 (https://iutblagnac.mybalsamiq.com/projects/miu2018-mgn/grid)
-
10.4. Résultats attendus
-
Rapport au format
.pdf
ou Google Doc -
Démo au format de votre choix (PPT/PDF, Vidéo)
Exemple de vidéo réalisée en 2015/2016
-
.zip
avec figures, modèles.uml
, code, etc.
10.5. Evaluation
Rappelons les conseils habituels :
-
clarté des diagrammes et des choix (explicites) de conception ou d’interprétation réalisés
-
cohérence entre les diagrammes
L’évaluation portera principalement sur les critères suivants :
Critère | Type de critère | Poids approximatif |
---|---|---|
Diagramme des UC |
Correction, pertinence |
10% |
Diagramme des Classes Domaine |
Correction, pertinence |
10% |
Maquettes utilisateur / Écrans |
Correction, pertinence |
20% |
Diagrammes d’enchainement d’écran |
Correction, pertinence |
20% |
Cohérence inter-modèles (Maquettes/DSS, UC/DSS/DS/DCP) |
Correction, pertinence |
15% |
Communication/Présentations |
subjectif :-) |
15% |
Clarté – Présentation du Dossier |
subjectif :-) |
10% |
Vous pouvez insérer une section "auto-évaluation" dans votre rapport, qui reprend cette grille et vous permet de vous auto-évaluer. |
Appendix A: Full Android MetaModel
Taken from: https://github.com/markoudev/modeling |
Activity
Behavior
Entity
Fragment
Layout
Menu
Resources
View
ViewBehavior
Appendix B: References and useful links
References
-
[] Jim Highsmith and Martin Fowler. The agile manifesto. Software Development Magazine, 9(8) :29–30, 2001.
-
[[[1030005]]] Kieran Conboy and Brian Fitzgerald. Toward a conceptual framework of agile methods : a study of agility in different disciplines. In WISER ’04 : Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research, pages 37–44, New York, NY, USA, 2004. ACM.
-
[] Les Cahiers du Programmeur, UML2, Pascal Roques 3ème Edition, Eyrolles, 2007.
-
[] UML 2 par la pratique, Pascal Roques 6ème Edition, Eyrolles, 2007.
-
[] Le projet d’urbanisation du S.I., C. Longépé, 3ème édition, Dunod, 2006.
-
[] Modélisation objet avec UML. Pierre-Alain Muller & Nathalie Gaetner, Eyrolles, 2003.
-
[] http://developer.android.com/guide/components/fundamentals.html
Links
-
[] http://asmarterplanet.com/mobile-enterprise/blog/2015/01/agile-discipline-approach-mobile-app-development.html
-
[] http://www.uml-diagrams.org/android-application-uml-deployment-diagram-example.html
-
[] http://www.javacodegeeks.com/2013/07/android-uml-design-an-app-part-1.html
-
http://www.inf.ed.ac.uk/publications/thesis/online/IM100767.pdf
-
http://fr.slideshare.net/LiliaSfaxi/p1-introduction-a-android
-
http://www.qualitystreet.fr/2010/07/07/prototypage-agile-papier-tableau-blanc-et-balsamiq/
-
[] http://essay.utwente.nl/63418/1/MScThesis_OudeVeldhuis_FINAL.pdf
Glossary
Ressources
The following definitions are only informative. You can find usefull other sources here: |
- ATL
-
_ATLAS Transformation Language
- DRY
-
Don’t Repeat Yourself
- EMF
-
_Eclipse Modeling Framework
- IHM
-
Interface Homme-Machine
- MCF
-
Modèle Conceptuel des Flux
- MCT
-
Modèle Conceptuel des Traitements
- MOA/MOE
-
Maîtrise d’ouvrage (MOA) Maîtrise d’oeuvre (MOE)
- MOF
-
Modèle Organisationnel des Flux
- MOT
-
Modèle Organisationnel des Traitements
- OMG
-
Object Management Group
- PPN
-
Programme Pédagogique National
- SEF
-
Schéma d'Enchaînement des Fenêtres
- SEP
-
Schéma d'Enchaînement des Pages
- SI
-
Système d'Information
- SNI
-
Schéma de Navigation d'Interfaces
- SO
-
Système Organisationnel
- SysML
-
System Modeling Language ™
- TRL
-
Technology Readiness Level
- URL
-
Universal Ressource Locator
About…
This web site has been developped by JMB using the following (open and free) tools:
-
Asciidoctor, v.
2.0.11
-
The git version control system
-
The Travis Continuous Integration tool