ABSTRACT
For a software-intensive system, software quality measures how well the software is designed and how well the software conforms to that design, whereas architecture of a software system is typically defined as the fundamental organization of the system embodied in its components, their relationships to each other and the environment, and the principles governing the system's design and evolution. Obviously, as long as there were no software systems, governing their architecture was no problem at all; when there were only small systems, governing their architecture became a mild problem; and now we have gigantic software systems, and governing their architecture has become an equally gigantic problem (to paraphrase Edsger Dijkstra). In this paper we propose a unified approach to the problem of governing (or managing) the knowledge about architecture of software systems and demonstrate by example its impact on a certain software project. First we postulate that only the holistic approach that supports continuous integration and verification for all system architectural artifacts is one worth taking. Next we demonstrate by example how a concrete large software project being developed in an agile approach is being perceived using the model in question
- S. Beydeda and V. Gruhn, State of the art in testing components, Quality Software, 2003. Proceedings. Third International Conference on.IEEE, pp. 146--153, 2004. Google ScholarDigital Library
- R. Dąbrowski, K. Stencel, and G. Timoszuk, Software is a directed multigraph, ECSA, Lecture Notes in Computer Science, I. Crnkovic, V. Gruhn, and M. Book, Eds., vol. 6903. Springer, pp. 360--369, 2011. Google ScholarDigital Library
- J. Derrick and H. Wehrheim, Model transformations across views, Science of Computer Programming, vol. 75, no. 3, pp. 192--210, 2010.Google ScholarCross Ref
- H. Erdogmus, M. Morisio, and M. Torchiano, On the effectiveness of the test-first approach to programming, IEEE Transactions on Software Engineering, vol. 31, pp. 226--237, March 2005. Google ScholarDigital Library
- F. Fleurey, B. Baudry, R. B. France, and S. Ghosh, A generic approach for automatic model composition, MoDELS Workshops, ser. Lecture Notes in Computer Science, H. Giese, Ed., vol. 5002. Springer, pp. 7--15, 2007.Google Scholar
- S. Gossens, F. Belli, S. Beydeda, and M. Dal Cin, View graphs for analysis and testing of programs at different abstraction levels, HASE'05: Proceedings of the Ninth IEEE International Symposium on High-Assurance Systems Engineering. Washington, DC, USA: IEEE Computer Society, pp. 121--130, 2005. Google ScholarDigital Library
- J. Herbsleb, A. Mockus, and J. Roberts, Collaboration in software engineering projects: A theory of coordination, in ICIS 2006 General Topics. Twenty Seventh International Conference on Information Systems, 2006.Google Scholar
- P. Kruchten, P. Lago, H. van Vliet, and T. Wolf, Building up and exploiting architectural knowledge, Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture. Washington, DC, USA: IEEE Computer Society, 2005. Google ScholarDigital Library
- T. Kühne, B. Selic, M.-P. Gervais, and F. Terrier, Eds, Modelling Foundations and Applications, 6th European Conference, ECMFA 2010, Paris, France, June 15--18, 2010. Proceedings, ser. Lecture Notes in Computer Science, vol. 6138. Springer, 2010.Google ScholarCross Ref
- T. Mens and M. Lanza, A graph-based metamodel for object-oriented software metrics, Electronic Notes in Theoretical Computer Science, vol. 72, no. 2, pp. 57--68, graBaTs 2002, Graph-Based Tools (First International Conference on Graph Transformation), 2002.Google ScholarCross Ref
- L. Osterweil, Software processes are software too, Proceedings of the 9th international conference on Software Engineering. Los Alamitos, CA, USA: IEEE Computer Society Press, pp. 2--13, 1987. Google ScholarDigital Library
- P. Tabor and K. Stencel, Stream Execution of Object Queries, Grid and Distributed Computing, Control and Automation, vol. 121, pp. 167--176, 2010.Google Scholar
- Improving software quality by improving architecture management
Recommendations
On architecture warehouses and software intelligence
FGIT'12: Proceedings of the 4th international conference on Future Generation Information TechnologyBy architecture of a software system we typically denote the knowledge about the organization of the system, the relationships among its components and the principles governing their design. By including artifacts coresponding to software engineering ...
Agile software architecture
When the Agile software development became popular in software development communities, some engineers thought that software architecture would die out. But no matter what, a software project will have an architecture, whether documented intentionally ...
System and software architecture reconciliation
Large, complex systems today are increasingly software-intensive. As a result, it is commonly essential that system development methods strongly facilitate good software development, even where to do so departs from traditional systems engineering ...
Comments