january 25, 2006copyright thomas pole 2003-2005, all rights reserved 1 software reuse: history 1980...

16
January 25, 2006 copyright Thomas Pole 200 3-2005, all rights reserv ed 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by Technology Change

Upload: josephine-greene

Post on 31-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

1

Software Reuse: History 1980 to 2005

History: Changes to Software Reuse Driven by Technology Change

Page 2: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

2

Agenda

• Introductions

• Administrative Issues

• Reuse, an historical overview

• Break

• “Software Factories”, Chapter 1: Introduction

• Q&A

Page 3: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

3

Overview

• There are many dimensions along which we can trace the history of reuse:– Software Development Life Cycle (SDLC) Model

• Prototyping, Iterative, ESP, etc.

– Requirements/Specification Method– Business Model

• We will examine Reuse history along the implementation technology dimension.– Concentrating on source code and later life cycle

objects. Not reuse of requirements or designs.

Page 4: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

4

Reusable SoftwareImplementation History

• Mid 1980’s– Mature Third Generation Programming Languages

• Late 1980’s– Early Object Oriented Languages and SQL DB

• Early 1990’s– Mature OO Languages, Source Code Libraries

• Mid 1990’s– Early DIAE Component Packaging

• Late 1990’s– Mature DIAE Components, Cross-Protocol Bridges

• 2000-2005– Early Service Oriented Architecture Products

Page 5: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

5

Mid 1980’s: Third Generation Programming Languages

• More portable then earlier machine specific assembly languages

• Source code still required to be language, OS and platform specific (I/O packages, math libraries).

• Object Libraries and Executables relatively non-portable.

• Reuse Successes:– Limited source code reuse for high value: e.g. math

libraries.

Page 6: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

6

Late 1980’s: Early Object Oriented Languages

• Common Lisp Object System (CLOS), C++ Interpreters.• Improved encapsulation/packaging technology advances

source code reuse.• Packaging and common object models promoted

development of language “bindings”.– Cross language reuse.

• Introduction of systematic repeatable object oriented development processes introduced.

• Most portability constraints remained.• Reuse Successes:

– High value data structure libraries (e.g. GRACE and Booch parts)– First successful reusable services, SQL RDMBS’s

Page 7: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

7

Early 1990’s: Mature OO Languages and Early Code Libraries

• Smalltalk, ANSI CLOS, first C++ compilers• Development of GUI and Event Driven Programming

Libraries• Portable compiled software packages: Shared Libraries,

Dynamic Link Libraries• Significant Reuse Research

– e.g. SPC CoE for Reuse/ARPA contract.– Early Software Reuse driven processes– Reuse Libraries (management systems, not just content)

• Reuse Successes:– Microsoft Foundation Classes (MFC)– Visual Basic 1.0– Reuse Library Toolset (EVB Software)

Page 8: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

8

Mid 1990’s: Early DIAE Components

• Dynamically Integrable Autonomously Executable– Components that are compiled and linked separately,integrate at

run time, and run independently of each other. (e.g. COM and CORBA) More, much more on this later.

• COTS products offer API’s for integration• Distributed systems: the foundation for Web Services• Component Based development processes• Reuse successes:

– Commercially successful code generators.• e.g. Netron, Frame Technology

– Reusable Component Vendors: e.g. Infragistics

Page 9: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

9

Late 1990’s: Mature DIAE Technology

• Cross Protocol Bridges– Allow COM and CORBA systems to participate in the same system– Light weight integration protocols, e.g. SOAP

• New reusable component packaging mechanisms• Mature reuse based development processes• Mature specialized reusable component market.• COTS Products employ DIAE Integration protocols.

– Integrate with the components of a COTS product, not just the full products API.

• Reuse Successes:– ComponentSource.com reusable component market.– Active Template Library (ATL) Java Beans

Page 10: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

10

2000-2005: Early SOA• Service Oriented Architecture

– Reuse of function (service), not code or component.

• Rediscovery of reuse research:– Software Reuse (Asset) Management Systems– Domain Specific Reuse, Domain Languages (Software Factories)– Reuse must reuse more then code.– Reuse requires drastic process changes.

• Patterns: systematic definition of large scale reusable components.

• Reuse Successes:– Microsoft .Net Framework– SRMS: Flashline and LogicLibrary

Page 11: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

11

Break

15 minutes

Next: Software Factories,

Ch 1: Introduction

Page 12: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

12

“Software Factories”Ch 1: Introduction

• Industrialization of Software Engineering

• Domain Specific, Architectural Design Driven Reuse

• Current efficiency in software development isn’t.

• Tools Lag Platforms.

Page 13: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

13

Industrialization

• Standard components that can be rapidly customized and assembled to produce similar but distinct products.

• By standardizing, integrating and automating production processes.

• Developing extensible tools which automate repetitive tasks

• Develop product lines to automate production of product variants

• Develop supply chains of suppliers.

Page 14: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

14

Next Steps in Industrialization

• Codification of patterns in frameworks

• Assisted application of patterns by developers through tools.

• Encapsulation of patterns by languages

• Fully automatic application of patterns by domain specific language compilers

Page 15: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

15

Remainder of Chapter 1

• History of Data Processing, Information Technology technologies.

• Example of CTI

• Rationale for a new paradigm.

Page 16: January 25, 2006copyright Thomas Pole 2003-2005, all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by

January 25, 2006 copyright Thomas Pole 2003-2005, all rights reserved

16

Questions?

• Read the introduction and chapters 1 & 2 for next week.

• No exercise assigned this week.