component based software engineering
DESCRIPTION
Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana Șora http://www.cs.utt.ro/~ioana/cbse. Component Based Software Engineering. Introduction. What is this course about ? - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/1.jpg)
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
![Page 2: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/2.jpg)
Introduction
• What is this course about ?– A journey in searching for the “holy grail” of
software “integrated circuits”
![Page 3: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/3.jpg)
Introduction
• What is this course about ?– A journey in searching for the “holy grail” of
software “integrated circuits”
![Page 4: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/4.jpg)
Advantage 1: Software construction
Application
Software construction vs. creation: application is developed as an assembly of “integrated circuits”
![Page 5: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/5.jpg)
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
![Page 6: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/6.jpg)
Advantage 3: Maintenance & Evolution
C1 Application
C1new
update
Maintenance and upgrading can be done by replacing parts, maybeeven at runtime
![Page 7: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/7.jpg)
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”
![Page 8: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/8.jpg)
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
![Page 9: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/9.jpg)
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
![Page 10: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/10.jpg)
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]
![Page 11: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/11.jpg)
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)
![Page 12: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/12.jpg)
From [ACM Queue]
![Page 13: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/13.jpg)
From [ACM Queue]
![Page 14: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/14.jpg)
From [ACM Queue]
![Page 15: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/15.jpg)
Fuzzy Boundaries: Objects, Components, Services
Example: plain Java Class From [ACM Queue]
![Page 16: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/16.jpg)
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]
![Page 17: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/17.jpg)
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
![Page 18: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/18.jpg)
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
![Page 19: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/19.jpg)
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
![Page 20: Component Based Software Engineering](https://reader035.vdocuments.net/reader035/viewer/2022081516/56812e05550346895d936b9c/html5/thumbnails/20.jpg)
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