Component-Based Software Dr. Rami Bahsoon School of Computer Science The University Of Birmingham r.bahsoon@cs.bham.ac.uk www.cs.bham.ac.uk/~rzb Office 112 Y9- Computer Science Component-Based Software Engineering Dr R Bahsoon Revision Session 1 Assessment & Exam Structure • Examination 80% • Group Presentations & Group Coursework 20% • Exam Structure – 1.5 hrs exam – Part I – Content Questions [32%] • Answer FOUR Questions out of SEVEN • Provide BRIEF AND PRECISE answers • 8% Each – Question 1 to Question 7 – Part II – Modeling Questions [68%] • Three Main Questions – Question 8 [9%] – Question 9 [26%] – Question 10 [33%] Component-Based Software Engineering Dr R Bahsoon 2 Exam Content – Part I • Part I- Questions are mainly derived from – – – Unit 1: Essentials to CBS • Components, characteristics, Interfaces, Specification, Interface Description Language (IDL), Components vs. objects, architectures, Components as services, composition, Component Models, Frameworks, Middleware • http://www.se-radio.net/podcast/2008-02/episode-87software-components Unit 2: Reflection on the modeling of objects and components Unit 3: Engineering CBS – Process & Lifecycle – Rational Unified Process – Model-driven development – Reuse-driven software development and landscape – Component-based software lifecycle Component-Based Software Engineering Dr R Bahsoon 3 Part I- Sample Question • Briefly explain the concept of Model-Driven Architectures (MDA) and highlight a major advantage of adopting such a paradigm for engineering components-based software systems. [8%] Answer? Component-Based Software Engineering Dr R Bahsoon 4 Part I – Sample Question - Answer • A model is a description of a system. • A PIM describes a system without any knowledge of the final implementation platform. • A PSM describes a system with full knowledge of the final implementation platform. • A transformation definition describes how a model in a source language can be transformed into a model in a target language. • A transformation tool performs a transformation for a specific source model according to a transformation definition. • Advantages? Component-Based Software Engineering Dr R Bahsoon 5 Part II – Modeling • Modeling Objects and Components using UML – Interpreting UML diagrams – Modeling – In the spirit of your Coursework Component-Based Software Engineering Dr R Bahsoon 6 Part II – Sample 1 • Interpreting UML diagrams – In FEW words, explain the relation in the below diagrams. Component-Based Software Engineering Dr R Bahsoon 7 Answer Composed of 64 squares Component-Based Software Engineering Dr R Bahsoon 8 Part II – Sample 1 • Draft a use case diagram for an online library system. Make use of both <<include>> and <<extend>> stereotypes. State any necessary assumptions you make. Answer? Component-Based Software Engineering Dr R Bahsoon 9 Part II – Sample 2 • Use UML to model the components and interfaces corresponding to the given Scenario – Assume that Bob wants to book a holiday • Bob will book his holiday, where – He provides the following data: His origin airport, his destination, his dates of departure/return, and any other preference information (e.g., budget, luxury, etc) • Bob is interested in promotional offers for the period of his holiday – He wants to rent a car at his destination. – He wants to get good hotel deals during his stay. Component-Based Software Engineering Dr R Bahsoon 10 Part II – Sample 2 Flight Booking service Sketch the components and interfaces corresponding to the given services Hotel Promotional Service Car Hire Promotional Service Component-Based Software Engineering Dr R Bahsoon 11 Software Systems Requirements • After you book a holiday, the company shall provide the holidaymaker with promotional services, which include hotel deals and car rent promotional service at the destination and for the duration of her/his stay Component-Based Software Engineering Dr R Bahsoon 12 Answer: Flight Booking Provides Requires Flight Information Customer data Flight Booking Component-Based Software Engineering Dr R Bahsoon Customer Preference Information 13 Promotional Hotel Booking Service.. Provides Requires List of available Hotels Flight Information Customer Preference Information Promotional Hotel Booking Service Component-Based Software Engineering Dr R Bahsoon 14 You can even provide more services.. Provides Requires List of available Hotels Flight Information Customer Preference Information List of Budget Hotel Promotional Hotel Booking Service Component-Based Software Engineering Dr R Bahsoon List of Five stars List of B&B List of 3 stars 15 Car Hire Promotional Service Provides Requires Flight Information Customer Preference Information List of available Car agents Car Hire Promotional Service Component-Based Software Engineering Dr R Bahsoon List of cars deals 16 Gluing the Components Provides Requires Provides Requires Customer data Flight Booking Flight Information Customer Preference Information Flight Information Customer Preference Information Customer Preference Information List of cars deals Provides Requires Flight Information Car Hire Promotional Service List of available Car agents List of available Hotels List of Budget Hotel Promotional Hotel Booking Service Component-Based Software Engineering Dr R Bahsoon List of Five star List of B&B List of 3 stars 17 Part II - Sample 3 • Sketch a sequence diagram for self-service machine, three objects do the work we're concerned with – the front: the interface the self-service machine presents to the customer – the money register: part of the machine where moneys are collected – the dispenser: which delivers the selected product to the customer • Derive your collaboration diagram Component-Based Software Engineering Dr R Bahsoon 18 Part II- Sample 4 • Sketch a three-tier architecture for online banking system • Sketch a client-server architecture for online inventory system Component-Based Software Engineering Dr R Bahsoon 19 Example of Three-Tiers Architectures Many of real life web applications have three tier architectures Component-Based Software Engineering Dr R Bahsoon 20 UML 1.4 Components deployed in an architecture Deployment Diagrams for Three Tiers Component-Based Software Engineering Dr R Bahsoon 21 Example: Client Server Architectures Component-Based Software Engineering Dr R Bahsoon 22 Example: Deployment Diagram for a Client Server Architecture UML 2.0 Component-Based Software Engineering Dr R Bahsoon 23 Q&A • Question and Answer Session • Flipping through the slides? Component-Based Software Engineering Dr R Bahsoon 24