1 / 20

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. Component Based Software Engineering. Introduction. What is this course about ?

hcannady
Télécharger la présentation

Component Based Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  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 Application1 C1 C1 Application2 C1 Software “integrated circuits” are reusable entities It pays off to have as many applications that reuse an entity

  6. Advantage 3: Maintenance & Evolution C1new C1 Application update Maintenance and upgrading can be done by replacing parts, maybe even at runtime

  7. What are the “Entities” to compose ? 1960 1968: Douglas McIlroy: “Mass Produced Software Components” • Functions • Modules • Objects • Components • Services • … 1970 1980 1990 1998: Clemens Szyperski: “Component Software – Beyond Object Oriented Programming” 2000 2010

  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/ • 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

  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 Environment: the hosting runtime environment for the Entity and the Client (Examples: Microsoft .NET, WebSphere EJB) From [ACM Queue]

  12. From [ACM Queue]

  13. From [ACM Queue]

  14. From [ACM Queue]

  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

  18. 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

  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, 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

More Related