Component Based Software Engineering
-
Upload
kyle-middleton -
Category
Documents
-
view
45 -
download
3
description
Transcript of Component Based Software Engineering
Component Based Software Engineering
Master of Software Engineering +Master of Information Technology
2010/2011Conf.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
C1
C1
Application 1
Application 2
Software “integrated circuits” are reusable entitiesIt pays off to have as many applications that reuse an entity
Advantage 3: Maintenance & Evolution
C1 Application
C1new
update
Maintenance and upgrading can be done by replacing parts, maybeeven at runtime
What are the “Entities” to compose ?
• Functions
• Modules
• Objects
• Components
• Services
• …2010
2000
1990
1980
1970
1960 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
From [ACM Queue]
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]
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 ComponentorTransform 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 Components Services•Location: same process
•Inheritance
•Polymorphism
•Location: different processes, same environment
•Usually some runtime infrastructure needed
•No state
•No shared variables
•Location: different environments
•More emphasis on interface/contract/service agreement
•Mechanisms for dynamic discovery
•Dynamically composable
Reusable Entitiesmade 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, 8th 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