component-based software engineering dr r bahsoon 1 lecture 1. introduction component-based software...
TRANSCRIPT
Component-Based Software Engineering Dr R Bahsoon
1Lecture 1. Introduction
Component-Based Software
Dr. Rami BahsoonSchool of Computer Science
The University Of [email protected]/~rzb
Office 112 Computer Science
Component-Based Software Engineering Dr R Bahsoon
2
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
3
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: [email protected]
Component-Based Software Engineering Dr R Bahsoon
4
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
5
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
6
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
7
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
8
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
9
About CBSE(1/4)
• Introduces Components-Based Software Engineering (CBSE)
Reality Vision & dream!
Component-Based Software Engineering Dr R Bahsoon
10
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
11
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
12
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
13
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
14
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 [email protected] 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
15
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
16
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
17
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