Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Домендік ерекшеліктерді модельдеу (DSM) – компьютерлік бағдарламалық қамтамасыз ету сияқты жүйелерді жобалау және дамытуға арналған бағдарламалық инженерия әдістемесі. Ол жүйенің әртүрлі аспектілерін бейнелеу үшін белгілі бір доменге арналған тілді жүйелі түрде пайдалануды қамтиды. Домендік модельдеу тілдері, жалпы мақсаттағы модельдеу тілдеріне қарағанда, жоғары деңгейдегі абстракцияларды қолдайды, сондықтан берілген жүйені сипаттау үшін аз күш жұмсалып, төмен деңгейдегі егжей-тегжейлердің саны азаяды.
Domain specific modeling (DSM) is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain specific language to represent the various facets of a system. Domain specific modeling languages tend to support higher level abstractions than general purpose modeling languages, so they require less effort and fewer low level details to specify a given system.
Шолу
Домендік үлгілеу көбінесе кодты генерациялау идеясын қамтиды: домендік тіл модельдерінен орындалатын бастапқы кодты автоматты түрде құру. Деректер кодтарын қолмен жасау және күтіп ұстау қажеттілігінен босату домендік тілдің әзірлеушілердің өнімділігін едәуір арттыруына мүмкіндік береді. Автоматты генерацияның қолмен кодтауға қарағанда сенімділігі жоғары болғандықтан, нәтижедегі бағдарламалардағы қателер саны азаяды, соның салдарынан сапа жақсарады. Домендік тіл 1980 жылдардағы CASE құралдары немесе 1990 жылдардағы UML құралдарындағы кодты генерациялауға жасалған бұрынғы тыраштардан өзгеше. Бұл екі жағдайда да код генераторлары мен модельдеу тілдерін құрал жеткізушілер жасаған. Құрал жеткізушіге домендік тіл мен генераторларды жасау мүмкін болғанымен, домендік тіл көбінесе бір ұйым ішінде пайда болады. Бір немесе бірнеше тәжірибелі әзірлеушілер модельдеу тілі мен генераторларды жасайды, ал қалған әзірлеушілер оларды қолданады. Модельдеу тілі мен генераторды оны пайдаланатын ұйым жасағанда, олардың нақты доменіне және домендегі өзгерістерге бейімделуге мүмкіндік туады. Домендік тілдер әдетте белгілі бір домен үшін абстракция деңгейлерінің кең ауқымын қамтуы мүмкін. Мысалы, ұялы телефондарға арналған домендік үлгілеу тілі пайдаланушыларға пайдаланушы интерфейсі үшін жоғары деңгейдегі абстракцияларды, сондай-ақ телефон нөмірлері немесе параметрлер сияқты деректерді сақтау үшін төменгі деңгейдегі абстракцияларды анықтауға мүмкіндік береді. Сол сияқты, қаржылық қызметтерге арналған домендік үлгілеу тілі пайдаланушыларға клиенттер үшін жоғары деңгейдегі абстракцияларды, ал акциялар мен облигациялар саудасы алгоритмдерін іске асыру үшін төменгі деңгейдегі абстракцияларды анықтауға мүмкіндік береді.
Domain specific modeling often also includes the idea of code generation: automating the creation of executable source code directly from the domain specific language models. Being free from the manual creation and maintenance of source code means domain specific language can significantly improve developer productivity. The reliability of automatic generation compared to manual coding will also reduce the number of defects in the resulting programs thus improving quality. Domain specific language differs from earlier code generation attempts in the CASE tools of the 1980s or UML tools of the 1990s. In both of these, the code generators and modeling languages were built by tool vendors. While it is possible for a tool vendor to create a domain specific language and generators, it is more normal for domain specific language to occur within one organization. One or a few expert developers creates the modeling language and generators, and the rest of the developers use them. Having the modeling language and generator built by the organization that will use them allows a tight fit with their exact domain and in response to changes in the domain. Domain specific languages can usually cover a range of abstraction levels for a particular domain. For example, a domain specific modeling language for mobile phones could allow users to specify high level abstractions for the user interface, as well as lower level abstractions for storing data such as phone numbers or settings. Likewise, a domain specific modeling language for financial services could permit users to specify high level abstractions for clients, as well as lower level abstractions for implementing stock and bond trading algorithms.
Домендік тілдерді анықтау
Тілді анықтау үшін, оның анықтамасын жазу үшін тіл қажет. Модельдің тілі көбінесе метамодель деп аталады, сондықтан модельдеу тілін анықтау тілі – мета-метамодель. Мета-метамодельдерді екі топқа бөлуге болады: бұрыннан бар тілдерден туындаған немесе оларға сәйкес келтірілгендері, және мета-метамодель ретінде арнайы жасалғандары. Туындаған мета-метамодельдерге қатыстылық-қатынас диаграммалары, формальды тілдер, кеңейтілген Бэкус-Наур формасы (EBNF), онтология тілдері, XML схемасы және Meta Object Facility (MOF) жатады. Бұл тілдердің артықшылықтары бастапқы тілдің таныс болуы мен стандартталуында. Доменге қатысты нақты модельдеу философиясы белгілі бір міндет үшін жаңа тіл жасауға басымдық береді, сондықтан мета-метамодель ретінде жаңа тілдер жасалғаны түсінікті. Мұндай тілдердің ең көп қолданылатын тобы – OPRR, GOPRR және GOPPRR, олар модельдеу тілдерінде кездесетін нәрселерді ең аз күш жұмсап қолдауға бағытталған.
To define a language, one needs a language to write the definition in. The language of a model is often called a metamodel, hence the language for defining a modeling language is a meta metamodel. Meta metamodels can be divided into two groups: those that are derived from or customizations of existing languages, and those that have been developed specifically as meta metamodels. Derived meta metamodels include entity–relationship diagrams, formal languages, extended Backus–Naur form (EBNF), ontology languages, XML schema, and Meta Object Facility (MOF). The strengths of these languages tend to be in the familiarity and standardization of the original language. The ethos of domain specific modeling favors the creation of a new language for a specific task, and so there are unsurprisingly new languages designed as meta metamodels. The most widely used family of such languages is that of OPRR, GOPRR, and GOPPRR, which focus on supporting things found in modeling languages with the minimum effort.
Домендік тілдерге арналған құралдарды қолдау
Көптеген жалпы мақсаттағы модельдеу тілдері үшін CASE құралдары түрінде қолдау бар. Доменге арналған тілдердің нарық көлемі арнайы CASE құралын бастапқыдан құруды қолдау үшін тым кішкентай. Оның орнына, доменге арналған тілдерге қолдау көбінесе доменге арналған тілдер шеңберлері немесе доменге арналған тілдер ортасы негізінде құрылады. Доменге арналған тілдер ортасын метамодельдеу құралы деп қарастыруға болады, яғни модельдеу құралын немесе CASE құралын анықтауға қолданылатын модельдеу құралы. Соның нәтижесінде құрал доменге арналған тілдер ортасында жұмыс істей алады, немесе сирек жеке бағдарлама ретінде жасалады. Көбінесе доменге арналған тілдер ортасы дәстүрлі CASE құралымен салыстырғанда қосымша абстракция деңгейін ұсынады. Доменге арналған тілдер ортасын пайдалану доменге арналған тілдерге қолдау құнын айтарлықтай төмендетуі мүмкін, себебі жақсы жобаланған доменге арналған тілдер ортасы доменге арналған редакторлар, шолғыштар және компоненттер сияқты бастапқыдан құруға қымбат түсетін бағдарламалық бөліктерді автоматты түрде құрады. Домендік сарапшыға тек доменге арналған құрылымдар мен ережелерді көрсету қажет, ал доменге арналған тілдер ортасы мақсатты доменге арналған модельдеу құралын ұсынады. Қазіргі доменге арналған тілдердің көпшілігі доменге арналған тілдер орталарында қолданылады, коммерциялық (мысалы, MetaEdit+ немесе Actifsource), ашық кодты (мысалы, GEMS) немесе академиялық (мысалы, GME). Доменге арналған тілдердің танымалдылығының артуы қолданыстағы IDE-лерге доменге арналған тілдер шеңберлерін қосуға әкелді, мысалы, EMF және GMF-пен Eclipse Modeling Project (EMP) немесе Microsoft-тың Software Factories үшін DSL Tools.
Many General Purpose Modeling languages already have tool support available in the form of CASE tools. Domain specific language languages tend to have too small a market size to support the construction of a bespoke CASE tool from scratch. Instead, most tool support for domain specific language languages is built based on existing domain specific language frameworks or through domain specific language environments. A domain specific language environment may be thought of as a metamodeling tool, i. e., a modeling tool used to define a modeling tool or CASE tool. The resulting tool may either work within the domain specific language environment, or less commonly be produced as a separate stand alone program. In the more common case, the domain specific language environment supports an additional layer of abstraction when compared to a traditional CASE tool. Using a domain specific language environment can significantly lower the cost of obtaining tool support for a domain specific language, since a well designed domain specific language environment will automate the creation of program parts that are costly to build from scratch, such as domain specific editors, browsers and components. The domain expert only needs to specify the domain specific constructs and rules, and the domain specific language environment provides a modeling tool tailored for the target domain. Most existing domain specific language takes place with domain specific language environments, either commercial such as MetaEdit+ or Actifsource, open source such as GEMS, or academic such as GME. The increasing popularity of domain specific language has led to domain specific language frameworks being added to existing IDEs, e. g. Eclipse Modeling Project (EMP) with EMF and GMF, or in Microsoft's DSL Tools for Software Factories.
Доменге тән тіл және UML
Бірыңғай модельдеу тілі (UML) – бағдарламалық жасақтамаға көп көмек қажет болатын жүйелер үшін арналған, жалпы мақсаттағы модельдеу тілі. Ол негізінен объектіге бағытталған бағдарламалауды қолдау үшін жасалған. Сәйкесінше, салалық тілдерге қарағанда, UML кең ауқымды салаларда әртүрлі мақсаттарда қолданылады. UML ұсынатын бастапқы элементтер объектіге бағытталған бағдарламалаудың бастапқы элементтері болып табылады, ал салалық тілдер сол саланың барлық мамандарына таныс семантикалық бастапқы элементтерді ұсынады. Мысалы, автомобиль құрылысы саласында, антиблокировкалық тежегіш жүйесінің немесе рульдің және т.б. қасиеттерін көрсететін бағдарламалық модельдер болады. UML белгілі бір салалар мен платформалар үшін шектеулер мен бейімдеуге мүмкіндік беретін профильдік механизмді қамтиды. UML профильдері стереотиптерді, стереотип атрибуттарын (UML 2.0 нұсқасынан бұрын таңбаланған мәндер деп аталған) және UML-дің қолданылу аясын белгілі бір салаға шектеу және кеңейту үшін шектеулерді пайдаланады. Белгілі бір сала үшін UML-ді бейімдеудің ең танымал мысалы – жүйелік инженерияға арналған салалық тіл болып табылатын SysML. UML әртүрлі модельге негізделген әзірлеу тәсілдері үшін танымал таңдау болып табылады, онда бастапқы код, құжаттама, тесттер және басқа да техникалық артефакттар домендік модельден алгоритмдік түрде жасалады. Мысалы, құқықтық құжат стандартының қолданыс профильдері Akoma Ntoso құқықтық ұғымдар мен онтологияларды UML сынып объектілерінде бейнелеу арқылы жасалуы мүмкін.
The Unified Modeling Language (UML) is a general purpose modeling language for software intensive systems that is designed to support mostly object oriented programming. Consequently, in contrast to domain specific language languages, UML is used for a wide variety of purposes across a broad range of domains. The primitives offered by UML are those of object oriented programming, while domain specific languages offer primitives whose semantics are familiar to all practitioners in that domain. For example, in the domain of automotive engineering, there will be software models to represent the properties of an anti lock braking system, or a steering wheel, etc. UML includes a profile mechanism that allows it to be constrained and customized for specific domains and platforms. UML profiles use stereotypes, stereotype attributes (known as tagged values before UML 2.0), and constraints to restrict and extend the scope of UML to a particular domain. Perhaps the best known example of customizing UML for a specific domain is SysML, a domain specific language for systems engineering. UML is a popular choice for various model driven development approaches whereby technical artifacts such as source code, documentation, tests, and more are generated algorithmically from a domain model. For instance, application profiles of the legal document standard Akoma Ntoso can be developed by representing legal concepts and ontologies in UML class objects.