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

URL: http://www.q-labs.com

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.