<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ArticleSet PUBLIC "-//NLM//DTD PubMed 2.7//EN" "https://dtd.nlm.nih.gov/ncbi/pubmed/in/PubMed.dtd">
<ArticleSet>
<Article>
<Journal>
				<PublisherName>University of Kashan</PublisherName>
				<JournalTitle>Soft Computing Journal</JournalTitle>
				<Issn>2322-3707</Issn>
				<Volume>4</Volume>
				<Issue>1</Issue>
				<PubDate PubStatus="epublish">
					<Year>2021</Year>
					<Month>05</Month>
					<Day>23</Day>
				</PubDate>
			</Journal>
<ArticleTitle>A systematic review on aspect-oriented software engineering: Phases, techniques, and challenges</ArticleTitle>
<VernacularTitle>A systematic review on aspect-oriented software engineering: Phases, techniques, and challenges</VernacularTitle>
			<FirstPage>56</FirstPage>
			<LastPage>73</LastPage>
			<ELocationID EIdType="pii">111392</ELocationID>
			
			
			<Language>FA</Language>
<AuthorList>
<Author>
					<FirstName>Farhad</FirstName>
					<LastName>Alaei</LastName>
<Affiliation></Affiliation>

</Author>
<Author>
					<FirstName>Abbas</FirstName>
					<LastName>Rasoolzadegan</LastName>
<Affiliation></Affiliation>

</Author>
</AuthorList>
				<PublicationType>Journal Article</PublicationType>
			<History>
				<PubDate PubStatus="received">
					<Year>2021</Year>
					<Month>05</Month>
					<Day>23</Day>
				</PubDate>
			</History>
		<Abstract>Aspect-oriented engineering has been introduced as a new development approach based on modularization in order to increase the maintainability and reusability of software. Aspect-oriented software engineering uses the concept of aspect to modularize crosscutting concerns. Today, this approach is considered in the both research and industrial environments. Different methods has been proposed for implementing the various phases of software development based on aspect orientation. Each of these methods accompanied with privileges, restrictions, and a variety of functionality. With respect to the diversity of these methods, a comprehensive, complete, and systematic literature review needs to be proposed. The purpose of this paper is to review the aspect-oriented development methods and determine their comparative differences in order to obtain the major challenges in this field. To do so, these methods are classified based on the software development phases. The strengths and limitations of them are also described. The results make it possible to select the most appropriate method in each phase of software development for engineers and researchers in this field.</Abstract>
			<OtherAbstract Language="FA">Aspect-oriented engineering has been introduced as a new development approach based on modularization in order to increase the maintainability and reusability of software. Aspect-oriented software engineering uses the concept of aspect to modularize crosscutting concerns. Today, this approach is considered in the both research and industrial environments. Different methods has been proposed for implementing the various phases of software development based on aspect orientation. Each of these methods accompanied with privileges, restrictions, and a variety of functionality. With respect to the diversity of these methods, a comprehensive, complete, and systematic literature review needs to be proposed. The purpose of this paper is to review the aspect-oriented development methods and determine their comparative differences in order to obtain the major challenges in this field. To do so, these methods are classified based on the software development phases. The strengths and limitations of them are also described. The results make it possible to select the most appropriate method in each phase of software development for engineers and researchers in this field.</OtherAbstract>
		<ObjectList>
			<Object Type="keyword">
			<Param Name="value">aspect orientation</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">concern</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">separation of concerns</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">aspect-oriented software engineering</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">requirements</Param>
			</Object>
			<Object Type="keyword">
			<Param Name="value">crosscutting concerns</Param>
			</Object>
		</ObjectList>
<ArchiveCopySource DocType="pdf">https://scj.kashanu.ac.ir/article_111392_867168bb4361b523a66cd7276cf58bb0.pdf</ArchiveCopySource>
</Article>
</ArticleSet>
