
















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Interfaces and components in software engineering, their roles in designing large software applications, and the advantages of using interfaces. It covers the concept of interfaces, their realization vs. Inheritance, components, subsystems, finding interfaces, and the layering pattern. The document also provides examples of interfaces in java and their benefits for component-based development.
Typology: Slides
1 / 24
This page cannot be seen from the preview
Don't miss anything!

















Designing large software applications is concerned with breaking a system up into subsystems (as independent as possible) Interactions between subsystems are mediated by interfaces Fig. 19.2 [Arlow & Neustadt, 2005]
Complete operation signature The semantics of the operation (text or pseudocode) Name and type of the attributes Any operation or attribute stereotypes, constraints, tagged values
The set of interfaces realized by a classifier is known as provided interfaces , with UML syntax (two styles) shown in Fig. 19.3 [Arlow & Neustadt 2005] Note that the two different notations for the realization relationship
Fig. 19.5 [Arlow & Neustadt 2005] shows an example of an assembled system
Interfaces in Java: the collection classes, Fig. 19. [Arlow & Neustadt 2005]
Adding non-borrowable items such as journal needs further modeling Fig. 19.8 [Arlow & Neustadt 2005]
A more elegant solution is shown in Fig. 19.9 [Arlow & Neustadt 2005]
A component is a “modular part of the system that encapsulates its contents and whose manifestation is replaceable within its environment” It acts as a black box whose external behaviour is completely defined by its interfaces (provided and required); hence, it can be replaced by any other component that supports the same protocol Fig. 19.15 [Arlow & Neustadt 2005] shows the UML notation
Component stereotypes, Table 19.2 [Arlow & Neustadt 2005]
A subsystem is a component that acts as unit of decomposition for a larger system Interfaces connect subsystems to create a system architecture Subsystems are used to: Separate design concerns Represent large-grained components Wrap legacy systems A system example is shown in Fig. 19.19 [Arlow & Neustadt 2005]