Experiences From an Industrial Software Architecture Course
Even-André Karlsson
Q-Labs
S-22 370 Lund, Sweden
+46-46-2863033
Email: Even-Andre.Karlsson@q-labs.se
Abstract
Software architecture is seen as one of the key elements for achieving a high degree of reuse in product lines. To get more focus on architectures, many organizations want to improve their ability to find and maintain a successful architecture. To achieve this they have to involve their most senior designers. In this paper we discuss experiences from an industrial course on software architectures for experienced software designers. We present the motivation for the course, the material selected and the experiences. The course was built up with several exercises where the participants could utilize the covered material on their own system experience.
Keywords: Architecture, product strategies, architecture evaluation
Workshop Goals: Understand the key elements to develop and maintain a software architecture for a high degree of reuse
Working Groups: Software architecture
1 Background
Achieving a high degree of reuse is highly dependent on a good software architecture.
2 Position
To develop and maintain a suitable software architecture we need to be able to teach what this means, in particular to experienced software designers utilizing their knowledge.
3 Approach
Software architectures is a relatively new academic field where there exists a rather limited body of knowledge and courses. It is also an old field in that all software systems have an architecture, and the practitioner’s knowledge is often more developed, but probably not so well articulated, as the theoretical knowledge. Thus when building up an industrial course on software architecture it is important to tie the course to the experience of the participants, and also ensure that they can share their experience. We did that through the exercises where the participants applied the material on their own system and organization.
Participants to these courses have been experienced (5+ years) software designers from organizations developing technical software, e.g. telecom systems, where they have a long lived product with new enhancements and variants, i.e. a product family. The rest of this paper is organized according to the content of the course. Each section starts with the motivation for including this topic in the course, the material selected, the connected exercise and some experiences (in this position paper only the motivation and exercises are included). The different topics covered were:
In the end we discuss some general conclusions and further development. We do not present in detail any of the material covered, but rather discuss the experiences from including this material in the course.
3.1. Why focus on architectures?
Motivation
It is important to couple the software architecture to the business strategy, i.e. product strategy, of the company, as the architecture of long lived system can dramatically impact the opportunities of a company. We also motivated software architectures from a reuse point of view, leading to higher productivity and profit.
Exercise
There are two exercises in this section:
3.2. Tools for describing architectures
Motivation
This section covers how to describe architectures.
Exercise
Also in this part we had two exercises:
3.3. Architectural requirements and evaluation
Motivation
To be able to come up with a good architecture we need to formalize the requirements on the architecture from the product strategy and to evaluate different alternatives. The reason for having this module here is that it ties together the two previous ones, which can stand by themselves.
Exercise
The exercises for this area were:
3.4. Frameworks and patterns
Motivation
The section on frameworks and patterns was included to give more concrete ideas on how object-oriented concepts could be used to realize architectures.
Exercise
The two exercises in this section was:
3.5. Object brokers
Motivation
Object brokers are another concrete technology that influence many system architectures.
Exercise
The exercise in this section was to try to analyze their system in terms of the CORBA architecture and see what the different basic object services and common facilities could give their application.
3.6. Working with architectures
Motivation
If a company is going to be successful with it’s architectures over a longer time, they need to establish a way to develop, maintain, enforce and enhance the architecture and the knowledge about using it, i.e. a process and an organization.
Exercise
The exercise in this section was to try to analyze their own organization’s current status on these areas, as well as come up with suggestions for how it could be improved.
4 Comparison
We have not performed any formal comparison of this approach to other approaches to industrial software architectures courses. We hope to be able to do that before and during the workshop.
References
None to other courses. The following material was used in the course:
[Clements95] "Understanding architectural influences and decisions in large system projects", Paul C. Clements, Proceedings of the First International Workshop on Architectures for Software Systems, ICSE 17, Seattle, April 24-25, 1995
[Gamma94] "Design Patterns - Elements of Reusable Object-Oriented Software", Gamma E., Helm R., Johnson R., Vlissides J., Addison-Wesley1994
[Gilb88] "Principles of Software Engineering Management", Tom Gilb, Addison Wesley, 1988
[Shaw96] "Software Architecture - Perspectives on an emerging discipline", Shaw M., and Garlan D., Prentice Hall, 1996
[Soni95] "Software Architecture in Industrial Applications", Dilip Soni, Robert L. Nord and Christine Hofmeister, ICSE’95, pp. 196-207
Biography
Dr. Even-André Karlsson (Q-Labs AB, Lund, Sweden) was Project Manager for REBOOT at Q-Labs and the Editor of "Software Reuse - a Holistic Approach", Wiley 1995. Besides the methodology work he has assisted organizations of different sizes introducing all aspects of planned reuse. He has also presented the REBOOT ideas on several major international workshops and conferences on reuse. Recently he has assisted organization in work on software architecture including both consulting and courses.