Formal specificationIn computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software. They are used to describe a system, to analyze its behavior, and to aid in its design by verifying key properties of interest through rigorous and effective reasoning tools. These specifications are formal in the sense that they have a syntax, their semantics fall within one domain, and they are able to be used to infer useful information.
Reconfigurable computingReconfigurable computing is a computer architecture combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like field-programmable gate arrays (FPGAs). The principal difference when compared to using ordinary microprocessors is the ability to make substantial changes to the datapath itself in addition to the control flow. On the other hand, the main difference from custom hardware, i.e.
Vérification formelleIn the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal verification can be helpful in proving the correctness of systems such as: cryptographic protocols, combinational circuits, digital circuits with internal memory, and software expressed as source code.
Runtime verificationRuntime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties. Some very particular properties, such as datarace and deadlock freedom, are typically desired to be satisfied by all systems and may be best implemented algorithmically. Other properties can be more conveniently captured as formal specifications.
RaffinementEn informatique, le raffinement consiste à détailler la conception pour arriver par itérations à l'implémentation finale. À chaque itération correspond un niveau de granularité de plus en plus fin. Quand cette technique est appliquée au code source, la conception est alors matérialisée par du pseudo-code. Cette technique peut aussi être appliquée au modèle de données.
Interprétation abstraiteL'interprétation abstraite est une théorie d'approximation de la sémantique de programmes informatiques fondée sur les fonctions monotones pour ensembles ordonnés, en particulier les treillis (en anglais : lattice). Elle peut être définie comme une exécution partielle d'un programme pour obtenir des informations sur sa sémantique (par exemple, sa structure de contrôle, son flot de données) sans avoir à en faire le traitement complet.
High-level synthesisHigh-level synthesis (HLS), sometimes referred to as C synthesis, electronic system-level (ESL) synthesis, algorithmic synthesis, or behavioral synthesis, is an automated design process that takes an abstract behavioral specification of a digital system and finds a register-transfer level structure that realizes the given behavior. Synthesis begins with a high-level specification of the problem, where behavior is generally decoupled from low-level circuit mechanics such as clock-level timing.
Vérification de modèlesthumb|308x308px|Principe du model checking. En informatique, la vérification de modèles, ou model checking en anglais, est le problème suivant : vérifier si le modèle d'un système (souvent informatique ou électronique) satisfait une propriété. Par exemple, on souhaite vérifier qu'un programme ne se bloque pas, qu'une variable n'est jamais nulle, etc. Généralement, la propriété est écrite dans un langage, souvent en logique temporelle. La vérification est généralement faite de manière automatique.
Méthode formelle (informatique)En informatique, les méthodes formelles sont des techniques permettant de raisonner rigoureusement, à l'aide de logique mathématique, sur un programme informatique ou du matériel électronique numérique, afin de démontrer leur validité par rapport à une certaine spécification. Elles reposent sur les sémantiques des programmes, c'est-à-dire sur des descriptions mathématiques formelles du sens d'un programme donné par son code source (ou, parfois, son code objet).
AutoCADAutoCAD est un logiciel de dessin assisté par ordinateur (DAO) créé en décembre 1982 par Autodesk. En 1992, AutoCAD est développé pour Mac OS et pour Windows en 1994. Bien qu'il ait été développé à l'origine pour les ingénieurs en mécanique, il est aujourd'hui utilisé par de nombreux corps de métiers. Il est actuellement, selon Forbes, le logiciel de DAO le plus répandu dans le monde. C'est un logiciel de dessin technique pluridisciplinaire : industrie ; système d'information géographique, cartographie et topographie ; électronique ; électrotechnique (schémas de câblage) ; architecture et urbanisme ; mécanique.
Abstraction (informatique)En informatique, le concept d'abstraction identifie et regroupe des caractéristiques et traitements communs applicables à des entités ou concepts variés ; une représentation abstraite commune de tels objets permet d'en simplifier et d'en unifier la manipulation. thumb|upright=1.4|Différentes couches de logiciel, partant d'en bas, le matériel est programmé en langage binaire, via un firmware, qui permet une abstraction pour le noyau, puis lui même pour le système d'exploitation, qui a son tour permet une abstraction pour les applications.
BRL-CADBRL-CAD est un logiciel libre de conception assistée par ordinateur initialement développé par l'armée américaine. Il est actuellement distribué sous licence GPL et fonctionne sous UNIX/Linux, macOS et Windows. BRL-CAD participe au Google Summer of Code, avec OpenSCAD, LibreCAD, FreeCAD (les quatre étant des logiciels de CAO libres) et Slic3r (pour la FAO). Ces événements permettent un effort combiné et se déroulent au sein de l'organisation parapluie de BRL-CAD. FreeCAD Open CASCADE Technology SolidWorks s
Conception assistée par ordinateurvignette La conception assistée par ordinateur ou CAO (en anglais, computer aided design ou CAD) comprend l'ensemble des logiciels et des techniques de modélisation géométrique permettant de concevoir, de tester virtuellement – à l'aide d'un ordinateur et des techniques de simulation numérique – et de réaliser des produits manufacturés et les outils pour les fabriquer. Le grand public confond souvent CAO et DAO (dessin assisté par ordinateur) : la CAO n'a pas pour fonction première l'édition du dessin.
Transaction-level modelingTransaction-level modeling (TLM) is an approach to modelling complex digital systems by using electronic design automation software. TLM language (TLML) is a hardware description language, usually, written in C++ and based on SystemC library. TLMLs are used for modelling where details of communication among modules are separated from the details of the implementation of functional units or of the communication architecture. It's used for modelling of systems that involve complex data communication mechanisms.
Architecture de donnéesUne architecture de données en Informatique est composée de modèles, de règles ou de standards qui désignent quelles données sont collectées et comment elles sont stockées, triées, intégrées et utilisées dans des systèmes de données. En d’autres termes, elle décrit la structure de données utilisée par une organisation et / ou des applications et inclut les descriptions des données stockées. Elle fournit les critères pour les opérations de traitement des différents types de données et contrôle donc celles qui circulent dans le système.
Field-programmable gate arrayA field-programmable gate array (FPGA) is an integrated circuit designed to be configured after manufacturing. The FPGA configuration is generally specified using a hardware description language (HDL), similar to that used for an application-specific integrated circuit (ASIC). Circuit diagrams were previously used to specify the configuration, but this is increasingly rare due to the advent of electronic design automation tools. FPGAs contain an array of programmable logic blocks, and a hierarchy of reconfigurable interconnects allowing blocks to be wired together.
Calcul hétérogèneHeterogeneous computing refers to systems that use more than one kind of processor or core. These systems gain performance or energy efficiency not just by adding the same type of processors, but by adding dissimilar coprocessors, usually incorporating specialized processing capabilities to handle particular tasks. Usually heterogeneity in the context of computing referred to different instruction-set architectures (ISA), where the main processor has one and other processors have another - usually a very different - architecture (maybe more than one), not just a different microarchitecture (floating point number processing is a special case of this - not usually referred to as heterogeneous).
IntelliCADIntelliCAD is a CAD editor and development platform with an Application Programming Interface API published by the IntelliCAD Technology Consortium ("ITC") through shared development. IntelliCAD emulates the basic interface and functions of AutoCAD, however, it is particularly able to incorporate and interchange freely between a wide variety of file types (i.e. dwg., BIM, TIFF, etc.).
Architecture d'entrepriseL'architecture d'entreprise est une école visant à représenter de manière systémique l'entreprise, sous forme de composants. Ainsi le découpage en composants permet à l'entreprise de faciliter les assemblages. Les méthodes d'architecture visent à mettre en place des principes ainsi qu'un cadre d'architecture dit "de référence". C'est une démarche visant à aligner avec la stratégie d'entreprise l'ensemble des couches de l'entreprise,(Métier, fonctionnelle, applicative, technique, ...).