Architecture Level Performance Modelling and Analysis Support: Parallelism Viewpoint & Composite Flow (Modelleren en analyseren van performantie op architecturaal niveau: Parrallelisme viewpoint en samengestelde flows)
Performance, which defines multiple aspects of the quality of a software system, is one of the most important quality attributes. For existing systems, where extensions to the system features are required, a concise software architecture description can facilitate performance analysis before such extensions. However, extracting a performance specific architecture description of an existing system is a challenging task, especially where system specifications are not available. In this PhD dissertation, we present our research contributions in which we providedarchitecture level modelling and analysis support for parallelism and flow latencies aspects of the performance.The use of parallelism (multithreading) enhances the performance of a software system. Its excessive use, however can degrade the performance. We propose an architecture viewpoint called Parallelism Viewpoint to optimize the use of parallelism. The viewpoint describes the parallelism behaviour of the system, which can be used to identify performance bottleneck caused by the excessive use of threads. We describe the parallelism behaviour of two systems: an electron microscope software system and the Firefox web browser. We analyzed this behaviour to find threads that are suitable to be replaced with a small sized thread pool. Results show that parallelism intensive software systems contain a large number of underused threads. In the thread pool analyses we performed, we found a 88% reduction in such threads for electron microscope software and a reduction of 98% for Firefox.We also introduced a modelling technique to model Composite flows, the flows which are composed of multiple end-to-end flows. We extended the capabilities of the Architecture Analysis and Design Language (AADL) for this purpose. We validated our technique by using it for an electron microscope software and a large scale vehicular networks system. We found that such flows enhance the understanding about the system flows, especially at the higher abstraction level. The results also show that AADL provides comprehensive support to extend this architecture description language for various domains.