<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
	<front>
		<journal-meta>
			<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
			<journal-title-group>
				<journal-title>Informatica</journal-title>
			</journal-title-group>
			<issn pub-type="epub">0868-4952</issn>
			<issn pub-type="ppub">0868-4952</issn>
			<publisher>
				<publisher-name>VU</publisher-name>
			</publisher>
		</journal-meta>
		<article-meta>
			<article-id pub-id-type="publisher-id">inf22209</article-id>
			<article-id pub-id-type="doi">10.15388/Informatica.2011.328</article-id>
			<article-categories>
				<subj-group subj-group-type="heading">
					<subject>Research article</subject>
				</subj-group>
			</article-categories>
			<title-group>
				<article-title>Software Engineering Paradigm Independent Design Problems, GoF 23 Design Patterns, and Aspect Design</article-title>
			</title-group>
			<contrib-group>
				<contrib contrib-type="Author">
					<name>
						<surname>Vaira</surname>
						<given-names>Žilvinas</given-names>
					</name>
					<xref ref-type="aff" rid="j_INFORMATICA_aff_000"/>
				</contrib>
				<contrib contrib-type="Author">
					<name>
						<surname>Čaplinskas</surname>
						<given-names>Albertas</given-names>
					</name>
					<email xlink:href="mailto:albertas.caplinskas@mii.vu.lt">albertas.caplinskas@mii.vu.lt</email>
					<xref ref-type="aff" rid="j_INFORMATICA_aff_000"/>
				</contrib>
				<aff id="j_INFORMATICA_aff_000">Vilnius University Institute of Mathematics and Informatics, Akademijos 4, LT-08663 Vilnius, Lithuania</aff>
			</contrib-group>
			<pub-date pub-type="epub">
				<day>01</day>
				<month>01</month>
				<year>2011</year>
			</pub-date>
			<volume>22</volume>
			<issue>2</issue>
			<fpage>289</fpage>
			<lpage>317</lpage>
			<history>
				<date date-type="received">
					<day>01</day>
					<month>10</month>
					<year>2010</year>
				</date>
				<date date-type="accepted">
					<day>01</day>
					<month>05</month>
					<year>2011</year>
				</date>
			</history>
			<abstract>
				<p>The aim of the paper is to investigate applicability of object-oriented software design patterns in the context of aspect-oriented design. The paper analyses which of the GoF 23 patterns have a meaning in this context and how they are affected by it. The main assumption is that there exist design patterns that solve software engineering paradigm independent design problems and that such patterns, in the contrast to the patterns solving paradigm-specific design problems, can be expressed in terms of any software engineering paradigm. However, the paper deals only with two paradigms: aspect-oriented (AO) paradigm and object-oriented (OO) paradigm. It proposes a classification of design problems based on this assumption and a technique for redesigning object-oriented patterns into pure aspect-oriented ones. It presents a number of examples how to apply this technique and discusses the results obtained. The results show that 20 of the GoF 23 design patterns solve such design problems that are common at least for both mentioned paradigms and demonstrate in which way these patterns can be adapted for the needs of aspect-oriented design.</p>
			</abstract>
			<kwd-group>
				<label>Keywords</label>
				<kwd>aspect-oriented programming</kwd>
				<kwd>object-oriented programming</kwd>
				<kwd>design patterns</kwd>
				<kwd>paradigm-independent and paradigm-specific design problems</kwd>
				<kwd>aspect-oriented patterns and idioms</kwd>
			</kwd-group>
		</article-meta>
	</front>
</article>