What is Software Architecture to Practitioners: A Survey
Mert Ozkaya
2016
Abstract
Software architecture has been proposed in the nineties as a high-level software design method for specifying software systems in terms of components and their relation. Since then, software architectures have become an indispensable part of software design. However, it remains dubious to what extent practitioners use software architectures in their software design. To better understand this, we conduct a survey study among a number of practitioners from both industry and academia and aim at understanding their level of knowledge and experience in software architectures. Our survey consists of a questionnaire of 20 questions, presented in four distinct sections. We run our survey on 50 participants, 11 of whom are from academia and the rest 39 are from industry. As a result of our analysis, we reached the following conclusion: while software architecture is highly crucial for practitioners given the nature of their software projects, practitioners’ knowledge on software architectures is too limited. Practitioners use Unified Modelling Language (UML), which views software architectures as a method of communicating system structures. However, other aspects such as architectural analysis are equally crucial in detecting design errors and verifying software designs for quality properties.
References
- Allen, R. and Garlan, D. (1997). A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol., 6(3):213-249.
- Bergstra, J. A. (2001). Handbook of Process Algebra. Elsevier Science Inc., New York, NY, USA.
- Canal, C., Pimentel, E., and Troya, J. M. (1999). Specification and refinement of dynamic software architectures. In Donohoe, P., editor, WICSA, volume 140 of IFIP Conference Proceedings, pages 107-126. Kluwer.
- Clements, P. C. (1996). A survey of architecture description languages. In Proceedings of the 8th International Workshop on Software Specification and Design, IWSSD 7896, pages 16-, Washington, DC, USA. IEEE Computer Society.
- Clements, P. C., Garlan, D., Little, R., Nord, R. L., and Stafford, J. A. (2003). Documenting software architectures: Views and beyond. In Clarke, L. A., Dillon, L., and Tichy, W. F., editors, ICSE, pages 740-741. IEEE Computer Society.
- Fuxman, A. D. (2000). A survey of architecture description languages. Technical Report CSRG-407, Department of Computer Science,University of Toronto, Toronto, Ontario, Canada M5S 3G4.
- Garlan, D. and Shaw, M. (1994). An introduction to software architecture. Technical report, Pittsburgh, PA, USA.
- Hoare, C. A. R. (1978). Communicating sequential processes. Commun. ACM, 21(8):666-677.
- Holzmann, G. J. (2004). The SPIN Model Checker - primer and reference manual. Addison-Wesley.
- Ivers, J., Clements, P., Garlan, D., Nord, R., Schmerl, B., and Silva, J. R. O. (2004). Documenting component and connector views with UML 2.0. Technical Report CMU/SEI-2004-TR-008, Software Engineering Institute (Carnegie Mellon University).
- Luckham, D. C. (1996). Rapide: A language and toolset for simulation of distributed systems by partial orderings of events. Technical report, Stanford University, Stanford, CA, USA.
- Magee, J. and Kramer, J. (1996). Dynamic structure in software architectures. In SIGSOFT FSE, pages 3-14.
- Magee, J., Kramer, J., and Giannakopoulou, D. (1997). Analysing the behaviour of distributed software architectures: a case study. In FTDCS, pages 240-247. IEEE Computer Society.
- Malavolta, I., Lago, P., Muccini, H., Pelliccione, P., and Tang, A. (2012). What industry needs from architectural languages: A survey. IEEE Transactions on Software Engineering, 99.
- Medvidovic, N. and Taylor, R. N. (2000). A classification and comparison framework for software architecture description languages. IEEE Trans. Software Eng., 26(1):70-93.
- Meyer, B. (1992). Applying “Design by Contract”. IEEE Computer, 25(10):40-51.
- Milner, R., Parrow, J., and Walker, D. (1992). A calculus of mobile processes, i. Inf. Comput., 100(1):1-40.
- Ozkaya, M. and Kloukinas, C. (2014). Design-bycontract for reusable components and realizable architectures. In Seinturier, L., de Almeida, E. S., and Carlson, J., editors, CBSE'14, Proceedings of the 17th International ACM SIGSOFT Symposium on Component-Based Software Engineering (part of CompArch 2014), Marcq-en-Baroeul, Lille, France, June 30 - July 4, 2014, pages 129-138. ACM.
- Perry, D. E. and Wolf, A. L. (1992). Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes, 17(4):40-52.
- Plasil, F. and Visnovsky, S. (2002). Behavior protocols for software components. IEEE Trans. Software Eng., 28(11):1056-1076.
- Reussner, R., Poernomo, I., and Schmidt, H. (2003). Reasoning about Software Architectures with Contractually Specified Components. In Cechich, A., Piattini, M., and Vallecillo, A., editors, Component-Based Software Quality, volume 2693 of Lecture Notes in Computer Science, page 287âA?¸S325. Springer Berlin Heidelberg.
- Rumbaugh, J. E., Jacobson, I., and Booch, G. (1999). The unified modeling language reference manual . Addison-Wesley-Longman.
- Shaw, M., DeLine, R., Klein, D. V., Ross, T. L., Young, D. M., and Zelesnik, G. (1995). Abstractions for software architecture and tools to support them. IEEE Trans. Software Eng., 21(4):314-335.
- Spivey, J. M. (1992). Z Notation - a reference manual (2. ed.). Prentice Hall International Series in Computer Science. Prentice Hall.
- Taylor, R. N., Medvidovic, N., Anderson, K. M., Jr., E. J. W., Robbins, J. E., Nies, K. A., Oreizy, P., and Dubrow, D. L. (1996). A component- and messagebased architectural style for gui software. IEEE Trans. Software Eng., 22(6):390-406.
- Vestal, S. (1993). A cursory overview and comparison of four architecture description languages. Technical report, Honeywell Technology Center.
- Woods, E. and Hilliard, R. (2005). Architecture description languages in practice session report. In Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture, WICSA 7805, pages 243-246, Washington, DC, USA. IEEE Computer Society.
Paper Citation
in Harvard Style
Ozkaya M. (2016). What is Software Architecture to Practitioners: A Survey . In Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-168-7, pages 677-686. DOI: 10.5220/0005826006770686
in Bibtex Style
@conference{modelsward16,
author={Mert Ozkaya},
title={What is Software Architecture to Practitioners: A Survey},
booktitle={Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2016},
pages={677-686},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005826006770686},
isbn={978-989-758-168-7},
}
in EndNote Style
TY - CONF
JO - Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - What is Software Architecture to Practitioners: A Survey
SN - 978-989-758-168-7
AU - Ozkaya M.
PY - 2016
SP - 677
EP - 686
DO - 10.5220/0005826006770686