Skip to main content

Effort Estimation for Architectural Refactoring to Introduce Module Isolation

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8627))

Abstract

The decomposition of software architecture into modular units is driven by both functional and quality concerns. Dependability and security are among quality concerns that require a software to be decomposed into separate units isolated from each other. However, it appears that this decomposition is usually not aligned with the decomposition based on functional concerns. As a result, introducing module isolation forced by quality attributes, while preserving the existing decomposition, is not trivial and requires a substantial refactoring effort. In this work, we introduce an approach and a toolset to predict this effort prior to refactoring activities. As such, a selection can be made among potential decomposition alternatives based on quantitative estimations. These estimations are obtained from scalable analysis of module dependencies based on a graph database and reusable query templates. We discuss our experiences and evaluate our approach on a code base used in a commercial Digital TV and Set-top Box software.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alsmadi, I., Nuser, M.: Evaluation of cost estimation metrics: Towards a unified terminology. Journal of Computing and Information Technology 21(1), 23–34 (2013)

    Google Scholar 

  2. Avizienis, A., Laprie, J.C., Randell, B., Landwehr, C.: Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on Dependable and Secure Computing 1(1), 11–33 (2004)

    Article  Google Scholar 

  3. Buskens, R., Gonzalez, O.: Model-centric development of highly available software systems. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems IV. LNCS, vol. 4615, pp. 163–187. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  4. Candea, G., Fox, A.: Crash-only software. In: 9th Workshop on Hot Topics in Operating Systems (HotOS), pp. 67–72. USENIX Assoc., Berkeley (2003)

    Google Scholar 

  5. Clements, P.C., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R., Stafford, J.A.: Documenting Software Architectures: Views and Beyond, 2nd edn. Addison-Wesley (2010)

    Google Scholar 

  6. Fenton, N., Pfleeger, S.: Software Metrics: A Rigorous and Practical Approach, 2nd edn. Thomson Learning Inc. (2002)

    Google Scholar 

  7. Herder, J.N., Bos, H., Gras, B., Homburg, P., Tanenbaum, A.S.: Failure resilience for device drivers. In: 37th IEEE/IFIP International Conference on Dependable Systems and Networks, Edinburgh, UK, pp. 41–50 (2007)

    Google Scholar 

  8. Holzschuher, F., Peinl, R.: Performance of Graph Query Languages: Comparison of Cypher, Gremlin and Native Access in Neo4J. In: EDBT/ICDT 2013 Workshops, pp. 195–204. ACM, New York (2013)

    Chapter  Google Scholar 

  9. Hunt, G., Aiken, M., Fähndrich, M., Hawblitzel, C., Hodson, O., Larus, J., Levi, S., Steensgaard, B., Tarditi, D., Wobber, T.: Sealing OS processes to improve dependability and safety. SIGOPS Oper. Syst. Rev. 41(3), 341–354 (2007)

    Article  Google Scholar 

  10. Lattner, C., Adve, V.: LLVM: A compilation framework for lifelong program analysis & transformation. In: Int. Symposium on Code Generation and Optimization (CGO), pp. 75–87. IEEE Computer Society, San Jose (2004)

    Google Scholar 

  11. Mitschke, R., Eichberg, M., Mezini, M., Garcia, A., Macia, I.: Modular specification and checking of structural dependencies. In: 12th Int. Conference on Aspect-oriented Software Development (AOSD), pp. 85–96. ACM, New York (2013)

    Chapter  Google Scholar 

  12. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  13. Sozer, H., Tekinerdogan, B., Aksit, M.: Flora: A framework for decomposing software architecture to introduce local recovery. Software: Practice and Experience 39(10), 869–889 (2009)

    Google Scholar 

  14. Sozer, H., Tekinerdogan, B., Aksit, M.: Optimizing decomposition of software architecture for local recovery. Software Quality Journal 21(2), 203–240 (2013)

    Article  Google Scholar 

  15. Wahbe, R., Lucco, S., Anderson, T., Graham, S.L.: Efficient software-based fault isolation. SIGOPS Operating Systems Review 27(5), 203–216 (1993)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Öztürk, F., Sarılı, E., Sözer, H., Aktemur, B. (2014). Effort Estimation for Architectural Refactoring to Introduce Module Isolation. In: Avgeriou, P., Zdun, U. (eds) Software Architecture. ECSA 2014. Lecture Notes in Computer Science, vol 8627. Springer, Cham. https://doi.org/10.1007/978-3-319-09970-5_26

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-09970-5_26

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-09969-9

  • Online ISBN: 978-3-319-09970-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics