ComponentBased Software Dr Rami Bahsoon School of Computer
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 Computer Science Lecture 1. Introduction Component-Based Software Engineering Dr R Bahsoon 1
Introduction • Who we are? • To introduce the course: goals, content, structure, assessment, and learning resources… • To outline what you can expect from me and what I expect from you… Component-Based Software Engineering Dr R Bahsoon 2
Who I am • Rami Bahsoon: course facilitator – Lecturer in Software Engineering • Background: MS and Ph. D in Software Engineering • Delivered related courses at the MSc and BSc level • Active researcher in the field of Software Engineering – Office: School of Computer Science, Office 112 – Web: http: //www. cs. bham. ac. uk/~rzb/ – E-mail: r. bahsoon@cs. bham. ac. uk Component-Based Software Engineering Dr R Bahsoon 3
Who we are… • • • Name, work/study background, MSc Track … Your experience with CBS? Your expectations from this module… Your experience with the Birmingham MSc… Destination after completing your MSc… Any other remarks… Component-Based Software Engineering Dr R Bahsoon 4
Component-based software engineering • How do you define a “Component”? • How do you define “Component-based software engineering”? Component-Based Software Engineering Dr R Bahsoon 5
What is a Component? • Several definitions of a component in literature, howeveryone agrees that a component is a piece of software… But this requires clarification! Component-Based Software Engineering Dr R Bahsoon 6
What is a Component? • Components provide a service without regard to where the component is executing or its programming language – A component is an independent executable entity that can be made up of one or more executable objects – The component interface is published and all interactions are through the published interface Component-Based Software Engineering Dr R Bahsoon 7
What is a Component? • There are many other definitions of components: – Consideration of CBSE from different viewpoints and focus on different aspects of software engineering • Design phase: components as reusable design parts • Architecture phase: (e. g. UML components; ADL component) • Implementation phase: components confirmed to a specific component model • At run time could be binary packages, distributed components • Business aspects (business components, service components, COTS components) Component-Based Software Engineering Dr R Bahsoon 8
About CBSE(1/4) • Introduces Components-Based Software Engineering (CBSE) Reality Component-Based Software Engineering Dr R Bahsoon Vision & dream! 9
About CBSE(2/4) • Motivation for CBSE – Develop software systems as assemblies of components – Reuse-driven & market-driven software development – Easing maintenance and evolution: design for change! • CBSE related concepts, views, and perspectives • CBSE challenges Component-Based Software Engineering Dr R Bahsoon 10
About CBSE(3/4) • Describes the principles and practices of systematically engineering software systems from components – CBSE process models vs. classical models • CBS lifecycle, reuse approach, Unified Process – Requirements & design • Requirements engineering approaches to CBSE • Describes Unified Modeling Language (UML) notations to the specification, design, and modeling of components-based software – Component-based software architectures • Styles, specification, refinements, and paradigms (e. g. Serviceoriented architectures, middleware-induced software architectures, Model-Driven Architectures) • Dependability issues in CBSE Component-Based Software Engineering Dr R Bahsoon 11
About CBSE(4/4) – Testing & certification issues in components-based software • Overview of the current technologies, component models, and frameworks supporting CBSE – The Microsoft way -. NET – The OMG way - CORBA – The Sun way – J 2 EE • Other advanced topics, if time permits – Invited presentation(s) – Readings, discussions, and your presentations Component-Based Software Engineering Dr R Bahsoon 12
Assessment • Assessment – 1. 5 hr examination (80%) • Choice • Compulsory questions: concepts, processes, UML modelling… • Reflection questions: presentations-related… – Continuous assessment (20%) • Group presentations, discussion, and reflection on some advanced CBSE topics – Presentation schedule & topics will be posted soon – Peer and self assessment (friendly and supportive “shepherding” style) – Workshop-like style: interactive • Group modelling exercise – due by the end of the term – Courtesy face-to-face feedback providing training for your examination • “Small” discussion/reading exercises • Resit (where allowed) by examination only with the continuous assessment marks carried forward Component-Based Software Engineering Dr R Bahsoon 13
Meetings • Lectures & meetings – Tuesday 3 pm, UG 40, Computer Science – Tuesday 5 pm, LG 32, Learning Centre – Two non-timetabled hrs/week: use these for meetings with your group – Office Hours: • Open door policy or follow my timetable (TBA) • Appointment by e-mail r. bahsoon@cs. bham. ac. uk Expect a rapid reply for any e-mail (a word of trust!) Please use CBSE in the subject head Component-Based Software Engineering Dr R Bahsoon 14
Learning outcome • Describe and use principles for building software systems from components • Design component-based software systems using wellstructured design methods – Knowledge of UML notation: ability to produce UML documentation • Demonstrate knowledge of technologies and standards for component-based software • Appreciation of advanced topics in CBSE • Read and understand the technical literature • Group-working & presentation skills (real-life practical requirement!) Component-Based Software Engineering Dr R Bahsoon 15
Learning resources • My teaching page: http: //www. cs. bham. ac. uk/~rzb/teaching. htm – Link to the CBSE will be added soon – Self-contained material • Selected reading from the following books: – Ivica Crnkovic, Magnus Larsson: Building reliable component-based systems – Clemens Szyperski: Component Software: Beyond object-oriented programming, Addison-Wesley, 2002 • UML related books: – John Cheesman & John Daniels: UML Components: A simple process for specifying component-based software (The component software series) Addison-Wesley, 2000 – J. Eeles, K. Houston & W. Kozaczynski: Building J 2 EE Applications with the Rational Unified Process Addison-Wesley, 2003 Component-Based Software Engineering Dr R Bahsoon 16
Learning resources • Other references: – Wolfgang Emmerich: Engineering Distributed Objects, Wiley – Online resources e. g. SEI of CMU • http: //www. sei. cmu. edu/ – Ian Sommerville, Software Engineering – Selected readings from: • Proceedings of the International Conference on Software Engineering • IEEE Transaction on Software Engineering • ACM Transactions on Software Engineering and Methodology • ACM SIGSOFT Symposium on Foundations of Software Engineering • IEEE Software • Proceedings of Component-Based Software Engineering Dr R Bahsoon 17
Questions & Suggestions ? Component-Based Software Engineering Dr R Bahsoon 18
- Slides: 18