180 likes | 327 Views
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. Introduction. Who we are?
E N D
Component-Based SoftwareDr. Rami BahsoonSchool of Computer ScienceThe University Of Birminghamr.bahsoon@cs.bham.ac.ukwww.cs.bham.ac.uk/~rzbOffice 112 Computer Science Lecture 1. Introduction Component-Based Software Engineering Dr R Bahsoon
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
Who I am • Rami Bahsoon: course facilitator • Lecturer in Software Engineering • Background: MS and PhD 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
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
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
What is a Component? • Several definitions of a component in literature, however everyone agrees that a component is a piece of software… But this requires clarification! Component-Based Software Engineering Dr R Bahsoon
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
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
About CBSE(1/4) • Introduces Components-Based Software Engineering (CBSE) Vision & dream! Reality Component-Based Software Engineering Dr R Bahsoon
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
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. Service-oriented architectures, middleware-induced software architectures, Model-Driven Architectures) • Dependability issues in CBSE Component-Based Software Engineering Dr R Bahsoon
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 – J2EE • Other advanced topics, if time permits • Invited presentation(s) • Readings, discussions, and your presentations Component-Based Software Engineering Dr R Bahsoon
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
Meetings • Lectures & meetings • Tuesday 3pm, UG40, Computer Science • Tuesday 5pm, LG32, 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
Learning outcome • Describe and use principles for building software systems from components • Design component-based software systems using well-structured 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
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 J2EE Applications with the Rational Unified Process Addison-Wesley, 2003 Component-Based Software Engineering Dr R Bahsoon
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 Component-Based Software Engineering Dr R Bahsoon
Questions & Suggestions ? Component-Based Software Engineering Dr R Bahsoon