Download presentation
Presentation is loading. Please wait.
Published byCody Stafford Modified over 8 years ago
1
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
2
Introduction What is this course about ? –A journey in searching for the “holy grail” of software “integrated circuits”
3
Introduction What is this course about ? –A journey in searching for the “holy grail” of software “integrated circuits”
4
Advantage 1: Software construction Application Software construction vs. creation: application is developed as an assembly of “integrated circuits”
5
Advantage 2: Reuse C1 Application 1 Application 2 Software “integrated circuits” are reusable entities It pays off to have as many applications that reuse an entity
6
Advantage 3: Maintenance & Evolution C1 Application C1new update Maintenance and upgrading can be done by replacing parts, maybe even at runtime
7
What are the “Entities” to compose ? Functions Modules Objects Components Services … 2010 2000 1990 1980 1970 19601968: Douglas McIlroy: “Mass Produced Software Components” 1998: Clemens Szyperski: “Component Software – Beyond Object Oriented Programming”
8
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/ 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 http://queue.acm.org/detail.cfm?id=1039533
9
Fuzzy Boundaries: Objects, Components, Services Example: plain Java Class From [ACM Queue]
10
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]
11
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
12
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]
13
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)
14
From [ACM Queue]
17
Reusable Entities made more usable and more composable Possible additional features: Interface description – what should contain a complete description ? 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
18
Objects-Components-Services Entities for Reuse and Composition Abstraction Encapsulation ObjectsComponentsServices Location: same process Inheritance Polymorphism Location: different processes, same environment Usually some runtime infrastructure needed No state No shared variables No implementation inheritance Location: different environments More emphasis on interface/contract/service agreement Mechanisms for dynamic discovery Dynamically composable
19
Course Outline Reuse The broad reuse landscape Components Basic concepts in CBSE Modelling components with UML 2.0 Component Models and Technology Case studies: OpenCOM, Fractal component models Overview of industry standards 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 Service choreography and orchestration
20
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 Important: the course webpage: http://www.cs.utt.ro/~ioana/cbse http://www.cs.utt.ro/~ioana/cbse – Slides – Bibliographic pointers per each topic – Lab assignements – Announcements
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.