STEP/EXPRESS - Objektově orientovaný ISO standard pro



Podobné dokumenty
SEZNÁMENÍ SE STANDARDEM STEP A JEHO OBJEKTOVĚ ORIENTOVANÝM JAZYKEM EXPRESS

UML - Unified Modeling Language

Pokročilé Webové služby a Caché security. Š. Havlíček

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Webové služby. Martin Sochor

Databázové systémy trocha teorie

Teoretické minimum z PJV

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin

Projekty pro výuku programování v jazyce Java

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Vysoká Škola Ekonomická - Fakulta informatiky a statistiky. 4IT450 CASE Computer aided systems engineering

3D Vizualizace muzea vojenské výzbroje

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

2. Konceptuální model dat, E-R konceptuální model

Microsoft Office 2003 Souhrnný technický dokument white paper

Konceptuální datové modely používané při analýze

CASE nástroje. Jaroslav Žáček

Česká zemědělská univerzita v Praze. Provozně ekonomická fakulta. Katedra informačních technologií

UML. Unified Modeling Language. Součásti UML

4IT218 Databáze. 4IT218 Databáze

Požadavky pro výběrová řízení TerraBus ESB/G2x

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Architektura aplikace

Přehled mezinárodních norem (ISO) Označení mezinárodní normy Názvy mezinárodních norem Rok vydání

EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě.

Problém identity instancí asociačních tříd

Programování v Javě I. Únor 2009

2 Axiomatic Definition of Object 2. 3 UML Unified Modelling Language Classes in UML Tools for System Design in UML 5

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Programování v Javě I. Leden 2008

Budování architektury pomocí IAA

Project Life-Cycle Data Management

Metody inventarizace a hodnocení biodiverzity stromové složky

TRANSFORMACE RELAČNÍHO DATOVÉHO MODELU NA OBJEKTOVÝ TRANSFORMATION OF RELATIONAL TO OBJECT DATA MODEL

NÁVRH A REALIZACE WWW PREZENTACE ČKR

Kolaborativní aplikace

DPKOM_06 Dědičnost entit a zpětná volání posluchači

Tieto přináší nové příležitosti v IT.

POPIS STANDARDU CEN TC278/WG1. Oblast: ELEKTRONICKÉ VYBÍRÁNÍ POPLATKŮ (EFC) Zkrácený název: ZKUŠEBNÍ POSTUPY 2. Norma číslo:

CASE. Jaroslav Žáček

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky

12. Postrelační databázové systémy

ČVUT FAKULTA ELEKTROTECHNICKÁ, TECHNICKÁ 2, PRAHA, ČESKÁ REPUBLIKA. Semestrální projekt. Systém speech2text (pracovní název)

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich

12. Postrelační databázové systémy

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

7.3 Diagramy tříd - základy

Převod prostorových dat katastru nemovitostí do formátu shapefile

Vladimír

Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

7.5 Diagram tříd pokročilé techniky

Komputerizace problémových domén

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Moderní metodiky a technologie ve výuce softwarového inženýrství

Výzvy využívání otevřených dat v ČR

WebML Objektově orientovaná metodika pro tvorbu webových sídel

POPIS STANDARDU CEN TC278/WG7. 1 z 5. draft prenv Geografická silniční databáze. Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD)

EXTRAKT z české technické normy

PREPROCESOR POKRAČOVÁNÍ

Michal Podzimek

4IT218 Databáze. 4IT218 Databáze

RELAČNÍ DATABÁZOVÉ SYSTÉMY

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Uspořádání klient-server. Standardy pro Web

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

2 UML-BASED WEB ENGINEERING (UWE)

EXTRAKT z mezinárodní normy

PB161 Základy OOP. Tomáš Brukner

20. Projekt Domácí mediotéka

Metodika. Architecture First. Rudolf Pecinovský

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

7.5 Diagram tříd pokročilé techniky

Sem vložte zadání Vaší práce.

Datové schránky Software602, a.s. Vytvořeno dne: Aktualizováno: Verze: 2.0 Klasifikace: Veřejný dokument

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Introduction to Navision 4.00 Jaromír Skorkovský, MS., PhD.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Databáze I. Přednáška 7

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby

Správa a sledování SOA systémů v Oracle SOA Suite

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Elektronická pošta... 3 Historie... 3 Technické principy... 3 Komunikační protokoly... 3 MBOX... 4 Maildir... 4 Jak funguje POP3...

SAML a XACML jako nová cesta pro Identity management. SAML and XACML as a New Way of Identity Management

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

1. Dědičnost a polymorfismus

Programování v jazyku C# II. 9.kapitola

SPRÁVA ZÁKLADNÍCH REGISTRŮ PODMÍNKY PRO PŘIPOJENÍ AGENDOVÝCH INFORMAČNÍCH SYSTÉMŮ DO ISZR. verze 2.00

Funkční analýza Předmět Informační systémy. Daniela Szturcová

MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY

Maturitní otázka webové stránky (technologie tvorby webu) Co znamená pojem Web? Web, www stránky, celým názvem World Wide Web,

ČESKÁ TECHNICKÁ NORMA

KIV/PIA 2013 Jan Tichava

Transkript:

STEP/EXPRESS - Objektově orientovaný ISO standard pro výměnu výrobních dat a ještě o kousek víc! Ing. Martin Molhanec, CSc. Katedra elektrotechnologie Elektrotechnická fakulta České vysoké učení technické v Praze Technická 2, 166 27 PRAHA 6, Dejvice Česká Republika Tel.: (++420) 2 2435 2118, Fax: (++420) 2 2435 3949 E-mail:molhanec@fel.cvut.cz WWW:{http://k313.feld.cvut.cz, http://martin.feld.cvut.cz/~mmm} Abstract STEP je ISO 10303 standard pro výměnu výrobních dat. Jeho základem je objektově orientovaný jazyk EXPRESS. Pomocí standardu STEP/EXPRESS je možné popsat vlastnosti libovolného průmyslového výrobku ve formátu vhodném pro jeho elektronickou výměnu nebo archivaci. Cíl mého příspěvku je poskytnout váženému čtenáři základní informace o tomto standardu. 1. ÚVOD Proboha co to je? Proč chce někdo na konferenci o objektech vykládat o nějakém standardu pro výměnu výrobních dat! Co to má společného s programováním a objekty? Takové otázky si určitě mnozí z Vás, vážení čtenáři a posluchači mého příspěvku, zajisté položí. Ale ano, velice mnoho. Díky skutečnosti, že přestože duší objektový informatik, tak moje působnost je na katedře elektrotechnologie ČVUT-FEL v Praze. Jak jistě předpokládáte, katedra na které působím se zabývá výrobou. A díky této skutečnosti jsem se dostal k referenci na tento zajímavý standard, který je nejen významným krokem v oblasti průmyslu výroby, ale snad nejdokonalejším objektově orientovaným jazykem pro popis reálného světa kolem nás, se kterým jsem se zatím setkal. Že přeháním? Ale vůbec ne. Existuje mnoho konceptuálních modelů, ať již ER (Entity-Relationship) nebo OO (Object-Oriented), které definují svoji grafickou reprezentaci, ale žádný z nich nedefinuje svoji přesnou textovou reprezentaci. A pokud ano žádný není ISO standardem. Ale pokud se mýlím, tak se rád poučím. V současné době snad nejdál v přesnosti vyjadřování došel jazyk UML. Co mne navíc udivilo, je pak skutečnost, že STEP/EXPRESS definuje věci, o kterých se v objektovém světe sice mluví, ale většina modelů pro tyto skutečnosti nemá zatím své vyjadřovací prostředky. Je zajímavé, že svět STEP žije svým vlastním životem. Přestože se jedná z jedné strany o vysoce informatickou záležitost nesetkal jsem se s odkazem na tento standard zatím na žádné informatické konferenci, které jsem se zúčastnil. Nevím, jak je to na straně druhé, podle mých informací je standard STEP objektem zájmu zejména výrobních inženýrů, nicméně v oblasti působení mé domovské katedry o něm nikdo nic neví. Vzhledem k tomu, že se jedná o standard z informatického hlediska velice zajímavý, pokusím se o jeho stručný popis ve svém příspěvku.

2. STEP Standard STEP, jak bylo předesláno, je ISO standard (ISO 10303) pro výměnu výrobních dat. Popisuje tedy strukturu, formát, prezentaci a způsob výměny těchto dat. Jeho využití je během celého životního cyklu výrobku. To znamená od jeho analýzy, návrhu, výroby až po řízení kvality a testování výrobku. Standard STEP podporuje mnoho vlastností výrobků, jako jeho geometrii, topologii, vztahy mezi díly, atributy (vlastnosti), sestavování (montáž) a také konfigurační řízení výrobků. Důležitou vlastností standardu STEP je jeho rozšiřitelnost, ta umožňuje STEP rozšiřovat do nových oblastí použití a obohacovat jeho vlastnosti o nové možnosti, tak jak se objevují ve světě okolo nás, příkladem budiž například vznik standardu pro využití jazyka Java nebo XML. Proč je standard STEP tak důležitý? Existuje pro to několik dobrých důvodů. Je to standard ve vývoji. Je postaven na objektově orientovaném jazyku EXPRESS a může být použit v libovolné oblasti průmyslu. Standard, který se neustále vyvíjí, nemůže být nikdy zastaralý. Základem STEP standardu je popisný objektově orientovaný jazyk, pomocí kterého je možné popsat strukturu libovolného inženýrského produktu. Tento speciální jazyk se nazývá EXPRESS. Aplikační protokoly potom definují formální model pro určitou oblast použití. Aplikační protokoly jsou dostupné pro mechanické a elektrotechnické aplikace, kompozitní materiály, automatizovaný návrh a výrobu, stavitelství lodí, letecký průmysl a mnohé další oblasti. V průběhu času velká většina průmyslových oborů definuje své vlastní aplikační protokoly. obr. 1 - Struktura standardu STEP Obrázek {obr. 1} zobrazuje strukturu STEP standardu. Je patrné, že se skládá z mnoha částí. Je také velice obsáhlý. Dokumentace tohoto standardu obsahuje doslova stovky stran. Některé z těchto částí již byly dokončeny a jsou publikovány, jiné jsou ve fázi vývoje. Pokusím se nyní strukturu STEP standardu stručně popsat. Standard se skládá z jednotlivých částí, které mají své číselné označení. Nicméně vždy několik částí se sdružuje do většího bloku. Hlavní bloky standardu jsou následující:

Části 11 až 19 standardu specifikují tzv. Description Methods, Části 21 až 29 specifikují tzv. Implementation Methods, Části 31 až 39 specifikují tzv. Conformance Testing, Části 41 až 99 specifikují tzv. General Resources, Části 101 až 199 specifikují tzv. Application Resource Models, Části 201 až 299 specifikují tzv. Application Protocols, Části 301 až 399 specifikují tzv. Abstract Test Suites, Části 501 až 599 specifikují tzv. Application Interpreted Constructs. Description Methods První blok STEP standardu se nazývá Description Methods (části 11 až 19), česky snad můžeme přeložit jako popisné metody, a části v něm popsané jsou základem STEP standardu. Jedná se o metody, které slouží k popisu výrobku na abstraktní (konceptuální) úrovni. Nejdůležitější z částí tohoto bloku je definice EXPRESS jazyka (ISO 10303-11). EXPRESS jazyk je objektově orientovaný člověku srozumitelný modelovací jazyk s grafickou reprezentací. Jeho podrobnější popis je obsahem kapitoly 3 tohoto příspěvku. Existence EXPRESS jazyka a jeho objektová konceptuální vyjadřovací schopnost byla hlavní důvodem pro napsání tohoto příspěvku. Implementation Methods Druhý blok STEP standardu má název Implementation Methods (části 21 až 29). Implementační metody popisují mapovaní mezi formální specifikací vyjádřenou prostředky bloku 1 (Description Methods) a reprezentací použitou pro implementaci standardu STEP. Jinými slovy, implementační metody specifikují, jak data vyjádřená jazykem EXPRESS ukládat, číst, modifikovat a přenášet. Na tomto bloku je zajímavé pozorovat, jak nové programátorské nástroje se stávají novými částmi tohoto bloku (například Java po jazyku C++, XML po jazyku Java, atd.). V současné době existují tyto zpracované implementační metody: 21 (STEP file format) popis dat prostým textovým souborem 22 (Abstract STEP Data Access Interface SDAI) popis rozhraní pro jazyk C++ 27 (Java language-based SDAI) popis rozhraní pro jazyk Java 28 (STEP data in XML) popis dat souborem ve formátu XML (tato část je ve vývoji) Application Protocols Blok s názvem Application Protocols (česky aplikační protokoly) obsahuje části, které definují schémata výrobků v určité oblasti průmyslu. Co to vlastně znamená? Ve standardu STEP jsou závazně a přesně definována schémata vhodná pro tu či onu oblast průmyslu! Jestliže je mým cílem popsat integrovaný obvod, nemusím vymýšlet jeho schéma (mám na mysli pochopitelně schéma konceptuální nikoliv elektrické), leč použiji schéma obsažené v daném aplikačním protokolu. Zanedlouho bude aplikačními protokoly popsán celý dostupný průmysl a poté celý svět a nakonec i vesmír. Doufám, že vážený čtenář pochopil, jaký důležitý význam má standard STEP pro naší existenci!

Oblast použití daného aplikačního protokolu může být omezena, například: typem vyráběného produktu, částí životního cyklu produktu, užitím daného produktu a dalšími kriterii. Uvedu některé příklady aplikačních protokolů z oblasti elektrotechnologie: AP203: Configuration controlled design AP210: Electronic assembly, interconnect and packaging design AP212: Electrotechnical design and installation 3. EXPRESS Objektově orientovaný jazyk EXPRESS je snadno srozumitelný člověku a současně dobře zpracovatelný počítačem podobně, jako jiné podobné počítačové jazyky, například jazyk Pascal, C++, Java, atp. Avšak na rozdíl od těchto jazyků, které jsou nástroji pro programování aplikací, jazyk STEP slouží pro objektově orientovaný konceptuální popis výrobků. Ale stejně dobře může posloužit pro popis čehokoliv na světě, například rodokmenu britské královské rodiny, jak se tomu stalo v jednom výukovém textu jazyka EXPRESS, který jsem měl k dispozici. Standard ISO 1030-11 definuje všechny základní prvky jazyka. Struktura jazyka EXPRESS je velice podobná objektově orientovaným jazykům, zejména jazykům definujícím strukturu objektově orientované databáze. Datový model, který jazyk EXPRESS vyjadřuje, je podobný ERM (Entity-Relationship Model) nebo OOM (např. OMT - Object Modelling Technique). Ale to všechno bude nejlépe vidět na jednoduchých příkladech obsažených dále v textu. Jazyk EXPRESS je dále navržen tak, aby byl implementačně nezávislý. Jazyk EXPRESS má celou řadu specializovaných dialektů: EXPRESS-C Language with static and behavioural modelling capabilities EXPRESS-G Graphical language EXPRESS-I Instantiation language EXPRESS-M Mapping definition language EXPRESS-P Process definition language EXPRESS-V Extension of EXPRESS which enables the creation of views EXPRESS-X Merger of M and V Je patrné, že některé dialekty jazyka STEP se ubírají zajímavými směry. Jako trend současné doby je patrná snaha o popis nejen struktury výrobků, ale i o zachycení procesů, kterými tyto výrobky vznikají! Jazyk EXPRESS dovoluje definovat konceptuální schéma pomocí pravidel, předpisů, struktur, vztahů různého typu a dalších konstruktů (některé z nich jsou opravdu výjimečné) z nichž některé (ty základní i speciální) si nyní ukážeme.

Entities Entita jazyka EXPRESS je podobná entitě ER modelu nebo pojmu objekt (třída) v objektově orientovaných jazycích. Každá entita má název a množinu atributů a dalších prvků. Každý atribut má název a typ. Ukázka definice jednoduché entity následuje: ENTITY Entity name; a1: data_type; a2: data_type;... an: data_type; Například definice entity bod může být následující: ENTITY Point; x: REAL; y: REAL; Datový typ atributu může být jednoduchý (simple), složený (aggregate), definovaný (defined), výčtový (enumeration), entitní (entity) nebo výběrový (select). Jazyk EXPRESS podporuje také několik druhů dědičnosti (inheritance relationships). Následující příklad ukazuje ten nejjednodušší z nich: ENTITY Point3D SUBTYPE OF (Point); z : REAL; Výše uvedený příklad znamená, že entita Point3D bude mít tři atributy: x a y, které jsou zděděny z entity Point a atribut z, který je deklarován lokálně. Ukážeme si nyní trochu složitějšího užití jazyka EXPRESS: SCHEMA example; TYPE date = ARRAY [1:3] OF INTEGER; END_TYPE; FUNCTION years(d : date) : INTEGER; (* computes an age to the current date from d *) END_FUNCTION; TYPE hair_type = ENUMERATION OF (brown, black, blonde, redhead, gray, white, bald); END_TYPE;

ENTITY person; SUPERTYPE OF (ONEOF(male, female)); first_name : STRING; last_name : STRING; nickname : OPTIONAL STRING; birth_date : date; children : SET [0 :?] OF person; DERIVE age : INTEGER := years(birth_date); INVERSE parents : SET [0 : 2] OF person FOR children; ENTITY female; SUBTYPE OF (person); husband : OPTIONAL male; maiden_name : OPTIONAL STRING; WHERE WI : (exists(maiden_name) AND EXISTS(husband)) OR NOT EXISTS(maiden_name); ENTITY male; SUBTYPE OF (person); wife : OPTIONAL female; END_SCHEMA; Ve výše uvedeném příkladě jsme viděli použití následujících konstruktů: Uživatelský typ (pole prvků typu INTEGER) Definici funkce years Výčtový typ hair Definice entity person jako nadtypu entit male nebo female Typ množina set Odvozený typ age Inverzní typ parents Definice entity female a male jako podtypu entity person Deklarace volitelnosti optional Definice pravidla where Chce snad někdo tvrdit, že jazyk EXPRESS je chudý na výrazové prostředky! Určitě nikoliv!

4. TOOLS Vzhledem k tomu, jak je standard STEP rozsáhlý a komplexní, bylo by neúnosné, kdyby si každý uživatel tohoto standardu programoval všechny aplikace sám. Naštěstí existuje v současné době mnoho výrobců, kteří prodávají nástroje (programy) pro využití EXPRESS/STEP standardu. Některé produkty jsou zdarma (akademické nebo GPL produkty), jiné jsou striktně komerční. Pokusím se některé z nich stručně popsat. University of the Federal Armed Forces TOOL NAME WINSTEP (VERSION 3.0) Functionality STEP Toolkit for Windows Availability Free WinSTEP je STEP Toolkit určený pro operační systém Windows. Poslední verze je verze 3. Je postaven na knihovně tříd NIST (National Institute for Standards and Technology). WinSTEP je ve skutečnosti několik programů určených pro práci se standardem STEP (EXPRESS). LKSoftWare GmbH Tool Name Functionality Availability J-SDAI SDAI implementation in Java Free version for AP203 The JSDAI Core API je plná implementace standardu ISO 10303-27 pro přístup k datům STEP z jazyka Java s rozšířeními pro Internet/intranet. Jedná se komerční software. Ukázka aplikace vytvořené s využitím JSDAI Core je na obr. {Figure 2}, na konci tohoto příspěvku. National Institute for Standards and Technology Functionality Availability Toolkits Free NIST Expresso je prostředí pro vytváření nástrojů pro práci s jazykem EXPRESS. Program přetváří popis v jazyku EXPRESS do interní objektově orientované reprezentace. Data odpovídající aplikačním protokolům mohou býti načtena, modifikována, zobrazována a kontrolována. STEP Tools Inc Functionality Availability Toolkit Commercial STEP Tools Inc. je firma, která prodává celou řadu nástrojů a služeb v oblasti vývoje software pro CAD systémy, které uživateli umožňují vyvíjet vlastní STEP aplikace propojené s CAD systémy. Jedná se o komerční programové vybavení a služby.

STEP Toolkit for STEP developer and EzExpress Editor Funkcionality Avaibility Libraries and editor Free STEP Toolkit obsahuje programátorské knihovny a nástroje pro vývoj software, který umí pracovat se STEP/EXPRESS daty. STEP Toolkit je postaven na SCL knihovně NIST (National Institute for Standards and Technology). EzExpress Editor je editor jazyka EXPRESS s IDE (Integrated Development Environment). Ukázka tohoto editoru je na obr. {Figure 1}, na konci tohoto příspěvku. Jeho součástí je Embedded Express Compiler, který umí generovat SCL C++, CORBA+IDL a ObjectStore C++ programový kód. 5. XML AND STEP Ani standardu STEP se nevyhnul současný trend použití jazyka XML všude, kde je to možné (i nemožné?). XML (Extensible Markup Language) je značkovací jazyk pro strukturované texty snadno zpracovatelný počítačem a současně srozumitelný člověku. Jazyk XML se stal ISO standardem v roce 1998. XML je jazyk odvozený z jazyka SGML (Standard Generalized Markup Language), který byl navržen počátkem 80tých let a v roce 1986 přijat za ISO 8879 standard. XML je též podobný jazyku HTML (Hypertext Markup Language), který má stejného předka a je používán jako jazyk pro tvorbu webových stránek. XML standard je velice atraktivní nástroj (jazyk) pro vyjádření schémat v jazyce EXPRESS a to z mnoha důvodů, proto byl zahájen projekt SC4 (10303-0028: Implementation methods: XML representation of EXPRESS schemas and data). Implementace EXPRESS schémat pomocí XML má mnoho výhod, například: XML parsers jsou levné a snadno dosažitelné, často zcela zdarma jako projekty GPL. Internetové prohlížeče budou velice brzo schopné přímo pracovat s XML a budou obsahovat standardní API pro manipulaci s XML daty. XML je velmi dobře vybaveno pro výměnu dat přes internet či elektronickou poštou. XML také poskytuje pro člověka snadno čitelný výstup v mnoha formátech. Jak vypadá vyjádření STEP schématu v XML? Ukážeme si příklad. Předpokládejme například následující definici v jazyce EXPRESS: ENTITY point; x : REAL; y : REAL; Tato definice specifikuje bod se dvěma atributy, které určují jeho polohu X-Y rovině. Vyjádření v jazyce XML může být následující: <point id= e1 > <point.x id= a1 > <real /></point.x> <point.y id= a2 > <real /></point.y> </point>

6. A JEŠTĚ NĚCO NAVÍC Standard STEP vznikl za účelem předávání informací o jednotlivých výrobcích. Pokusím se pro větší názornost jeho použití pro tento účel přiblížit pomocí několika příkladů. Předpokládejme nyní, že potřebujeme předat informace o námi vyráběném materiálu. První věc, kterou musíme udělat, je ta, že musíme vytvořit nebo použít již dříve vytvořený aplikační protokol vhodný pro náš obor. Definice entity MATERIAL pak může v takovém protokolu vyjádřená jazykem EXPRESS vypadat následovně: SCHEMA materials; ENTITY linear_material; name : STRING; young_modulus : REAL; coef_thermal_expansion : REAL; shear_modulus : REAL; yield_stress : REAL; ultimate_stress : REAL; poissons_ratio : REAL; END_SCHEMA (* materials *); Dále předpokládejme, že vyrábíme dva materiály Alumina a Ceramic. Údaje o našich materiálech potřebujeme v elektronické formě dodat našemu odběrateli, který taktéž používá standard STEP a má již od nás k dispozici vhodný aplikační protokol. Potom mu stačí poslat následující textový soubor podle standardu ISO 10303-21. ISO-10303-21; HEADER; /*---------------------------------------- * Exchange File generated by ST-DEVELOPER v1.4 * Conforms to ISO 10303-21 */ FILE_DESCRIPTION ((''), '1'); FILE_NAME ('materials_data', '1996-07-01T12:13:37-04:00', (''), (''), 'ST-DEVELOPER v1.4', '', ''); FILE_SCHEMA (('MATERIALS')); ENDSEC; DATA; #10 = LINEAR_MATERIAL ('Alumina', $, 0.0000067, $, $, $, $ ); #20 = LINEAR_MATERIAL ('Ceramic', $, 0.0000003, $, $, $, $ ); ENDSEC; END-ISO-10303-21; Ano, svým způsobem trochu nepřehledné, ale efektivní. Naštěstí, přestože je tento formát člověku srozumitelný, je určen především pro počítač.

Další vlastnost, která nebyla doposud prezentována, je možnost použití grafické notace (vyjádření) jazyka EXPRESS. Pro názornou ukázku nám poslouží následující obrázek. Je na první pohled patrné, že požívaná grafická notace je podobné notaci ERD od pana Chena. Jako další ukázku si uvedeme příklad grafického zobrazení vztahu dědičnosti mezi entitami. Je zřejmé, že notace standardu STEP/EXPRESS je podobná notaci použité v metodě IDEF1X:

Na standardu STEP/EXPRESS je velice zajímavé, že zahrnuje velice rozsáhlou množinu konstruktů. Například obsahuje hned několik agregovaných typů, jak je patrné z následujícího seznamu. Bag : Netříděná kolekce. Hodnoty NULL nejsou dovoleny. Duplicitní hodnoty jsou dovoleny. List : Tříděná kolekce. Hodnoty NULL nejsou dovoleny. Duplicitní hodnoty jsou dovoleny. Set : Netříděná kolekce. Nejsou dovoleny ani hodnoty NULL, ani duplicitní hodnoty. Array : Tříděná kolekce pevné velikosti. Jsou dovoleny hodnoty NULL i duplicitní hodnoty. Dalším zajímavým typem jazyka EXPRESS je typ SELECT, který se podobá typu UNION v jazyce C. Ukážeme si příklad použití tohoto typu. TYPE physical_connection_type = SELECT (nail, screw, glue); END_TYPE;... attachment_method : physical_connection_type; Varianta jazyka EXPRESS-X definuje pojem VIEW, který je podobný konstruktu pro definici CURSORu v jazyce SQL. Uvedeme si opět jednu ukázku. Ukázka je sice poněkud morbidní, ale je již z výše zmiňovaného učebního textu, kde byl jazykem EXPRESS modelován rodokmen britské královské rodiny. VIEW dead_mum; FROM br:issue WHEREEXISTS (br.mother.death_date); SELECT name : label := br.child.forename; mum : subject := br.mother; END_VIEW; A toto je výsledek výše uvedeného VIEW v textovém formátu (ISO 10303-21). #350=DEAD_MUM ('William', #100); #360=DEAD_MUM ( Harry, #100);

Zajímavá je také schopnost jazyka EXPRESS vyjádřit 3 druhy dědičnosti. ONEOF definuje, že subtypy jsou vzájemně vyloučeny (mutually exclusive). Entita může být pouze jedním ze subtypů. AND definuje, že všechny instance nadtypu vždy obsahují všechny podtypy. ANDOR nedefinuje žádná pravidla ohledně počtu subtypů obsažených v nadtypu. A opět jednoduchý příklad. ENTITY mechanical_part SUPERTYPE OF (AND (power_part,handling_part));... ENTITY power_part SUPERTYPE OF (ONEOF(fluid_powered,electrical_powered,powerless));... ENTITY handling_part; SUPERTYPE OF (ONEOF(air_handling,liquid_handling,communication));... Z výše uvedených příkladů je patrné, že standard STEP/EXPRESS je nesmírně rozsáhlý a komplexní. Jeho dokumentace obsahuje stovky stran. Je také patrná snaha standardu o co nejpodrobnější popsání reálného světa kolem nás, i když pochopitelně prvotním cílem standardu STEP/EXPRES je schopnost popsat libovolné výrobky, které se vyrábějí nebo budou vyrábět.

7. ZÁVĚR Mým cílem byl stručný popis standardu STEP a jazyka EXPRESS. Standard STEP je asi nejvýznamnější krok v oblasti výměny výrobních dat. Je podporován těmi nejvýznamnějšími výrobci zejména v USA a západní Evropě, např. firmou General Electric, a dalšími. Nicméně by tento objektově orientovaný standard měl být také v oblasti zájmu všech zájemců o objektově orientované paradigma, protože rozsah a snaha o úplnost objektového modelu je překvapující. Nevím, do jaké míry je existence standardu STEP/EXPRESS obecně známa mezi informatiky, ale domnívám se, že bohužel minimální. Je to škoda, protože při studování materiálů o standardu STEP/EXPRESS jsem občas měl dojem, že poskytuje odpovědi na nedostatky mnoha objektových metod, které se běžně diskutují. Provokativně řečeno, informatici si teprve cestičku k objektovému standardu hledají, ale strojaři ho již mají a dokonce jako ISO! 8. LITERATURA [1] STEP Tools, Inc.: Introduction to STEP, http://www.steptools.com/library/standard/index.html [2] LKSoftWare GmbH: LKSoft, a solution provider for STEP (ISO 10303) and JavaTM technology, 2002 [3] Peter R. Wilson.: EXPRESS Tools and Services(1998), http://www.nist.gov/sc4/tools/express/etools98.htm [4] Joshua Lubell: An XML Repository Architecture for STEP Modules, National Institute of Standards and technology [5] David Loffredo: Fundamentals of STEP Implementation, STEP Tools, Inc. [6] Martin Hardwick: STEP Data Exchange Standard Moves Into Implementation Phase, STEP Tools, Inc. [7] Martin Hardwick: The STEP Standard, http://impforum.aticorp.org/info.html [8] STEP Tools, Inc.: ROSE Library Tutorials, 8 Getting Started with EXPRESS, http://www.steptools.com/support/stdev_v8_docs/roselib_tutorial/roselib_tutorial_8.html [9] Robin Cover: STEP/EXPRESS and XML, http://xml.coverpages.org/stepexpressxml.html [10] Martin Hardwick: STEP Database Tutorial, STEP Tools, Inc. [11] Chuck Eastman: Introduction to EXPRESS, CIS/2 Notes, Georgia Tech [12] Stefan Schwarz: Java as a language for STEP-based product and process modeling, University of the Federal Armed Forces Munich [13] EXPRESS ENGINE PROJECT, http://exp-engine.sourceforge.net [14] The NIST STEP Class Library, http://ats.nist.gov/scl V Praze 24. října 2002 Ing. Martin Molhanec, CSc

Figure 1: ExExpress - editor of the STEP/EXPRESS standard Figure 2: JSDAI STEP-Book AP210, interconnect design