Depuis de nombreuses années, Pentalog accompagne ses clients dans la phase de conception de leurs produits. Nos consultants, analystes, directeurs de projets et chefs de projet s'impliquent dans la compréhension des métiers et logiques de marché de nos clients, ce qui nous permet de leur proposer une architecture adaptée à leurs exigences. La valeur ajoutée produite est ainsi plus forte sur toute la durée de notre collaboration.
NosPrestations
Exigences : assister les équipes de nos clients dans la définition et la rédaction des besoins. Nous accompagnons nos clients dans la conception de leurs produits en les aidant à rédiger les exigences relatives à leurs produits, en confrontant leurs idées pour en faire ressortir l'innovation.
Architecture : proposer des architectures matérielles et logicielles pour un module ou la totalité du produit de nos clients.
Exigences
Les exigences sont la traduction claire des besoins nouveaux ou d'amélioration. Ils nécessitent une bonne compréhension de ce que souhaitent les demandeurs. En fonction de leurs expériences, nos collaborateurs sont à même d'interroger les équipes de nos clients pour bien comprendre les besoins et ainsi rédiger les exigences concernant le produit.
Ci-dessous, voici une liste non-exhaustive des exigences sur lesquelles nous sommes déjà intervenues :
Exigences fonctionnelles
Traduit en cas d'utilisation
Exigences logicielle non fonctionnelles
Contraintes de temps réel
Exécution synchrone/asynchrone
Contraintes de performances
Sécurité/rentabilité
Contraintes de ressources (énergie, CPU, mémoire, ...)
contraintes d'IHM
Exigences d'architecture
Contraintes logicielle / Contraintes Hardware
Système distribué / système analogique, mécanique, réseau
Exigences physiques
Consommation électrique
Sécurité/rentabilité
Taille et poids
Protection et robustesse
Exigence du cycle de vie
Certifications
Exigences de maintenance
Exigences de ligne de production
Exigences Business ou industrielle
Robustesse / Coûts
Design / Couts de production
Temps de production
Architecture
Nos équipes accompagnent nos clients dans la définition de l'architecture des modules composant le produit. Nos ingénieurs connaissent bien les contraintes industrielles : ils doivent souvent choisir les composants/modules à implémenter qui sont "juste bon/suffisant" pour couvrir les fonctions nécessaires, réduisant les coûts au maximum tout en respectant les exigences décrites.
Voici quelques exemples d'architectures logicielles que nous pouvons mettre en oeuvre :
Boucle de régulation simple
Le logiciel a une boucle simple.
La boucle appelle des sous-programmes, dont chacun gère une partie matérielle ou logicielle.
Système contrôlé par les interruptions
Les tâches effectuées par le système sont générées par différents types d'événements.
Une interruption pourrait être générée, par exemple, par un temporisateur à une fréquence prédéfinie ou par un contrôleur de port série qui reçoit un octet.
Le système est utilisé quand les programmes de traitement d'événements nécessitent un temps d'attente réduit et les programmes de traitement d'événements sont courts et simples.
Normalement, ces types de systèmes exécutent une tâche simple dans une boucle principale, mais, en utilisant un planificateur de tâches complexe, cette méthode rapproche le système d'un noyau multitâche avec des processus discrets.
Mode multitâche coopératif (multitâche non préemptif)
Il est très similaire à la boucle de régulation simple, à part le fait que la boucle soit cachée dans une interface de programmation.
Le programmeur définit une série de tâches. Chacune a son propre environnement dans lequel elle peut "fonctionner". Lorsqu'une tâche est inactive, elle appelle un sous-programme inactif.
Les avantages et inconvénients sont très similaires à la boucle de régulation, sauf qu'il est plus simple d'ajouter un nouveau logiciel en écrivant une nouvelle tâche ou en faisant des ajouts à l'interpréteur de la file d'attente.
Mode multitâche préemptif ou multifil
Un morceau de code bas niveau change de tâche ou de fil sur la base d'un temporisateur (connecté à une interruption, on considère généralement qu'il a un noyau «système d'exploitation»).
Il introduit plus ou moins de complexité liée à la gestion des tâches multiples qui fonctionnent de manière conceptuelle en parallèle.
L'accès aux données partagées doit être contrôlé par une stratégie de synchronisation, comme les listes des messages en attente, les sémaphores ou un système de synchronisation non bloquant.
Les sociétés utilisent en général un système d'exploitation temps réel (RTOS), ce qui permet aux programmeurs de logiciels de se concentrer sur la fonctionnalité du dispositif plutôt que sur les services du système d'exploitation, au moins pour les grands systèmes.
Micro-noyaux et exo-noyaux
Un micro-noyau est une évolution logique depuis un système d'exploitation temps réel. D'habitude, le noyau du système d'exploitation alloue de la mémoire et change l'unité centrale en différents fils d'exécution. Les processus en mode utilisateur implémentent des fonctions importantes comme les systèmes de fichiers, interfaces réseau etc.
En général, les micro-noyaux réussissent lorsque le changement de tâches et la communication entre tâches est rapide et échouent lorsqu'ils sont lents.
Les exo-noyaux communiquent efficacement par des appels normaux aux sous-programmes. Les équipements matériels et toute la partie logicielle du système sont disponibles et extensibles par les programmeurs d'applications.
Noyaux monolithiques
Un noyau relativement grand avec des capacités sophistiquées est adapté à l'environnement embarqué (par ex.: Embedded Linux et Windows CE).
Par conséquent, il est très productif pour le développement; par contre, il a besoin de ressources matérielles beaucoup plus importantes, il est souvent plus cher et, à cause de la complexité de ces noyaux, il peut être moins prévisible et fiable.
Des ports vers les jeux de puces embarquées sont disponibles.
Ils permettent de réutiliser le code disponible publiquement pour les pilotes d'unités, serveurs Web, barrières de sécurité etc.
Les systèmes de développement peuvent commencer par des séries larges de fonctionnalités. La distribution peut être paramétrée pour exclure les fonctionnalités inutiles afin d'économiser sur la mémoire.
Beaucoup d'ingénieurs considèrent que l'exécution du code d'application en mode utilisateur est plus fiable, plus facile à déboguer et, par conséquent, le processus de développement est plus facile et le code plus facilement portable.
Les caractéristiques qui nécessitent une réponse plus rapide que celle qu'on peut garantir peuvent souvent être ajoutées aux équipements matériels.
Une petite partie des systèmes embarqués nécessite un comportement sans danger, opportun, fiable et efficace qui ne peut pas être obtenu avec l'une des architectures ci-dessus.
Dans ce cas, une organisation construit un système convenable. Dans certains cas, le système peut être partitionné en "contrôleur de mécanisme" à l'aide de techniques spéciales et en "contrôleur d'affichage" avec un système d'exploitation conventionnel. Un système de communication passe les données entre les deux.
Composants logiciels additionnels
Beaucoup de systèmes embarqués ont des composants logiciels de couche supérieure additionnels.
Ces composants se composent de :
Piles de protocoles réseaux comme CAN, TCP/IP, FTP, HTTP et HTTPS
Capacités de stockage incluses comme FAT et systèmes de gestion de mémoire flash
Si les dispositifs embarqués ont des capacités audio et vidéo, alors les pilotes et codecs adéquats seront présents dans le système.
Pour les noyaux monolithiques, beaucoup de ces couches logicielles sont incluses. Dans la catégorie RTOS, la disponibilité des composants logiciels additionnels dépend de l'offre commerciale.
DomainesConcernés
Energie / Domotique : acquérir l'idée et la transformer en exigences fonctionnelles, et proposer l'architecture la plus adaptée pour y répondre.
Industrie : analyser les exigences fonctionnelles fournies par notre client pour produire une architecture et la développer.
Telecoms : analyser les demandes d'évolution pour définir une architecture et la mettre en oeuvre.
Posted on Th 2, 21 thg 5 2012 13:55 by Alina RAFOI (0 days old)
IT offshore press review week 21/20
Cloud
The main subject was Facebook IPO trading, so we begin this IT offshore press review with this article:
- Reports: Nasdaq Admits Technical Bugs Affected Facebook IPO Trading (May 20, 2012, CIO)
- Offshore Suppliers: Beware of Hidden Costs (May 21, 20...
asimon 21/02/2012 adaugare suport feed pentablog.RO + traduceri texte asimon 06/10/2010 adaugare nofollow la linkurile externe asimon 06/10/2010 refresh surse de pe prod (pe svn nu erau ultimele) mseifar 13/05/2010 adaugare noul design in xsl