Effort Estimation for Architectural Refactoring to Introduce Module Isolation

  • Fatih Öztürk
  • Erdem Sarılı
  • Hasan Sözer
  • Barış Aktemur
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Keywords

Software architecture reverse engineering refactoring module isolation effort estimation dependability security 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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)CrossRefGoogle Scholar
  3. 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)CrossRefGoogle Scholar
  4. 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. 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. 6.
    Fenton, N., Pfleeger, S.: Software Metrics: A Rigorous and Practical Approach, 2nd edn. Thomson Learning Inc. (2002)Google Scholar
  7. 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. 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)CrossRefGoogle Scholar
  9. 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)CrossRefGoogle Scholar
  10. 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. 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)CrossRefGoogle Scholar
  12. 12.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)CrossRefGoogle Scholar
  13. 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. 14.
    Sozer, H., Tekinerdogan, B., Aksit, M.: Optimizing decomposition of software architecture for local recovery. Software Quality Journal 21(2), 203–240 (2013)CrossRefGoogle Scholar
  15. 15.
    Wahbe, R., Lucco, S., Anderson, T., Graham, S.L.: Efficient software-based fault isolation. SIGOPS Operating Systems Review 27(5), 203–216 (1993)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Fatih Öztürk
    • 1
  • Erdem Sarılı
    • 1
  • Hasan Sözer
    • 2
  • Barış Aktemur
    • 2
  1. 1.Vestel ElectronicsManisaTurkey
  2. 2.Department of Computer ScienceOzyegin UniversityIstanbulTurkey

Personalised recommendations