Tutorial 5 IT323 - Software Engineering 2 1 What is component composition? What are the three different types of composition? 2 The process of assembling components to create a system. Types of composition Sequential composition Hierarchical composition Additive composition 3 What are the two principal component interfaces? 4 A provides interface that defines the services provided by that component to other components. A requires interface that defines the services expected by a components when it is integrated with other components. If these services are not available, then the provides interface cannot be guaranteed. 5 Consider the two components below: Data collector and Sensor. The Data collector component requires the services provided by Sensor component to get the SensorManagement and SensorData. From the above specification, compose the two components. Which type of component composition used? Is there any type of interface incompatibility ?Requires int er face Provides int er face addSensor removeSensor star tSensor sensorManagement Data collector sensorData stopSensor testSensor initialise repor t listAll 6 Type of Composition: Hierarchical composition. Type of interface incompatibility: ◦ Operation incompleteness. ◦ Operation incompatibility. sensorManagement ad dSen so r remo veSensor star tSen so r star t sensor stop g etd ata Adapter Data co llector sensorData stop Sensor testSen so r in itialise repo r t listAll 7 In a photo library system, components are used to implement a system that download images from a digital camera and stores them in a photograph library. The components are: Photo Library, Image Manager, and User interface. Each component provides the following services: ◦ Photo Library:public void addItem (Identifier pid ; Photograph p; CatalogEntry photodesc) ; ◦ Image Manager:public Photograph retrieve (Identifier pid) ; ◦ User interface:public CatalogEntry catEntry (Identifier pid) ; Compose the components using the right composition type? 8 9 Give 6 examples of general services that might be implemented in component model middleware support? 10 Component management. Transaction management. Resource management. Concurrency. Persistence. Security. 11 Give examples of changes you might make to a component to make it more reusable? 12 Remove application-specific methods Generalize names Add methods to provide more coverage Make exception handling consistent Add a configuration interface Integrate required components 13 What are the stages of the CBSE process? 14 Outline system requirements Identify candidate components Modify requirements to fit components Architectural design Identify candidate components Compose components 15 Thank you 16