Modularizing Crosscutting Concerns in Software

Code modularization provides benefits throughout the software life cycle; however, the presence of crosscutting concerns (CCCs) in software hinders its complete modularization. Traditional modularization techniques work well under the assumption that code being modularized is functionally orthogonal...

Full description

Bibliographic Details
Main Author: Saigal, Nalin
Format: Others
Published: Scholar Commons 2011
Subjects:
Online Access:http://scholarcommons.usf.edu/etd/3327
http://scholarcommons.usf.edu/cgi/viewcontent.cgi?article=4522&context=etd
id ndltd-USF-oai-scholarcommons.usf.edu-etd-4522
record_format oai_dc
spelling ndltd-USF-oai-scholarcommons.usf.edu-etd-45222015-09-30T04:40:59Z Modularizing Crosscutting Concerns in Software Saigal, Nalin Code modularization provides benefits throughout the software life cycle; however, the presence of crosscutting concerns (CCCs) in software hinders its complete modularization. Traditional modularization techniques work well under the assumption that code being modularized is functionally orthogonal to the rest of the code; as a result, software engineers try to separate code segments that are orthogonal in their functionality into distinct modules. However, in practice, software does not decompose neatly into modules with distinct, orthogonal functionality. In this thesis, we investigate the modularization of CCCs in software using two different techniques. Firstly, we discuss IVCon, a GUI-based tool that provides a novel approach to the modularization of CCCs. We have designed IVCon to capture the multi-concern nature of code. IVCon enables users to create, examine, and modify their code in two different views, the woven view and the unwoven view. The woven view displays program code in colors that indicate which CCCs various code segments implement, while the unwoven view displays code in two panels, one showing the core of the program and the other showing all the code implementing each concern in an isolated module. IVCon aims to provide an easy-to-use interface for conveniently creating, examining, and modifying code in, and translating between, the woven and unwoven views. Secondly, we discuss LoPSiL, which is a location-based policy-specification language. LoPSiL is Turing-complete and provides users with language constructs that enable them to manipulate location information; hence, LoPSiL can be used to specify and enforce generic policies that might involve location-based constraints. We have implemented a LoPSiL compiler using AspectJ, and we observe and discuss how the use of traditional units of modularization---aspects in this case---help modularize functionally orthogonal CCCs such as security and auditing. 2011-01-01T08:00:00Z text application/pdf http://scholarcommons.usf.edu/etd/3327 http://scholarcommons.usf.edu/cgi/viewcontent.cgi?article=4522&context=etd default Graduate Theses and Dissertations Scholar Commons Aspect-Oriented Programming Code Maintenance Policy-Specification Languages Security Software Engineering American Studies Arts and Humanities Computer Sciences
collection NDLTD
format Others
sources NDLTD
topic Aspect-Oriented Programming
Code Maintenance
Policy-Specification Languages
Security
Software Engineering
American Studies
Arts and Humanities
Computer Sciences
spellingShingle Aspect-Oriented Programming
Code Maintenance
Policy-Specification Languages
Security
Software Engineering
American Studies
Arts and Humanities
Computer Sciences
Saigal, Nalin
Modularizing Crosscutting Concerns in Software
description Code modularization provides benefits throughout the software life cycle; however, the presence of crosscutting concerns (CCCs) in software hinders its complete modularization. Traditional modularization techniques work well under the assumption that code being modularized is functionally orthogonal to the rest of the code; as a result, software engineers try to separate code segments that are orthogonal in their functionality into distinct modules. However, in practice, software does not decompose neatly into modules with distinct, orthogonal functionality. In this thesis, we investigate the modularization of CCCs in software using two different techniques. Firstly, we discuss IVCon, a GUI-based tool that provides a novel approach to the modularization of CCCs. We have designed IVCon to capture the multi-concern nature of code. IVCon enables users to create, examine, and modify their code in two different views, the woven view and the unwoven view. The woven view displays program code in colors that indicate which CCCs various code segments implement, while the unwoven view displays code in two panels, one showing the core of the program and the other showing all the code implementing each concern in an isolated module. IVCon aims to provide an easy-to-use interface for conveniently creating, examining, and modifying code in, and translating between, the woven and unwoven views. Secondly, we discuss LoPSiL, which is a location-based policy-specification language. LoPSiL is Turing-complete and provides users with language constructs that enable them to manipulate location information; hence, LoPSiL can be used to specify and enforce generic policies that might involve location-based constraints. We have implemented a LoPSiL compiler using AspectJ, and we observe and discuss how the use of traditional units of modularization---aspects in this case---help modularize functionally orthogonal CCCs such as security and auditing.
author Saigal, Nalin
author_facet Saigal, Nalin
author_sort Saigal, Nalin
title Modularizing Crosscutting Concerns in Software
title_short Modularizing Crosscutting Concerns in Software
title_full Modularizing Crosscutting Concerns in Software
title_fullStr Modularizing Crosscutting Concerns in Software
title_full_unstemmed Modularizing Crosscutting Concerns in Software
title_sort modularizing crosscutting concerns in software
publisher Scholar Commons
publishDate 2011
url http://scholarcommons.usf.edu/etd/3327
http://scholarcommons.usf.edu/cgi/viewcontent.cgi?article=4522&context=etd
work_keys_str_mv AT saigalnalin modularizingcrosscuttingconcernsinsoftware
_version_ 1716825311964823552