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