Qualif case study



Resources
Cahier des charges

Le service des achats de la QUALIF, petite PME, souhaite étudier les informations relatives à la qualification des fournisseurs. Pour ce faire, cette entreprise établit une liste d’informations pertinentes : l’adresse postale d’un fournisseur, la capacité de production d’un produit fabriqué et vendu par un fournisseur, le code d’un produit fabriqué et vendu par un fournisseur (identifiant d’un produit fabriqué et vendu par un fournisseur), la date de qualification d’un fournisseur par un service d’étude, le domaine d’activité d’un service d’étude, le nom commercial d’un produit fabriqué et vendu par un fournisseur, le nom du responsable d’un service d’étude, le nombre de salariés d’un fournisseur, le numéro de qualification d’un fournisseur par un service d’étude, le numéro de SIRET d’un fournisseur (identifiant d’un fournisseur), l'e-mail de contact d’un fournisseur, le numéro d’un service d’étude (identifiant d’un service d’étude), le pourcentage de participation d’un fournisseur chez un autre fournisseur, le prix d’achat HT d’un produit acheté, déterminé par un service d’étude, le prix de vente HT d’un produit fixé par un fournisseur, la quantité prévisionnelle d’achat d’un produit acheté, déterminée par un service d’étude, le code d’un produit acheté, déterminé par un service d’étude (identifiant d’un produit acheté par un service d’étude), le résultat avant impôt d’un fournisseur sur les trois dernières années, le résultat après impôt d’un fournisseur sur les trois dernières années et l’unité de mesure d’un produit acheté, déterminée par un service d’étude.

Règles de gestion décrivant la technique de qualification

Conception schéma de type XSD

Le processus d'analyse/conception ci-dessous, sujet à des contraintes (pas d'espace dans les noms, pas de possibilité d'utiliser les classes association…), permet de générer un schéma de type XSD à partir d'un diagramme de classes UML.

Diagramme de classes UML

Schema Composer (Enterprise Architect)

Génération XSD
<?xml  version='1.0' encoding='windows-1252' ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="Qualif" targetNamespace="Qualif" elementFormDefault="unqualified" attributeFormDefault="unqualified">
    <xs:complexType name="Fournisseur">
        <xs:sequence>
            <xs:element name="adresse_postale" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="e-mail_de_contact" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="nombre_de_salariés" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="numéro_de_SIRET" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="résultat_après_impôt_N" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="résultat_après_impôt_N-1" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="résultat_après_impôt_N-2" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="résultat_avant_impôt_N" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="résultat_avant_impôt_N-1" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="résultat_avant_impôt_N-2" minOccurs="1" maxOccurs="1" type="xs:integer"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Participation">
        <xs:sequence>
            <xs:element name="pourcentage" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="filiale" minOccurs="1" maxOccurs="1" type="Fournisseur"/>
            <xs:element name="maison_mère" minOccurs="1" maxOccurs="1" type="Fournisseur"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Produit_acheté">
        <xs:sequence>
            <xs:element name="code" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="prix_d_achat_HT" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="quantité_prévisionnelle_d_achat" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="unité_de_mesure" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="Produit_fabriqué" minOccurs="1" maxOccurs="1" type="Produit_fabriqué"/>
            <xs:element name="Qualification" minOccurs="1" maxOccurs="1" type="Qualification"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Produit_fabriqué">
        <xs:sequence>
            <xs:element name="capacité_de_production" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="code" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="nom_commercial" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="prix_de_vente_HT" minOccurs="1" maxOccurs="1" type="xs:integer"/>
            <xs:element name="Fournisseur" minOccurs="1" maxOccurs="1" type="Fournisseur"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Qualification">
        <xs:sequence>
            <xs:element name="date" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="numéro" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="Fournisseur" minOccurs="1" maxOccurs="1" type="Fournisseur"/>
            <xs:element name="Service_étude" minOccurs="1" maxOccurs="1" type="Service_étude"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Service_étude">
        <xs:sequence>
            <xs:element name="domaine_d_activité" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="nom_du_responsable" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="numéro" minOccurs="1" maxOccurs="1" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
Importation XSD générée

Extension XSD à partir des types générés