Presentation is loading. Please wait.

Presentation is loading. Please wait.

Component Based Software Engineering Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana ora

Similar presentations


Presentation on theme: "Component Based Software Engineering Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana ora"— Presentation transcript:

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 Doug McIlroy, Mass Produced Software Components, 1969. http://cm.bell-labs.com/cm/cs/who/doug/components.txt

9 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

10 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]

11 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)

12 From [ACM Queue]

13

14

15 Fuzzy Boundaries: Objects, Components, Services Example: plain Java Class From [ACM Queue]

16 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]

17 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 Location: different environments More emphasis on interface/contract/service agreement Mechanisms for dynamic discovery Dynamically composable

18 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

19 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

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 – Active research field: The ACM CBSE conferences series: http://cbse-conferences.org/2012/ http://cbse-conferences.org/2012/ Important: the course webpage: http://www.cs.utt.ro/~ioana/cbsehttp://www.cs.utt.ro/~ioana/cbse – Slides – Bibliographic pointers per each topic – Lab assignements – Announcements


Download ppt "Component Based Software Engineering Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana ora"

Similar presentations


Ads by Google