Component Based Softyware Engineering

Download Report

Transcript Component Based Softyware Engineering

Component Based Software Engineering

Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana Șora http://www.cs.utt.ro/~ioana/cbse

Introduction

• What is this course about ?

– A journey in searching for the “holy grail” of software “integrated circuits”

Introduction

• What is this course about ?

– A journey in searching for the “holy grail” of software “integrated circuits”

Advantage 1: Software construction Application

Software construction vs. creation: application is developed as an assembly of “integrated circuits”

Advantage 2: Reuse

C1

Application 1

C1

Software “integrated circuits” are reusable entities It pays off to have as many applications that reuse an entity

C1

Application 2

Advantage 3: Maintenance & Evolution

C1new

update Maintenance and upgrading can be done by replacing parts, maybe even at runtime

C1

Application

What are the “Entities” to compose ?

• Functions • Modules • Objects • Components • Services • … 1960 1970 1980 1990 2000 2010 1968: Douglas McIlroy: “

Mass Produced Software Components

” 1998: Clemens Szyperski: “

Component Software – Beyond Object Oriented Programming

Introductory Reading

• Mahesh Dodani: “

From Objects to Services: A Journey in Search of Component Reuse Nirvana

”, in Journal of Object Technology, 2004. http://www.jot.fm/issues/issue_2004_09/column5/ • Roger Sessions: “

Fuzzy Boundaries – Objects, Components and Web Services

”, in ACM Queue Magazine, 2005. http://queue.acm.org/detail.cfm?id=1039533 • Doug McIlroy, Mass Produced Software Components, 1969. http://cm.bell-labs.com/cm/cs/who/doug/components.txt

Principles for reuse by composition

• Key requirements for Black-Box reuse: – –

Abstraction

: an “Entity” is known by its “interface”

Encapsulation

: the “insides” of an “Entity” are not exposed to the outside

Commonalities of Reusable Entities

• All are blobs of code that can do something • All have interfaces that describe what they can do. • All live in a process somewhere. • All live to do the bidding of a client. • All support the concept of a client making requests by “invoking a method.” From [ACM Queue]

Reusable Entities by Location and Environment

Environment: the hosting runtime environment for the Entity and the Client (Examples: Microsoft .NET, WebSphere EJB)

From [ACM Queue]

From [ACM Queue]

From [ACM Queue]

From [ACM Queue]

Fuzzy Boundaries: Objects, Components, Services

Example: plain Java Class

From [ACM Queue]

Fuzzy Boundaries: Objects, Components, Services

Modern frameworks, compilers and IDE’s make it very easy to: Transform Dog Class into a Distributed Component or Transform Dog Class into a Web Service Problem: this power of transformation creates fuzzy boundaries between concepts

From [ACM Queue]

Objects-Components-Services

Entities for Reuse and Composition • Abstraction • Encapsulation Objects • Location: same process • Inheritance • Polymorphism Components • Location: different processes, same environment • Usually some runtime infrastructure needed • No state • No shared variables Services • Location: different environments • More emphasis on interface/contract/service agreement • Mechanisms for dynamic discovery • Dynamically composable

Reusable Entities made more usable and more composable

• Issues: • Interface description – what should contain a complete description ?

• Composition – how are components glued together ? (do I have to write much glue code ?) • Discovery – where and how to find the component/service you need ?

• Dynamic aspects – when to do discovery/selection/composition • Less stress on binary implementation – crossing platform/model boundaries

Course Outline

• • • Reuse • The broad reuse landscape Components • Basic concepts in CBSE • Modelling components with UML 2.0

• Component Models and Technology • Short overview of industry standards • Architectural components • Case study: the Fractal component model • Component contracts • Component specification techniques • Component integration vs Predictable composition Services • Key concepts in service oriented computing • Web Services as an example in SOC • Service composition

Bibliography

• • No single textbook !

Specific chapters from various books – – Ian Sommerville, Software Engineering, 8 th edition, chapters 18,19,31 Ivica Crnkovic, Magnus Larsson. Building reliable component based software systems, Artech House, 2002. chapters 1,2,4,9 • Articles and technical reports – Active research field: The ACM CBSE conferences series: http://cbse-conferences.org/2012/ • Important: the course webpage: http://www.cs.utt.ro/~ioana/cbse – – – – Slides Bibliographic pointers per each topic Lab assignements Announcements