<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Architecture of Pattern Management Software System</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Erki</forename><surname>Eessaar</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Informatics</orgName>
								<orgName type="institution">Tallinn University of Technology</orgName>
								<address>
									<addrLine>Raja 15</addrLine>
									<postCode>12618</postCode>
									<settlement>Tallinn</settlement>
									<country key="EE">Estonia</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Architecture of Pattern Management Software System</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">3EC5DC341C59AF15315F1418AC1591BA</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T11:14+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Patterns and models are artifacts that are assets to their owners. Storing them in a repository and using common interfaces for their management simplifies their usage. This article proposes architecture of an extensible repository system that is called Pattern Management Software System (PMSS). It permits metamodel engineer to define abstract syntax of a new modeling or pattern writing language using a metamodel. System registers metamodel in the object-relational database and creates database objects for recording corresponding artifacts and their metadata. Views provide to the users different ways of looking at the data in the database. New views are continuously created. How can user find appropriate views? This article proposes that one component of PMSS must be the subsystem that permits searching and execution of the views.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>This article deals with the management of artifacts that are created and used during the software development. These artifacts are for example models and patterns. Knowledge about the reoccurring practices can be extracted from the models and recorded as patterns. Artifacts are created using wide range of languages and tools. Artifacts should be easily findable and accessible in order to promote reuse and should therefore be collected to the repository. For example, following queries can be used in order to find data modeling pattern from the repository. These queries are used as an illustration and don't represent syntax that is used.</p><p>SET A=(&lt;id&gt;, &lt;name&gt; of artifacts WHERE metamodel is &lt;entity relationship model&gt; AND artifact contains element of type &lt;entity&gt; which name is &lt;'Order'&gt;);</p><p>SET B=(SET &lt;A&gt;) UNION (&lt;id&gt;, &lt;name&gt; of artifacts WHERE type is &lt;pattern&gt; AND element of type &lt;solution&gt; is associated with the artifacts IN the SET &lt;A&gt;)); Angle brackets "&lt;" and "&gt;" represent placeholders for the parameter values. User has to assign value to each parameter before executing the query. Current example contains sample value of each parameter. System must store metadata about the artifacts and their language in order to support selection of some of these values from the repository. The main contribution of this article is the proposal of the architecture of repository of artifacts that uses object-relational database management system. General name of the proposed system is Pattern Management Software System (PMSS). Word "pattern" stresses that one purpose of PMSS is to promote creation of patterns based on the artifacts that are recorded in the repository. The rest of the paper is organized as follows. Section 2 describes related works. Section 3 describes the architecture of PMSS. Section 4 discusses advantages and disadvantages of the proposed solution. Section 5 provides conclusions and describes future work with the topic.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Works</head><p>Next are described some projects for creating repositories of patterns. Greenfield and Short <ref type="bibr" target="#b0">[1]</ref> argue that Domain Specific Languages (DSL) help automate code generation from the models. DSL uses domain specific vocabulary and needs repository of domain specific patterns. Example of such repository is repository of patterns for the electricity supply industry <ref type="bibr" target="#b1">[2]</ref>. PsiGene <ref type="bibr" target="#b2">[3]</ref> is a component-based domain specific development method that uses domain-specific patterns for generating application specific components for the simulation software. Halaris and Geroupoulus <ref type="bibr" target="#b3">[4]</ref> describe the information structure of the reuse repository, which could be used to store and retrieve reusable objects of any kind. It could be used together with the different software engineering methodologies. Each of these reusable objects belongs to some class and is described by the set of attribute-value pairs. Objects can be searched using semantic similarity. There is also weakly structured Portland Pattern Repository (PPR) <ref type="bibr" target="#b4">[5]</ref> that contains interconnected pages that everyone can edit. One disadvantage of PPR is that there is no possibility to restrict search to only some components of pattern. Yacoub and Ammar <ref type="bibr" target="#b5">[6]</ref> argue: "Patterns are mental building blocks that are more related to human understanding than to automatic usage." Therefore tools that help to use patterns should also help user to understand consequences of the solution. For example, Mirbel <ref type="bibr" target="#b6">[7]</ref> introduces context frame that describes context of the process fragment as a set of compatible criteria. Appropriate fragment can be selected by comparing context of the problem and contexts of the process fragments that represents possible solutions. How to implement repository of reusable artifacts? One solution is to build these systems directly on top of a file-system. OMG introduces Reusable Asset Specification (RAS) <ref type="bibr" target="#b7">[8]</ref> that helps to organize reusable assets that describe solution to the software development problem. Asset is implemented as a package file that contains artifact files that represent solution and XML file that manifests properties of the asset. Reusable assets can be collected to the central RAS repository. Many repository systems use database management systems (DBMS) according to Dittrich and others <ref type="bibr" target="#b8">[9]</ref>. Open source artifact management system OSCAR <ref type="bibr" target="#b9">[10]</ref>, that is part of the distributed software development environment GENESIS, stores metadata about the artifacts in the database. It keeps artifacts and associated informal materials in the files that are outside the scope of DBMS. System records and presents process information including the actors responsible for changes of artifacts and the rationale associated with those changes. Many repository systems store all the information in the database. Some systems use relational database <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b11">12]</ref>. According to Dittrich and others <ref type="bibr" target="#b8">[9]</ref> many of the repository systems use objectoriented DBMS. Date <ref type="bibr" target="#b12">[13]</ref> gives an overview of problems of objectoriented databases and shows their weaknesses. Recently objectrelational DBMS (ORDBMS) have attracted attention. SERUM <ref type="bibr" target="#b13">[14]</ref> is an example of repository system that uses ORDBMS. SERUM provides framework for building customized repository managers.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Metadata Based Architecture of PMSS</head><p>Firstly purposes of the PMSS will be described. Secondly the architecture will be described that helps to achieve these purposes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Purposes of PMSS</head><p>• Store permanently development results and make them available to the public. • Provide environment where groups of users can develop language of some problem domain by recording and grouping patterns that describe this domain. • Simplify recording of associations between artifacts in order to determine their context. For example, problem statement of pattern can be accompanied with "As Is" models <ref type="bibr" target="#b14">[15]</ref> that highlight current practices. Description of the solution can be accompanied with "To Be" models <ref type="bibr" target="#b14">[15]</ref>. • Give an overview of the creation and usage of artifacts and active contributors.</p><p>• Give an overview of the popularity of different artifact languages.</p><p>• Provide platform for the standardization of the pattern writing language.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">The Architecture</head><p>Repository system contains repository manager according to Bernstein and Dayal <ref type="bibr" target="#b15">[16]</ref> and repository (database). A repository manager provides services for modeling, retrieving, and managing the objects in a repository according to Bernstein and Dayal <ref type="bibr" target="#b15">[16]</ref>. Repository manager must offer functions of DBMS and also additional functions. PMSS uses object-relational DBMS (ORDBMS) PostgreSQL as its database platform. ORDBMS provides possibility to define user defined types (UDT) and user defined functions (UDF) (see SQL:1999 <ref type="bibr" target="#b16">[17]</ref> and also SQL:2003 standard). Architecture of PMSS will be described in terms of functional subsystems and data centric subsystems that are called registers. Identification of such subsystems is part of the IS strategic development that is proposed by Roost and others <ref type="bibr" target="#b17">[18]</ref>. A functional subsystem corresponds to one or more business processes <ref type="bibr" target="#b17">[18]</ref> that are performed using repository manager. "A register is a logical data-centric view of a business object that holds the state and transactions data of the object and provides related recording and query services." <ref type="bibr" target="#b17">[18]</ref>. A register corresponds to one logical part of the repository. One functional subsystem reads and modifies data in one or more registers. Subjects who have some role in the system use services of functional subsystems that belong to the area of competence of their role <ref type="bibr" target="#b17">[18]</ref>. Architecture of PMSS (see Figure <ref type="figure" target="#fig_0">1</ref>) can be explained in terms of the levels of the information system that are proposed by Halpin <ref type="bibr" target="#b18">[19]</ref>. Conceptual level describes structure of the application domain according to Halpin <ref type="bibr" target="#b18">[19]</ref>. Application domains in PMSS are patterns and models. Their abstract syntax is described using metamodels and recorded in the repository dictionary registers. Logical level is expressed in terms of data and operations that are supported in the data model according to Halpin <ref type="bibr" target="#b18">[19]</ref>. Repository of PMSS is dynamically extensible. Changes in the metamodels trigger automatic changes in the structure of registers of artifacts. For example, new tables, columns or domains are created. New tables are needed in order to record elements of artifacts. System records also information about the database objects.</p><p>Internal level includes details about the physical storage and access structures according to Halpin <ref type="bibr" target="#b18">[19]</ref>. PMSS is built on top of the ORDBMS and uses its data management mechanisms.</p><p>How can one retrieve artifacts? Artifact is broken to elements and each element is recorded in the database. It allows searching artifacts using SQL. Files that contain serialized artifacts can be recorded in the database and associated with the artifacts. External level specifies operations accessible to the users or group of users according to Halpin <ref type="bibr" target="#b18">[19]</ref>. PMSS uses views that help users to find artifacts and additional (including statistical) information about them.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.1">Repository Structure and Meaning Management Subsystem</head><p>Role of the users of all these subsystems is a metamodel engineer. Subsystems use repository dictionary registers that provide a data dictionary function to the whole system. User describes abstract syntax of the modeling or pattern writing language as metamodels using subsystem of metamodels ("S_metamodels"). It can be done using forms. Metamodels are recorded in the register of metamodels ("R_metamodels). Examples of metamodels:</p><p>• Metamodel of Alexandrian form of patterns.</p><p>• Metamodel of Pattern and Component Markup Language <ref type="bibr" target="#b19">[20]</ref>.</p><p>• Metamodel of Entity Relationship model. Metamodel engineers describe element types and their attributes, associations and generalizations. Each element type belongs to the certain metamodel. "Prologue", "Problem statement", "Discussion", "Solution", "Diagram" and "Epilogue" are examples of the element types that are used in the Alexandrian form of patterns according to PPR <ref type="bibr" target="#b4">[5]</ref>. "Entity", "Attribute", "Relationship" are examples of the element types that are used in the Entity Relationship model. System enables registering semantics of the metamodel elements as prose. For example, problem statement has attributes "short description" and "long description". Metamodel engineers can also group element types that are part of the different metamodels but have a similar meaning. For example, element "Problem" in the Canonical pattern form corresponds to the element "Intent" that belongs to the pattern structure described by Gamma and others <ref type="bibr" target="#b20">[21]</ref> according to PPR <ref type="bibr" target="#b4">[5]</ref>. Element of the artifact can be associated with one or more artifacts. Metamodel determines types of artifacts with which element of the artifact can have associations.</p><p>Date <ref type="bibr" target="#b12">[13]</ref> writes: "The sole good idea of object systems in general is proper data type support". Therefore PMSS permits creation of domains that determine possible values of attribute that have this domain. Domain can have a set of associated constraints and default value. For example, domain determines minimum and maximum amount of values that attribute can have. Multivalued attribute can have more than one value. Domain can have an explicitly defined set of values that are only allowed values of attributes that have this domain.</p><p>Each attribute in the metamodel is associated with the domain. Each element type has by default an attribute that is a unique identifier and has the systemic domain "surrogate key" which values follow the rules of surrogate key (see Date <ref type="bibr" target="#b12">[13]</ref>). Values of this domain are generated by the system. Element type can have more than one unique identifier. Metamodel engineer manages domains using subsystem of domains ("S_domains") and they are recorded in the register of domains ("R_domains"). Some metamodels that are recorded in "R_metamodels" are systemic metamodels that describe structure of the registers of PMSS: "R_metamodels", "R_domains", "R_artifacts", etc. Each not-systemic metamodel has one corresponding register of artifact elements ("R_artifact_elements" i ) where artifacts with this metamodel are recorded. Creation or modification of not-systemic metamodels triggers changes in the database structure. New database objects are created or existing ones are modified using rules that are described in Table <ref type="table" target="#tab_0">1</ref>. System also registers database objects of the repository in the register ("R_struct") (see Figure <ref type="figure" target="#fig_1">2</ref>) and correspondence between the metamodel elements and database objects in the register of mappings ("R_map"). "R_map" is omitted from the Figure <ref type="figure" target="#fig_1">2</ref>.  Registers "R_struct" and "R_map" contain also information about the database objects that correspond to the systemic metamodels. Therefore it is possible to get information about the structure and meaning of the whole repository from one source. For example, it is possible to find out that names of the metamodels can be found from the column "name" in the table "Metamodels" that belongs to the schema "Metamodels". It is advantageous if one wants to find appropriate values to the parameters of views (see section 3.1.4). Creation of the systemic metamodels, domains and corresponding database objects is part of the setup process of PMSS. Element type has properties that determine minimum and maximum amount of corresponding elements that can be part of the artifact that has this metamodel. If new element is added to the artifact then system automatically checks this rule. Metamodels are associated with the classification schemes that are used for the classification of the corresponding artifacts. These classification schemes are managed using subsystem of classification schemes ("S_classification_schemes") and recorded in the corresponding register ("R_classification_schemes") (see Figure <ref type="figure" target="#fig_3">4</ref>). For example, patterns can be (good) patterns or anti-patterns. In addition artifacts can be classified by granularity, variability and articulation like in the OMG RAS <ref type="bibr" target="#b7">[8]</ref>, by maturity <ref type="bibr" target="#b3">[4]</ref> and also by subject area (object-oriented design, data modeling etc.). Roles of users of this subsystem are pattern developer or software developer. They create, modify or delete artifacts using subsystem of artifacts ("S_artifacts"). "S_artifacts" uses register of artifacts ("R_artifacts") and registers of artifact elements. Each not-systemic metamodel has one corresponding register of artifact elements. Figure <ref type="figure" target="#fig_2">3</ref> gives an example of the artifact management form. From the document section one can select available files that contains serialized artifact. Artifacts can be associated and grouped. Associations and groups have a type. For example, two patterns can be associated because they are alternatives. Pattern language is example of the group of patterns. Artifact group is also an artifact that has the metamodel. It gives possibility to associate additional information with the artifact language as a whole.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.2">Subsystem for the Management of Artifacts</head><p>Software developer can also register information about the usage of the artifacts in the development work and its opinion about the artifact. This is special kind of artifact event and is recorded in the register of artifact events ("R_artifact_events"). It is background information to the potential users of the artifact. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.3">Supporting Subsystems</head><p>PMSS should permit registration of metadata about documents as well as storing document files. Examples of documents are documentation of development results and XMI files that contain serialized models. Documents can be associated with the artifacts in the repository. For example, pattern can be associated with the documents based on which it was worked out or documents that contain supporting or contradicting examples. Metadata about the documents and document files are recorded in the register of documents ("R_documents") using subsystem of documents ("S_documents"). PostgreSQL is objectrelational DBMS and therefore allows recording large objects in a table. It makes possible saving document files to the database. PMSS allows management of subjects. Subjects are organizations or persons. Subject can have one or more role. Administrator manages subjects who use PMSS. Software developers and pattern developers manage subjects who have somehow contributed to the creation of the models or patterns but are not users of PMSS. Data about the subjects is recorded in the register of subjects ("R_subjects") using subsystem of subjects ("S_subjects").</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.4">Registration of Events</head><p>PMSS records automatically information about the creation or modification of the artifact or its elements by the developers. These events are registered in the register of artifact events ("R_artifact_events") (see Figure <ref type="figure" target="#fig_3">4</ref>). This approach is similar to the approach of active artifact that is taken by OSCAR <ref type="bibr" target="#b9">[10]</ref>. "The active artefact records logs of who and what has accessed the artefact and (if possible) their purpose in doing so" <ref type="bibr" target="#b9">[10]</ref>. System records time and type of the event and name of the table where this event has happened. It associates this information with the reference to the subject and artifact. Special kind of event is change of the state of the artifact. Possible states of the artifact that is not patterns are: under construction; ready for the usage; archived. Possible states of the pattern are: under construction; candidate pattern; accepted pattern; under evaluation; archived. If a state of the artifact is changed then this event is recorded and associated with the new state type. System uses similar approach in order to record information about the events that have happened with metamodels, domains and views. System registers this information to the registers "R_metamodel_events", "R_domain_events" and "R_view_events", respectively. System uses triggers in order to technically implement registration of events. For example, if system creates table for the registration of artifact element then it also creates triggers that are associated with the table and which tasks are registration of the events that have happened with the data in the table.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.5">Subsystems for the External View to the Artifacts</head><p>Software developers and pattern developers search artifacts. Metamodel engineers search metamodels. Managers want statistical overview about the artifacts and their usage.</p><p>View is a stored query that is executed then user invokes it. PMSS must support views that use queries described by Eessaar <ref type="bibr" target="#b21">[22]</ref>. Each subject or role has a set of views that provide access to the data in the repository. User of PMSS must have up to date information about the views that one has right to use. Therefore PMSS contains subsystem of views ("S_views") and register of views ("R_views") (see Figure <ref type="figure" target="#fig_4">5</ref>). "S_views" permits registration of views and registration of the association between the view definition and database object that implements this view. "S_views" belongs to the category of Repository Structure and Meaning Management Subsystems. PMSS uses parameterized and not-parameterized views. Levy and others <ref type="bibr" target="#b22">[23]</ref> write: "A parameterized view is a conjunctive query that contains placeholders in argument positions in the body of the view, in addition to variables and constants." User of the parameterized view must give values with appropriate type to all the arguments of this view. In many cases possible values can be selected from the repository. If the parameter is associated with the domain then (a) its permitted values are all values that correspond to the rules of this domain. If the domain is associated with the set of possible values then user can choose one of these values. If the parameter is associated with the attribute (b) then its permitted values must have domain of the attribute. Additional restriction is that values must be selected from the set of existing attribute values in the repository. For each language find amount of the artifacts that are created using this language during the period of last &lt;n (a)&gt; days. 6. Find amount of artifacts that are created by each subject during the period of last &lt;n (a)&gt; days. Views 4-6 help to achieve goals of PMSS about the statistical overviews. Examples of the queries based on which not-parameterized views are created: 7. Find data modeling patterns. 8. Find amount of candidate patterns. Parameterized view can be implemented in the ORDBMS using setreturning function that returns a set of records that form the answer to the question. Not-parameterized view can be implemented in the database using view object.</p><p>Register "R_struct" contains information about the database objects that implement views and register "R_map" contains information about the correspondence of the views and database objects. User can search the view, give values to the parameters (see Figure <ref type="figure">6</ref>) and execute it using query subsystem "S_query". System uses corresponding database objects in order to find information and present it to the user (see Figure <ref type="figure">7</ref>). If user wants to see details of the artifact then system opens the form that is described in the Figure <ref type="figure" target="#fig_2">3</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Discussions</head><p>PMSS conforms to the four-layer metamodeling architecture of OMG Meta-Object Facility (MOF) <ref type="bibr" target="#b23">[24]</ref>. Database objects (including constraints) in the registers "R_metamodels" and "R_domains" specify language that can be used in order to define metamodels (M3). Metamodels (M2) are recorded to the repository dictionary registers and models (M1) are recorded to the registers of artifacts (see Figure <ref type="figure" target="#fig_0">1</ref>).</p><p>PMSS can be used during all phases of the development of information system. PMSS can be used within one organization or by the set of the collaborating organizations. It can also be used in the public domain in order to provide artifacts based on the open-source paradigm. PMSS would also be part of a development subsystem of Enterprise Information System that is proposed by Roost and others <ref type="bibr" target="#b24">[25]</ref> and Enterprise Continuum that is proposed in the Open Group Architectural Framework <ref type="bibr" target="#b25">[26]</ref>. Currently prototype of PMSS is under development.</p><p>Advantages of PMSS are: • PMSS improves process of system modeling because it makes possible to search reusable artifacts as well as their metadata. Selection of some parameter values from the repository and possibility to search views makes searching more comfortable. • PMSS records metadata about artifacts as well as artifacts themselves in the database in order to escape problems of controlling access to artifacts, which are not under control of DBMS. • PMSS is extensible in the sense that users can define new metamodels in order to start recording new kinds of artifacts. • Metamodel engineer can change structure of the registers of artifact elements by using concepts from the metamodel domain and not using concepts from the database design domain.</p><p>• System provides information about the meaning of the element types in the artifacts. For example, what does "prologue" mean in the context of Alexandrian form of patterns? • Repository contains information about the purpose of database objects. • Information about a same meaning of different element types permits searches across elements that have the same meaning but different names.</p><p>• System keeps track of events with the metamodels, domains, views and artifacts. It helps to estimate contribution of subjects and provides background information. Disadvantages of the system are:</p><p>• PMSS distinguishes attributes and element types at the conceptual level. But Halpin <ref type="bibr" target="#b18">[19]</ref> suggests: "an attribute-based model is inherently unstable. Even worse, applications using the model often need to be recoded when a model feature is changed." PMSS tries to overcome these problems by automatically changing database structure after changes of metamodel. • Some drawbacks come from the fact that the current implementations of relational or object-relational DBMS's are not fully conformant with the ideas of the relational model and have problems <ref type="bibr" target="#b12">[13]</ref>: − SQL is defective. For example, it lacks possibilities to make queries about the hierarchical relationships. If one wants to make query in order to find all classes that are associated directly or indirectly with some class using generalization relationship then procedure has to be written. − Each database management system has its own SQL dialect.</p><p>Therefore change of DBMS means rewriting parts of PMSS. − SQL:1999 <ref type="bibr" target="#b16">[17]</ref> permits definition of user defined types (UDT) and creation of columns or tables that have UDT. But Date <ref type="bibr" target="#b12">[13]</ref> argues strongly against typed tables and says that DBMS should support definition of datatypes that can be used in the definition of columns. PMSS permits definition of domains that are implemented using domain objects in order to restrict values in the columns. Creation of the domain by the metamodel engineer should cause creation of the data type and operators in the DBMS that fully conforms to the ideas of Date <ref type="bibr" target="#b12">[13]</ref>. − Lack of possibilities to define declarative database constraints that reference two or more tables. Well-formedness rules in the metamodels could be implemented as declarative integrity constraints in the "R_metamodels" but instead triggers and controlprocedures have to be created which use proprietary syntax. − Many views that are theoretically updatable (see Date <ref type="bibr" target="#b12">[13]</ref>) are not updatable in practice. It makes impossible to implement interface for modifying artifacts using views.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions and Future Work</head><p>Architecture of Pattern Management Software System was introduced in this paper. PMSS uses ORDBMS as its database platform. Definition of the abstract syntax of the artifact language causes automatic extension of the repository, in order to allow recording of artifacts.</p><p>System also provides views in order to search artifacts and their metadata. Some problems of ORDBMS that restrict implementation of PMSS where also mentioned. Currently prototype of PMSS is under development.</p><p>In the future PMSS must be extended in order to support some important functionality of the traditional repository systems that are described for example by Bernstein and Dayal <ref type="bibr" target="#b15">[16]</ref>: checkout/checkin; management of versions of artifacts; configuration management; context management. Another necessary extension is to permit user to define new views based on the metamodel descriptions. PMSS should also permit loading of existing models to the repository. Future work will also include creation of framework that generates dynamically web pages for the artifact management based on the metadata in the repository.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. PMSS Architecture</figDesc><graphic coords="5,151.50,255.06,292.20,179.40" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Registers for recording metamodels, domains and artifacts</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Draft of the form that is used for the management of artifacts</figDesc><graphic coords="10,180.24,172.20,234.72,161.58" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Registers for recording information about the artifacts, events, documents and classification schemes</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. Registers for recording information about the views</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 6 .Fig. 7 .</head><label>67</label><figDesc>Fig. 6. Draft of the form or page that is used for the execution of the view</figDesc><graphic coords="15,208.80,506.28,177.60,55.26" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Database objects that are created based on the metamodel elements</figDesc><table><row><cell>Element type</cell><cell>Type of database object</cell></row><row><cell>Metamodel</cell><cell>Schema</cell></row><row><cell>Element type</cell><cell>Table (in the schema)</cell></row><row><cell>Single-valued</cell><cell>Column (in the table)</cell></row><row><cell>attribute</cell><cell></cell></row><row><cell>Multivalued</cell><cell>Table, columns and foreign key constraint</cell></row><row><cell>attribute</cell><cell></cell></row></table></figure>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>R_metamodels</head></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">J</forename><surname>Greenfield</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Short</surname></persName>
		</author>
		<title level="m">Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools</title>
				<meeting><address><addrLine>USA</addrLine></address></meeting>
		<imprint>
			<publisher>John Wiley &amp; Sons</publisher>
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">A Framework for Generic Patterns Dedicated to the Management of Change in the Electricity Supply Industry</title>
		<author>
			<persName><forename type="first">C</forename><surname>Rolland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Loucopoulos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Grosz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Nurcan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">9th International Workshop on Database and Expert Systems Applications</title>
				<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Modeling Software Architecture Using Domain-Specific Patterns</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">P</forename><surname>Riegel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Kaesling</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Schütze</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">First Working IFIP Conference on Software Architecture</title>
				<imprint>
			<publisher>Kluwer Academic Publishers</publisher>
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Reuse Concepts and a Reuse Support Repository</title>
		<author>
			<persName><forename type="first">J</forename><surname>Halaris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">T</forename><surname>Geroupoulus</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE Symposium and Workshop on Engineering of Computer Based Systems</title>
				<imprint>
			<date type="published" when="1996">1996</date>
			<biblScope unit="page" from="27" to="34" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Portland Pattern Repository&apos;s Wiki. Pattern Forms</title>
		<ptr target="http://c2.com/cgi/wiki?PatternForms" />
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Pattern-oriented analysis and design: composing patterns to design software systems</title>
		<author>
			<persName><forename type="first">S</forename><surname>Yacoub</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Ammar</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
			<publisher>Addison-Wesley</publisher>
			<pubPlace>Boston</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A polymorphic context frame to support scalability and evolvability of information system development processes</title>
		<author>
			<persName><forename type="first">I</forename><surname>Mirbel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Sixth International Conference on Enterprise Information Systems</title>
				<meeting>the Sixth International Conference on Enterprise Information Systems</meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">3</biblScope>
			<biblScope unit="page" from="131" to="139" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">OMG Reusable Asset Specification</title>
	</analytic>
	<monogr>
		<title level="m">OMG Adopted Specification ptc</title>
				<imprint>
			<biblScope unit="page" from="4" to="06" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Databases in Software Engineering: A Roadmap</title>
		<author>
			<persName><forename type="first">K</forename><surname>Dittrich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Tombros</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Geppert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">22nd International Conference on Software Engineering</title>
				<imprint>
			<publisher>Assn for Computing Machinery</publisher>
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
	<note>The Future of Software Engineering</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Active Artefact Management for Distributed Software Engineering</title>
		<author>
			<persName><forename type="first">C</forename><surname>Boldyreff</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Nutter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Rank</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 26th Annual International Computer Software and Applications Conference</title>
				<meeting>the 26th Annual International Computer Software and Applications Conference</meeting>
		<imprint>
			<publisher>IEEE Computer Press</publisher>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page" from="1081" to="1086" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Data management and model management: a relational synthesis</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">W</forename><surname>Blanning</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th annual Southeast regional conference</title>
				<meeting>the 20th annual Southeast regional conference</meeting>
		<imprint>
			<date type="published" when="1982">1982</date>
			<biblScope unit="page" from="139" to="147" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A relational algebraic framework for models management</title>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">C</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">B</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">G</forename><surname>Kim</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 26th conference on Winter simulation</title>
				<meeting>the 26th conference on Winter simulation</meeting>
		<imprint>
			<date type="published" when="1994">1994</date>
			<biblScope unit="page" from="649" to="656" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">An Introduction to Database Systems</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">J</forename><surname>Date</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<publisher>Pearson/Addison Wesley</publisher>
			<pubPlace>Boston</pubPlace>
		</imprint>
	</monogr>
	<note>8th edn</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Towards Generating Object-Relational Software Engineering Repositories</title>
		<author>
			<persName><forename type="first">W</forename><surname>Mahnke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Ritter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">P</forename><surname>Steiert</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Proc. Datenbanken in Büro, Technik und Wissenschaft</title>
		<imprint>
			<date type="published" when="1999">1999</date>
		</imprint>
		<respStmt>
			<orgName>University of Kaiserslautern</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">UML Pattern Language</title>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">A</forename><surname>Evitts</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2000">2000</date>
			<publisher>Macmillian Technical Publishing</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">An Overview of Repository Technology</title>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">A</forename><surname>Bernstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Dayal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th International Conference on Very Large Data Bases</title>
				<meeting>the 20th International Conference on Very Large Data Bases</meeting>
		<imprint>
			<date type="published" when="1994">1994</date>
			<biblScope unit="page" from="705" to="713" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<author>
			<persName><forename type="first">P</forename><surname>Gulutzan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Pelzer</surname></persName>
		</author>
		<title level="m">SQL-99 Complete</title>
				<meeting><address><addrLine>USA</addrLine></address></meeting>
		<imprint>
			<publisher>Really. Miller Freeman</publisher>
			<date type="published" when="1999">1999. 1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Enterprise Information System Strategic Analysis and Development: Forming Information System Development Space in an Enterprise</title>
		<author>
			<persName><forename type="first">M</forename><surname>Roost</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kuusik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Rava</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Veskioja</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Conference on Computational Intelligence</title>
				<meeting>the International Conference on Computational Intelligence</meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="215" to="219" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">Information Modeling and Relational Databases. From Conceptual Analysis to Logical Design</title>
		<author>
			<persName><forename type="first">T</forename><surname>Halpin</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2001">2001</date>
			<publisher>Morgan Kaufman Publishers</publisher>
			<pubPlace>San Francisco</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Pattern and Component Markup Language</title>
		<ptr target="http://www.objectventure.net/files/docs/PCMLSpecification.pdf" />
		<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
	<note>Draft 3</note>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<title level="m" type="main">Design Patterns: Elements of Reusable Object-Oriented Software</title>
		<author>
			<persName><forename type="first">E</forename><surname>Gamma</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Helm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Johnson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Vlissides</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1995">1995</date>
			<publisher>Addison Wesley</publisher>
			<pubPlace>Reading Mass</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Methods for Searching Patterns from the Database of Patterns</title>
		<author>
			<persName><forename type="first">E</forename><surname>Eessaar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The 16th Conference on Advanced Information Systems Engineering Forum Proceedings</title>
				<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="103" to="111" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Answering Queries Using Limited External Query Processors</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">Y</forename><surname>Levy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rajaraman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Ullman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the fifteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems</title>
				<meeting>the fifteenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems</meeting>
		<imprint>
			<date type="published" when="1996">1996</date>
			<biblScope unit="page" from="227" to="237" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Meta Object Facility (MOF) Specification</title>
	</analytic>
	<monogr>
		<title level="j">Version</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">A Model-Driven Architecture of Enterprise Information System as the Space for Information Systems Development</title>
		<author>
			<persName><forename type="first">M</forename><surname>Roost</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kuusik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Rava</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Veskioja</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The 16th Conference on Advanced Information Systems Engineering Forum Proceedings</title>
				<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page">194</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Enterprise Edition</title>
		<ptr target="http://www.opengroup.org/architecture/togaf8-doc/arch" />
	</analytic>
	<monogr>
		<title level="m">TOGAF</title>
				<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">8</biblScope>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
