Conception et analyse

Les différentes phases

Tout doit etre traité et rédigé avec quelques schémas.

  1. Introduction ( rapide, objectifs et périmètre de l'étude )
  2. Proposition d'un nouveau système ( Qui fait quoi, Ou, Quand et Comment ): processus métier (motivation des choix)
    1. Modélisation métier (fonctionnelle) puis modélisation du système informatique (Quels services devra t'on fournir? = Ce que l'on doit faire et pas comment)
      1. Répond aux dysfonctionnements
      2. Répond a l'expression des nouveaux besoins
      3. Répond aux contraintes imposées
  3. Architecture Informatique (justifiée pour ce cas et avec quantification des ressources (ignore cote technique))
    1. modélisation complète du système informatique (avec les composants)
      1. type global de l'architecture
      2. les infrastructures de réseau et de communication
      3. les composants (soft et matos)
  4. Modélisation des données
    1. définition des classes
    2. définition des relations et associations entre ces classes
    3. ajout des cardinalités 0..n, 1..n, etc..
  5. Diagramme de classes Exemple de diagramme de classes
  6. Modélisation des traitements
    1. Pour chaque opération:
      1. événements déclencheurs
      2. événements résultants
    2. Diagramme d'activités Exemple de diagramme d'activité
  7. Présentation des écrans des maquettes
    1. Cohérence vis à vis du modèle de données
  8. Conclusion
    1. Ouverture sur les améliorations possibles ou les évolutions futures

Les termes

Analyse = consiste à décomposer un ensemble en sous-ensembles plus faciles à appréhender
Synthèse = contraire de l'analyse = Recomposition en un tout

Approche cartésienne: SADT
Approche systémique: Merise (modéle entité relation, réseaux de Pétri)
Approche objet: Utilisation d'UML ( OMT de Rumbaugh, OOD Grady Booch)

Objets = instances de classes = abstraction (en fonction du contexte) du réel
Objet possède un état (des valeurs), un comportement (des actions), une identité (id)
Propriétés d'une classe = attributs + méthodes
Notion d'interface ( Pas de détail implémentatoire)

modélisation par itérations successives

Détail de la phase de modélisation

Ne pas hésiter à utiliser les diagrammes UML suivants:

diagramme d’activités

. Le diagramme d’activités, certainement plus parlant pour la maîtrise d’ouvrage, qui permet de représenter les activités composant un processus métier, qui fait quoi et l’enchaînement séquentiel de ces activités. Les diagrammes d'activités informatiques détaillent le fonctionnement des cas d'utilisation. Ils n'offrent pas encore une vision orientée objet du système (comme le diagramme de classes ou les diagramme de séquence), mais permettent de comprendre ce que doit faire l'application en réaction aux sollicitations d'un acteur. Ces diagrammes offrent ainsi une vision plus orientée développement structuré de l'application (enchaînement ordonné des traitements pris en charge par l'application) ; ils peuvent être réalisés quels que soient le langage et les outils de développement utilisés pour réaliser l'application.

Diagramme d'activités:
On range les acteurs par colonnes (Client, Agence)
On met des verbes dans les rectangles arrondis pour les actions (Demander une réservation, Rechercher dispo, Réserver le voyage, …)
Des rectangles sans arrondis pour les objets (Résa, billet)
Un losange vide pour les choix (choix indiqués entre parenthése sur les fléches)
une croix dans un cercle pour les exit
un rond plein dans un cercle pour la sortie normale
Un sablier pour les attentes

Exemple de diagramme d'activité

diagramme de cas d’utilisation

. Le diagramme de cas d’utilisation, dans lequel chaque processus métier est représenté par le biais d’un cas d’utilisation. Il offre ainsi une visibilité sur le regroupement des tâches inhérentes au métier en processus et sur l’enchaînement de ces processus Le diagramme de cas d'utilisation du système informatique constitue un diagramme particulier dans UML pour plusieurs raisons. Tout d'abord, il ne s'appuie pas sur une logique « objet », mais propose une vision fonctionnelle du futur système (quelles fonctionnalités, quels services offerts ?). Ensuite, il se situe au coeur de l'analyse du système informatique puisqu'il va servir (ou peut servir) de base de travail pour la construction de tous les autres diagrammes d'analyse. Enfin, parce qu'il est nécessairement accompagné d'une description littéraire, il est compréhensible par tous les intervenants sur le projet, qu'ils soient ou non informaticiens, qu'ils connaissent ou non UML.
Petit bonhomme flèche ou trait vers des CU (Cas d'utilisation) ellipse.

Exemple général de diagramme de cas d'utilisations

Exemple de diagramme de cas d'utilisations

Il est préférable de le mettre par écrit:
Nom du cas d'utilisation
Acteurs:
Evénement déclencheurs
Evénement généré:
Nature du cas d'utilisation: (transactionnelle?)
Périodicité: (aléatoire? Tous les samedis?)
Flot Normal:
Flots alternatifs:

Cas d'utilisation = liste d'actions effectuées une fois par l'utilisateur, une fois par le système juqu'a l'obtention du résultat attendu. La fin d’un cas d’utilisation laisse le système informatique dans un état stable : un cas d’utilisation ne peut s’interrompre en plein milieu d’une transaction.
Si pour enregistrer une vente, il faut toujours saisir la commande et le paiement avant de valider, il s’agit d’un seul cas d’utilisation

diagramme de classes

Le diagramme de classes va permettre de structurer les données de gestion nécessaires à l'exécution des cas d'utilisation décrits dans le diagramme précédent. On se situe au niveau de l'analyse et les données à recueillir à ce stade de la réflexion sont uniquement des données de gestion, modélisées dans les classes d'analyse et qui ont vocation à être persistantes, c'est-à-dire à être stockées dans une base de données (voire dans des fichiers). Là encore, ce n'est qu'en phase de conception que seront ajoutés des objets techniques permettant de gérer les contraintes d'architecture, de performance ou du système. Les données gérées en phase d'analyse du système informatique doivent avoir un sens pour la maîtrise d'ouvrage et les utilisateurs (facture, employé, contrat, produit…).

Exemple: La société propose des catalogues thématiques : un catalogue est une agrégation de voyages, mais un voyage peut être inséré dans plusieurs catalogues. En fonction du catalogue dans lequel il est inséré, le voyage pourra être proposé à des tarifs différents. Un client effectue une réservation par voyage. En cas d'annulation d'un voyage, la date et le motif sont mémorisés. Une réservation peut être payée ou non payée. Un type particulier de voyage est le circuit, d'où la création d'une spécialisation. Un circuit est une composition d'étapes, attachées au seul circuit et n'ayant aucun sens en dehors du circuit auquel elles sont rattachées.

Exemple de diagramme de classes

Multiplicité vers tables 1

Multiplicité vers tables 2

Attention Multiplicité: Il ne peut y avoir de classe d’association sur une association portant des multiplicités 1 / 0..n ou 1 / 1

Majuscule pour la classe en camel.

minuscule pour les attributs et méthodes en camel toujours.

diagramme de séquence

Les diagrammes de séquence décrivent le fonctionnement interne des services offerts par les cas d'utilisation. En effet, alors que les cas d'utilisation ne représentent que les interactions entre les acteurs et le système, sans se préoccuper de ce qu'il se passe « à l'intérieur » du système informatique, les diagrammes de séquence permettent de formaliser quelles sont les interactions nécessaires entre les classes identifiées chaque fois qu'un acteur sollicite le système pour que ce dernier produise un résultat (édition, enregistrement d'une donnée…). La production de ces diagrammes est très importante si l'on souhaite produire un système véritablement modulaire, mutualisant et réutilisant des services métier.

Exemple de diagramme de séquence

Autres

!diagramme d'état Traitement utilisateur ou batch?

http://fr.openclassrooms.com/informatique/cours/creez-votre-application-web-avec-java-ee/mise-en-relation-avec-notre-servlet

Machine de Alan Turing: ruban qui peut aler a droite u a gauche de facon infinie et qui peut lire ou ecrire des etats finis 0/1 ou des caracteres.

Programmation fonctionnelle (pas d'état) : scala / F#
Tout en récursif → pas d'effet de bord → des entrées mais une seule sortie.

En programmation informatique, un framework est un ensemble cohérent de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel (architecture). Un framework se distingue d'une simple bibliothèque logicielle principalement par :

  • son caractère générique, faiblement spécialisé, contrairement à certaines bibliothèques ; un framework peut à ce titre être constitué de plusieurs bibliothèques chacune spécialisée dans un domaine. Un framework peut néanmoins être spécialisé, sur un langage particulier, une plateforme spécifique, un domaine particulier (Reporting, mapping, etc.).
  • le cadre de travail (traduction littérale de framework) qu'il impose de par sa construction même, guidant l'architecture logicielle voire conduisant le développeur à respecter certains patterns ; les bibliothèques le constituant sont alors organisées selon le même paradigme.

Les frameworks sont donc conçus et utilisés pour modeler l'architecture des logiciels applicatifs, des applications web, des middleware et des composants logiciels. Les frameworks sont acquis par les ingénieurs, puis incorporés dans des logiciels applicatifs mis sur le marché, ils sont par conséquent rarement achetés et installés séparément par un utilisateur final.
L'inversion de contrôle fait partie de l'architecture typique d'un framework
Spring / Struts / JavaServer Faces / Hibernate / Java SE/ME/EE / .Net

La programmation structurée constitue un sous-ensemble de la programmation impérative. Pascal/Ada/C Cycle en V
programmation objet est aussi un sous ensemble avec java/C#/C+.

La programmation déclarative est un paradigme de programmation. Il consiste à créer des applications sur la base de composants logiciels indépendants du contexte et ne comportant aucun état interne.
exemple: programmation déclarative: HTML programmation fonctionnelle: scala/F#/Lisp

Une plate-forme est en informatique une base de travail à partir de laquelle on peut écrire, lire, utiliser, développer un ensemble de logiciels.
Les termes 'framework' et 'plateforme' sont également fréquemment confondus.
Un framework est avant tout une bibliothèque de composants mis à disposition (ex: Spring framework), tandis qu'une plateforme se caractérise par sa faculté à exécuter des logiciels.
La nuance est cependant ténue, certains frameworks étant fournis avec leur compilateur; ainsi la JVM permettant d'exécuter les programmes Java sur différents OS étant intégrée à ses frameworks, Oracle a dénommé ses frameworks plateforme Java.

doxygen / javadoc /** @author @param @version @return */ expression des besoins, document d'architecture, de conception, technique, manuels utilisateurs ou admin ou d'upgrade, brochures commerciales

UML = Unified Modeling Language est un langage de modélisation

Programme Analyste

http://fr.wikipedia.org/wiki/Gestion_de_projet

  • processus méters: Ensemble des règles métier qui contrôlent et influencent l'exercice d'un métier.
    • résultat doit avoir un sens pour le client. produisant un résultat précis et mesurable. les entrées et les sorties sont clairement identifiables.
    • Notion de workflow → Diagramme des cas d'utilisation. Acteurs/Taches.
    • Workflow = gestionnaire de processus métiers. (humains, applications/services, processus tiers)
    • Circuit de validation, taches à accomplir, délais à respecter, modes de validations
    • Action : élément de base de spécification du comportement
    • Activité: séquencement d'actions
  • Structuration des données métiers: méthode merise/UML diagramme de classe ( cardinalité)
  • Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données et procédures) qui permet de collecter, regrouper, classifier, traiter et diffuser de l'information dans un environnement donné
  • La décomposition des processus en tâches et activités
    • Une tâche est une activité (considérée comme) nécessaire, ou utilisée pour atteindre un objectif en utilisant un moyen donné. Une action est une tache élémentaire non décomposable en sous tache.
    • ordonnancement des taches
  • diagramme d'activité: permet de visualiser le séquencement ordonné des actions pour une activité donnée
  • Schéma directeur : document de synthése réalisé par la DSI et validé par la direction générale.
    • présente vue globale et actuelle du SI
    • spécification des besoins et présentation des options selon l'état de l'art
    • orientation à prendre
    • démarche anticipative et normative
    • temporel
  • budget informatique et analyse des couts informatiques: TCO=Total Cost Of Ownership ROI=ReturnOnInvestment
    • couts d'investissement/réalisation/tests/maintenance/possession
    • CCV=Cout du Cycle de Vie CCV > TCO. = sommes de tous les couts d'un projet
    • Couts récurrents
  • planification d'un projet (cycle de vie): planifier moyen de communication, de contrôle, de prise de décision
    • estimer les taches et leur durée
    • ordonnancer les taches → pert
    • chemin critique
    • chemin le + court et le + long
    • prevoir les risques
    • estimer les charges
    • élaborer la matrice de responsabilités
    • Work Breakdown Structure=WBS des taches
    • Garder une marge secrete de 30% (effet gaz)
  • méthodes d'évaluation d'un projet
    • évaluation externe
      • fiable
      • conforme au cahier des charges
      • sécurité
      • évolutif
      • UX / convivial
      • efficace
      • compatible
    • interne
      • modulaire
      • réutilisable
      • testable
      • lisible
      • portable
    • CQFD = Cout Qualité Fonctionnalité Délai
  • Projet informatique
    • Ensemble d’actions mises en œuvre, afin de produire les résultats et fournitures définies en réponse aux objectifs clairement définis
    • dans des délais fixés (date début et date de fin)
    • mobilisant des ressources humaines et matérielles
    • possédant un coût prévisionnel et des gains espérés
  • architecture technique (architecte): description générale du système schématique et des interactions
  • architecture applicative : design patterns, architecture client-serveur, n-tiers, SOA
    • L'architecture orientée services ambitionne d'aider les développeurs à gérer l'hétérogénéité

des "milieux applicatifs" : l'objectif est d'autoriser les applications ou service à communiquer et de travail ensemble, quel que soit leur plate-forme respective.

  • Un service qui n'est rien d'autre qu'un composant dont les interfaces et contrats d'utilisation sont

connus, et qui est indépendant de tout système. Pour ce faire, XML est utilisé dans lors des échange d'informations, enrobé le plus souvent d'une enveloppe SOAP.

  • MDA (Model Driven Architecture): architecture basée sur les modèles
    • séparer les contraintes fonctionnelles et les contraintes techniques
  • cahier des charges: ??
  • base de donnée relationnelle: Une base de données permet de stocker et de retrouver un ensemble d'informations de plusieurs natures ainsi que les liens qui existent entre les différentes informations.
  • SGBD: est un logiciel système destiné à stocker et à partager des informations dans une base de données, en garantissant la qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des opérations
  • transaction, contraintes d'intégrités, structuration de la donnée, multi utilisateurs, sécurité, intégrité, cohérence
  • relationnelle, hiérarchique, objet
  • distribué/centralisé
  • moteur de bd (manipule les données/transactions/verifie les droits), catalogue, processeur de requete (sql),
  • CRUD (create, read, update et delete)
  • 3 vues des données: utilisateur/conceptuel et physique
  • Outils de tests: jenkins, selenium (saisie firefox), mercury
  • tests unitaires, tests de non regressions, tests d'acceptance, tests fonctionnels, tests de charges (loadrunner), tests d'interfaces, tests de vulnérabilité/robustesse
  • junit @test @before assert, cppunit
  • interfaces hommes/machines: moyen d'interagir (tactile, souris, clavier), fenetres,icones,… modéle MVC, localisation, configurable, toolkit Qt, apprentissage, cut and paste, drag and drop, limites humaines de perception (couleur, son, …), guide de style, ergonome
  • plan de reprise d'activité (en anglais Disaster Recovery Plan ou DRP) permet d'assurer, en cas de crise majeure ou importante d'un centre informatique, la reconstruction de son infrastructure et la remise en route des applications supportant l'activité d'une organisation.
  • 2 sites proches et un site éloigné
  • une durée maximale d'interruption admissible (Recovery Time Objective, RTO)
  • une perte de données maximale admissible (Recovery Point Objective, RPO)
  • progiciel = logiciel applicatif répondant a des besoins ordinaires (pas de spécifique)
M:/SanDiegoWWW/www/dokuwiki/data/pages/san.conception.txt · Dernière modification: 2014/01/27 16:49 par admin
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki