The structure of a software system reflects its architecture. Each system has a specific architecture, whether achieved in a planned or an unplanned manner. High-quality architecture is the key aspect of the success of any development project. It ensures the operability, maintainability and the long-term protection of your investment.

Interested in attending? Have a suggestion about running this event near you?
Register your interest now


The structure of a software system reflects its architecture. Each system has a specific architecture, whether achieved in a planned or an unplanned manner. High-quality architecture is the key aspect of the success
of any development project. It ensures the operability, maintainability and the long-term protection of your investment. The Expleo Foundation Level training will provide participants with the knowledge and skills required for designing and documenting a problem-specific software architecture. This
will enable the participant to work based on a sufficiently detailed requirements specification and produce documentation suitable for small
and medium-sized systems which will serve as a basis for implementation. Participants will be provided with a set of tools enabling them to make problem-specific design decisions on the basis of their previously
acquired practical experience.

Who should attend

This course is suitable for systems analysts, systems architects and software developers engaged in architecture design. See the prerequisites to gain a full understanding of the intended skill set and experience of the intended audience


Participants should have the following prior knowledge and/or experience:
• More than 18 months practical experience with software development, gained through programming a variety of projects or systems outside of formal education
• Knowledge of and practical experience with at least one higher programming language
• Basics of modelling and abstraction • Basics of UML (class, package, component and sequence diagrams) and their relation to source code
• Practical experience with technical documentation, in particular with
documenting source code, system designs or technical concepts

Furthermore, the following will be useful for understanding certain concepts:
• Knowledge of object-oriented concepts
• Practical experience with a minimum of one object-oriented programming language
• Practical experience with designing and implementing distributed applications, such as clientserver systems or web applications

Course Outline

1. Basic Concepts of Software Architectures
2. Design and Development of Software Architectures
3. Specification and Communication of Software Architectures
4. Software Architectures and Quality
5. Tools for Software Architects
6. Examples of Software Architectures

Course Objectives

By the end of the course attendees, through instructor-led presentations and exercises,will possess:
Understanding of:
• The term software architecture and its meaning
• The tasks and responsibilities of software architects
• The roles of software architects within projects
• State-of-the-art methods and techniques for developing software architectures

• Consulting other parties involved in a shared project, in particular representatives from requirements management, development, project management, and testing in order to make essential decisions on software architecture

• Documenting and communicating software architectures on the basis of views, crosscutting concepts, decisions as well as architectural patterns and styles

• Understanding the main steps necessary for developing software architectures and implementing these independently in small
and medium-sized systems