Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Modularity analysis of use case implementations

Published: 01 April 2012 Publication History

Abstract

A component-based decomposition can result in implementations having use cases code tangled with other concerns and scattered across components. Modularity mechanisms such as aspects, mixins, and virtual classes have been proposed to address this kind of problem. One can use such mechanisms to group together code related to a single use case. This paper quantitatively analyzes the impact of this kind of use case modularization. We apply one specific technique, aspect oriented programming, to modularize the use case implementations of two information systems that conform to the layered architecture pattern. We extract traditional and contemporary metrics - including cohesion, coupling, and separation of concerns - to analyze modularity in terms of quality attributes such as changeability, support for independent development, and pluggability. Our findings indicate that the results of a given modularity analysis depend on other factors beyond the chosen system, metrics, and the applied modularity technique.

References

[1]
Open modules: Modular reasoning about advice. In: 19th European Conference on Object-Oriented Programming, pp. 144-168.
[2]
How AspectJ is used: an analysis of eleven AspectJ programs. Journal of Object Technology. v9 i1. 117-142.
[3]
An overview of CaesarJ. Transactions on Aspect-Oriented Software Development I. 135-173.
[4]
Overview of CaesarJ. Transactions on Aspect-Oriented Software Development. v3880. 135-173.
[5]
The goal question metric approach. Encyclopedia of Software Engineering. v1. 528-532.
[6]
Bhole, M., Lieberherr, K.J., 2004. Use Case Modularity Using Aspect-oriented Programming, Technical Report. College of Computer and Information Science, Northeastern University, USA.
[7]
Pattern-oriented Software Architecture: A System of Patterns. Wiley.
[8]
Exceptions and aspects: the devil is in the details. In: 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Citeseer, pp. 152-162.
[9]
Measuring the effects of software aspectization. In: 1st Workshop on Aspect Reverse Engineering, pp. 1-5.
[10]
A metrics suite for object oriented design. IEEE Transactions on Software Engineering. v20 i6. 476-493.
[11]
Building Reliable Component-based Software Systems. Artech House Publishers.
[12]
Modularity analysis of use case implementations. In: 4th Brazilian Symposium on Software Components, Architectures and Reuse, pp. 11-20.
[13]
Dijkstra, E., 1969. Notes on Structured Programming, Technical Report. Technological University Eindhoven, Department of Mathematics, The Netherlands.
[14]
Identifying, assigning, and quantifying crosscutting concerns. In: 1st International Workshop on Assessment of Contemporary Modularization Techniques, pp. 1-6.
[15]
Do crosscutting concerns cause defects?. IEEE Transactions on Software Engineering. v34 i4. 497-515.
[16]
Classes and mixins. In: 25th Symposium on Principles of Programming Languages (POPL), pp. 171-183.
[17]
Modularizing design patterns with aspects: a quantitative study. Transactions on Aspect-Oriented Software Development. v1 i1. 36-74.
[18]
On the impact of aspectual decompositions on design stability: an empirical study. In: 21st European Conference on Object-Oriented Programming, pp. 176-200.
[19]
Component-based Software Engineering: Putting the Pieces Together. Addison-Wesley.
[20]
Mapping use case level aspects to ObjectTeams/Java. In: Workshop on Early Aspects, 19th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 1-8.
[21]
Object teams: improving modularity for crosscutting collaborations. In: Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World, pp. 248-264.
[22]
Use cases and aspects-working seamlessly together. Journal of Object Technology. v2 i4. 7-28.
[23]
Aspect-oriented programming. In: 11th European Conference on Object-Oriented Programming, pp. 220-242.
[24]
An overview of AspectJ. ECOOP 2001-Object-Oriented Programming. 327-354.
[25]
Quantifying the effects of aspect-oriented programming: A maintenance study. In: 22nd IEEE International Conference on Software Maintenance, ICSM'06, pp. 223-233.
[26]
Programming with abstract data types. In: ACM SIGPLAN Symposium on Very High Hevel Languages, pp. 50-59.
[27]
Object-Oriented Software Construction. Prentice-Hall.
[28]
The modular structure of complex systems. In: Proceedings of the 7th International Conference on Software Engineering, IEEE Press. pp. 417
[29]
Ptolemy: a language with quantified, typed events. In: 22nd European Conference on Object-Oriented Programming, pp. 155-179.
[30]
Persistence as an aspect. In: 2nd International Conference on Aspect-oriented Software Development, pp. 120-129.
[31]
On the reuse and maintenance of aspect-oriented software: an assessment framework. In: 17th Brazilian Symposium on Software Engineering, pp. 19-34.
[32]
Implementing distribution and persistence aspects with AspectJ. In: 17th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, ACM. pp. 174-190.
[33]
Distribution and persistence as aspects. Software Practice and Experience. v36 i7. 711-759.
[34]
Software Engineering. Addison-Wesley.
[35]
Types and modularity for implicit invocation with implicit announcement. ACM Transactions on Software Engineering and Methodology. v20 i1. 1-43.
[36]
Sung, J., Lieberherr, K., 2002. DAJ: a case study of extending AspectJ, Technical Report. Northeastern University.
[37]
Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer.

Cited By

View all
  • (2017)Employing issues and commits for in-code sentence based use case identification and remodularizationProceedings of the Fifth European Conference on the Engineering of Computer-Based Systems10.1145/3123779.3123792(1-8)Online publication date: 31-Aug-2017
  • (2016)UCFrameACM SIGSOFT Software Engineering Notes10.1145/2894784.289479541:2(1-13)Online publication date: 11-May-2016

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 85, Issue 4
April, 2012
258 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 April 2012

Author Tags

  1. Aspect-oriented programming
  2. Empirical software engineering
  3. Modularity
  4. Use cases

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Employing issues and commits for in-code sentence based use case identification and remodularizationProceedings of the Fifth European Conference on the Engineering of Computer-Based Systems10.1145/3123779.3123792(1-8)Online publication date: 31-Aug-2017
  • (2016)UCFrameACM SIGSOFT Software Engineering Notes10.1145/2894784.289479541:2(1-13)Online publication date: 11-May-2016

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media