L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software...
-
Upload
tracy-walton -
Category
Documents
-
view
212 -
download
0
Transcript of L6 - March 1, 2006copyright Thomas Pole 2003-2006, all rights reserved 1 Lecture 6: Software...
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
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
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
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
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.
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)
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
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
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.
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.
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
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)
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
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
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
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.