Fraunhofer Institute for Experimental Software Engineering IESE
Architecture is at the Heart of Great Products
Architecture is the key factor for success in the development and evolution of software systems.
The realization of excellent software systems requires the use of architecture as the central vehicle for communication, prediction, analysis, planning, and control.
Effective architecting helps you to plan the features and quality properties of a system in a predictable way. You can control the realization at the code level and keep systems maintainable. This allows managers to fulfill business constraints like time and budget. Consequently, architecture is the means for making the right decisions at the business and the technology level.
Despite its importance, architecture has to deal with typical restrictions regarding time and effort. It is therefore crucial that architecture does not become an end in itself, but is rather seen as an investment justified by clear purposes.
We support you in mastering your architecture challenges
Architect Your Success!
For Embedded Systems, these perspectives imply considering different aspects of both the executable system and its environment, as well as the organization of the system under development. That is, embedded systems architectures are driven by
- typical quality requirements such as safety, performance, and timeliness
- technological requirements that are needed for executing the system appropriately in its real-world context, such as electronic control units, bus systems, and sensor and actuator networks
- technological requirements in terms of the development tool chain, such as model-driven development, infrastructure code generation, automated testing, and multi-team development based on continuous integration.
Architecting information systems is about making decisions regarding many different but interdependent aspects:
- The business to be supported by the information systems and the influence of the organizations that will use the software.
- The resulting software systems with particular and often competing quality attributes like specific security, availability, or flexibility requirements.
- The influence of available technologies (e.g., web services, cloud computing environments, databases, UI frameworks) used to reduce development effort as well as the need for integration with existing legacy systems.
- The influence of legal constraints, as for example in the airline business or for for credit card data (PCI compliance).
- The influence of the organization(s) developing the software systems, with their structures and development processes.