L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software...

16
L6 - March 1, 20 06 copyright Thomas Pole 200 3-2006, all rights reserv ed 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch. 4: Paradigm Shift, Part II Ch. 5: Software Factories, Part I

Transcript of L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software...

Page 1: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

1

Lecture 6: Software Packaging: Dynamically Integrable

Components

and Text Ch. 4: Paradigm Shift, Part II

Ch. 5: Software Factories, Part I

Page 2: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

2

Agenda• Review Reverse-Quiz #1:• Questions Ch 4: Paradigm Shift, through page 124• Lecture: Dynamically Integrable Components• Text: “Software Factories”

– part 2: Critical Innovations

• Text: Chapter 5: “Software Factories part 1 – Paradigm Shift

• Exercise #2 review.• Q&A

Page 3: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

3

Questions and Answers

• Reverse Quiz #1 Review– Answers are available on the web site.

• Ch 4: Questions from“Paradigm Shift”, part I

Page 4: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

4

Lecture 6: Dynamically Integrable Components

• The problem to be solved

• History of the solution space

• The Dynamically Integrable Component– The design– Implementation Examples– Remaining problems– Complete Solution

Page 5: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

5

Component Based Software Engineering

Component-based Software Engineering (CBSE) is concerned with the development of software intensive systems from reusable parts (components), the development of reusable parts, and system maintenance and improvement by means of component replacement and customization.

From the Sigsoft Symposium CBSE 2005 Call for Papers

• The problem to be solved:– A packaging mechanism to support the assembly of components

which minimizes the effort to “glue” components together as independent as possible of programming language, operating system, etc.

Page 6: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

6

History of the Solution Space

• Language Specific, operating system specific components– Intermediate forms, object code

• Language Independent, operating system specific components– Shared Libraries (Unix)– Dynamic Link Libraries (Windows DLLs)

Page 7: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

7

Dynamically Integrable Components

• DI Concept, the mechanism for DI assembly• Design

– A generic design for DI Components

• Implementation Examples– Integration Protocols

• Remaining Problems• A More Complete Solution

– Autonomous Execution

Page 8: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

8

DI Concept: The Mechanism

• Requirements, Design and Specification– Capture the interface contract in a programming

language specific form. (IDL)

• Component Creation– Compile, Link and Deploy Reusable Components

independently of their Consumers

• Application Creation– Create application without requiring the reusable

component.– Application integration points are defined by IDL

Page 9: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

9

DI Component Design

• Independence of Programming Language– Separation of Interface and Implementation

languages.– Interface Definition Languages

• OMG IDL, Microsoft MIDL

• Independence of Operating System– Logical Machines span multiple physical

machines, components on separate machines are semi-independent of the local OS.

Page 10: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

10

DI Implementations: CORBA

• Object Management Group’s (OMG) Common Object Request Broker Architecture (CORBA)– CORBA Interface Definition Language– C++ like grammar– Explicit input, output, in/out parameters– User Defined types can be marshalled across

CORBA component boundaries.

Page 11: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

11

DI Implementations: DCOM

• Microsoft’s Distributed COM (DCOM) is COM “on a long wire”– Microsoft Interface Definition Language

(MIDL)– Programming Language independent IDL– Explicit input, output, in/out parameters– C++ like grammar– Multiple interfaces per component

Page 12: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

12

Autonomous Execution

• A problem remained, component or object life cycle.

• When components are built separately, not requiring the component but only its spec to be able to integrable with it, which component must execute first, which controls the others execution?

• Solution: Components execute autonomously• A component (e.g. server) can run without a user

(e.g. client)

Page 13: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

13

Break

• 15 minutes

• Next: “Paradigm Shift” – part 2 Critical Innovations

• and “Software Factories”– Part 1

Page 14: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

14

Text Book

• Ch 4: Paradigm Shift part 2

• Ch 5: Software Factories part 1

Page 15: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

15

Ex. 2 ReviewReusable Asset Design

• Due tonight

• We’ll review the solutions next week

Page 16: L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.

L6 - March 1, 2006 copyright Thomas Pole 2003-2006, all rights reserved

16

Questions?

• Read the introduction through chapter 6, “Models and Patterns” for next week.