200 likes | 351 Views
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 ?
E N D
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 ? • 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 Application1 C1 C1 Application2 C1 Software “integrated circuits” are reusable entities It pays off to have as many applications that reuse an entity
Advantage 3: Maintenance & Evolution C1new C1 Application update Maintenance and upgrading can be done by replacing parts, maybe even at runtime
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
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]
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]
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
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, 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