comparison to other (previous) versions of
system/application architectural designs and in
successive versions of software products. In
Maciaszek (2008b) we discussed the ways of using
DSM (Dependency Structure Matrix) for the
analysis and comparison of system/software
complexity. Today many tools exist that support the
DSM method and that additionally integrate with
popular IDE-s, such as Eclipse, Visual Studio or
IntelliJ.
The tool support is important here as the
complexity management has both forward and
reverse-engineering dimension. The software needs
to be forward-engineered according to its
architectural design, but we also need to validate the
code conformance with the architectural principles.
Contemporary tools offer visualization of
dependencies in the code-base not just at particular
levels, such as method-to-method, class-to-class,
directory-to-directory, but also across levels, such as
function-to-type, namespace-to-class, jar-to-method.
One of such tools is Structure101 (Structure, 2014).
Structure101 and most other tools are
predominantly reverse engineering tools, more
reactive than proactive. Structure101 provides,
however, a specialized module, called Architecture
Development Environment (ADE), to define
architectural rules and guide conformance inside an
IDE. The “proactivity” remains at the architecture
(instantiation) level and meta-architecture is offered
by the tool itself, but we plan to use ADE to define
the STCBMER principles for various industrial
studies and software development projects.
REFERENCES
Agazzi, E., 2002. What is Complexity? In Agazzi, E.,
Montecucco, L. (Eds) Complexity and Emergence.
Proceedings of the Annual Meeting of the
International Academy of the Philosophy of Science,
pp. 3-11, World Scientific.
Alur, D., Crupi, J., Malks, D., 2003. Core J2EE Patterns:
Best Practices and Design Strategies, 2nd ed.,
Prentice Hall.
Capra, F. (1982): The Turning Point. Science, Society, and
the Rising Culture. Flamingo.
Cusumano, M.A., 2008. The Changing Software Business:
Moving from Products to Services, IEEE Computer,
January, pp.20-27.
Eppinger, S.D., Browning T.R., 2012. Design Structure
Matrix Methods and Applications, The MIT Press.
Fenton, N.E., Pfleeger, S.L., 1997. Software Metrics. A
Rigorous and Practical Approach, 2nd ed., PWS
Publishing Company.
Fowler, M., 2003. Patterns of Enterprise Application
Architecture, Addison-Wesley.
Glass, R.L., 2005. The Link Between Software Quality
and Software Maintenance. IT Metrics and
Productivity Journal, November, p.29.
ISO, 2011. International Standard ISO/IEC 2510: Systems
and Software Engineering - Systems and Software
Quality Requirements and Evaluation (SQuaRE) -
System and Software Quality Models, ISO/IEC.
Koestler, A., 1980. Bricks to Babel, Random House.
Koestler, A., 1967. The Ghost in the Machine, Penguin
Group, London.
Maciaszek, L.A., 2008a. Adaptive Integration of
Enterprise and B2B Applications. In Filipe, J.,
Shishkov, B., Helfert, M. (Eds), ICSOFT 2006, CCIS
10 Springer-Verlag.
Maciaszek, L.A., 2007. An Investigation of Software
Holons - The 'adHOCS' Approach. In Argumenta
Oeconomica Vol.19, No.1-2, pp.1-40.
Maciaszek, L.A., 2008b. Analiza struktur zależności w
zarządzaniu intencją architektoniczną systemu
(Dependency Structure Analysis for Managing
Architectural Intent), In Huzar, Z., Mazur, Z. (Eds),
Inżynieria Oprogramowania – Od Teorii do Praktyki,
pp.13-26, Wydawnictwa Komunikacji i Łączności,
Warszawa.
Maciaszek, L.A., 2009. Architecture-Centric Software
Quality Management, In Cordeiro, J., Hammoudi, S.,
Filipe, J. (Eds), Web Information Systems and
Technologies, WEBIST 2008, LNBIP 18, Springer.
Maciaszek, L.A., 2006. From Hubs Via Holons to an
Adaptive Meta-Architecture – the “AD-HOC”
Approach. In Sacha, K. (Ed.), IFIP International
Federation for Information Processing, Vol. 227,
Software Engineering Techniques: Design for Quality,
pp.1-13, Springer.
Maciaszek, L.A., Liong, B.L., 2005. Practical Software
Engineering. A Case-Study Approach. Addison-
Wesley.
OMG, 2009. Unified Modeling Language™ (OMG UML),
Superstructure, Version 2.2.
Perepletchikov, M., Ryan, C., 2011: A Controlled
Experiment for Evaluating the Impact of Coupling on
the Maintainability of Service-Oriented Software,
IEEE Trans. On Soft. Eng., Vol. 37, No. 4, pp.449-465
Sangal, N. Jordan, E. Sinha, V., Jackson, D., 2005. Using
Dependency Models to Manage Complex Software
Architecture, In Procs. OOPSLA’05, pp.167-176,
ACM.
Structure, 2014. Structure101, http://structure101.com/,
viewed February 2014.
Wang Yi., Wang Ying (2013). A Survey of Change
Management in Service-Based Environments, In
SOCA, pp.259-273, Springer
Wing, J.M., 2008. Five Deep Questions in Computing.
Comm. of the ACM, Vol. 51, No.1, pp.58-60.
Fourth International Symposium on Business Modeling and Software Design
28