Back Room Front Room 2
Back Room Front Room 2
Back Room Front Room 2
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MANAGING COMPLEXITY OF<br />
ENTERPRISE INFORMATION SYSTEMS<br />
Leszek A. Maciaszek<br />
Macquarie University, Sydney, Australia<br />
Email: leszek@ics.mq.edu.au<br />
Keywords: Software complexity, software architectures, object dependency management.<br />
Abstract: The complexity of modern software is not that much in the size of systems as it is in the “wires” – in the<br />
linkages and communication paths between system components. The inter-component linkages create<br />
dependencies between distributed components that are difficult to understand and manage. The difficulty is<br />
inflated by the fact that components are frequently developed and managed by separate teams and by<br />
various component providers.<br />
This paper identifies main issues for successful management of complexity in large software projects. It<br />
uses the holon hypothesis to explain that all complex systems of a stable but evolvable character display<br />
hierarchic organization. The paper makes it clear that a complexity-aware architectural design paves the<br />
way for developing supportable systems. It makes it also clear that unless implementation is designconformant<br />
and complexity-assured, the initial good intents may still result in an unsupportable system.<br />
Without rigorous project management, supported by tools able to compute and visualize complexity metrics,<br />
contemporary large software production risks delivering unsupportable systems..<br />
1 INTRODUCTION<br />
Complexity management and dependency<br />
management are two sides of the same coin.<br />
Dependency management is an integral part of<br />
architectural design. Architectural design takes a<br />
proactive approach to managing dependencies in<br />
software. It does so by deciding early in the process<br />
on hierarchical layers of software components and<br />
on dependency firewalls between the layers. This is<br />
a forward-engineering approach – from design to<br />
implementation. The aim is to deliver a software<br />
design that minimizes dependencies by imposing an<br />
architectural solution on programmers.<br />
The outcomes of the proactive approach to<br />
managing dependencies must be monitored by the<br />
reactive approach that aims at measuring<br />
dependencies in implemented software. This is a<br />
reverse-engineering approach – from<br />
implementation to design. The implementation may<br />
or may not conform to the desired architectural<br />
design. If it does not, the aim is to compare the<br />
metric values in the software with the values that the<br />
desired architecture would have delivered. The<br />
troublesome dependencies need to be pinpointed and<br />
addressed.<br />
This paper refers to four fundamental issues in<br />
design of enterprise information systems:<br />
I. Seruca et al. (eds.), Enterprise Information Systems VI,<br />
© 2006 S pringer. Printed in the Netherlands.<br />
30<br />
30–36.<br />
(1) component design that reduces complexity and<br />
makes component dependencies traceable in<br />
program and database structures, (2) dependencyminimizing<br />
design of the architectural layers<br />
housing application components and reaching to<br />
database and web services, (3) round-trip<br />
engineering with metrics to evaluate system<br />
complexity, and (4) identification and specification<br />
of design principles and patterns targeting<br />
minimization of complexity in enterprise<br />
information systems.<br />
Prior to describing our approach for managing<br />
complexity in systems, the paper explains the<br />
background for it – software holons. The concept of<br />
holon (from the Greek word: holos = whole and with<br />
the suffix on suggesting a part, as in neutron or<br />
proton) was introduced by Koestler (1967) and it has<br />
since been used by various branches of science<br />
ranging from biology to communication theory, as<br />
observed by the theory originator in Koestler (1980).