We offer a broad and in-depth training program specifically for software and system architects and designers.
The software architect is one of the most important roles in any software project. He has to design a system to make it fully compliant to most non-functional requirements applicable for the system at hand.
Specifically in an Agile project his role is essential. Without an architect describing and maintaining the high level architecture it will be very hard to ensure, that all the subproducts from several Scrum teams working in parallel, will finally fit together. The systems have to be well documented with UML or SysML. Without a well planned software architecture the risks are huge. All your efforts can result in a disposable software product. When, at a later stage, the product needs to be enhanced or fixed, it is often cheaper and easier to start from scratch. This is destruction of capital, a waste of valuable resources.
It is extremely difficult to anticipate how long a software product will be used. Sometimes the product is already obsolete before use and sometimes it has a life-span of over 50 years. The costs of keeping a software product up and running over a longer period of time will often exceed several times the original investment made to build it. It does not take too much imagination to understand how a well designed product would greatly contribute to lower maintenance costs.
As a software architect you need to have a solid technical knowledge and be able to document and communicate your vision towards the software engineers. The most common approach to do this, is by using the Unified Modeling Language (UML). This knowledge can be enhanced by understanding the principles of creating a software architecture and applying patterns to easily solve common technical issues. We recommend to start with our Object Oriented Analysis & Design using UML course.
If you are looking for certification programs, we can prepare you for OCUP (OMG Certified UML Professional). Later you can extend your skill set in specific areas, such as: Design Patterns, API Design, Specification of Component Interfaces or Real-Time Software Architectures. If you are working in a multidisciplinary environment we recommend you to consider SysML, to model the total system perspective.