component-based software engineering dr r bahsoon 1 lecture 1. introduction component-based software...

18
Component-Based Software Engineering Dr R Bahsoon 1 Lecture 1. Introduction 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

Upload: susanna-watkins

Post on 23-Dec-2015

218 views

Category:

Documents


3 download

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

Component-Based Software Engineering Dr R Bahsoon

18

Questions & Suggestions

?