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

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Configuration management
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Object Oriented Paradigm An evolutionary path. Programming At Its Infancy A program is a single block of procedural code Disadvantages: Reusability is.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 2.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Reusability and Portability Chapter 8 CSCI Reusability and Portability  The length of the development process is critical.  No matter how high.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Chapter 13 Web Application Infrastructure. Objectives Explain the components and purpose of a web application platform Describe several common webapp.
Python Introduction.
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
High thoughts must have high language. Aristophanes
 2002 Prentice Hall. All rights reserved. 1 Introduction to Visual Basic.NET,.NET Framework and Visual Studio.NET Outline 1.7Introduction to Visual Basic.NET.
Understanding Computers Ch. 131 Chapter 13 Program Development and Programming Languages.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Introduction into component programming based on Java beans Dušan Tošić
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Service Layers Service Oriented Architecture Johns-Hopkins University Montgomery County Center, Spring 2009 Session 6, Lecture 6: March 4, 2009.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
Office Business Applications Workshop Defining Business Process and Workflows.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 4 Computer Software.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Software Architecture & Component Orientation Jose Donate CS 6362.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 1.1 What Is a Computer? 1.2 Computer Organization.
Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
Ch 1. A Python Q&A Session. Why do people use Python? Software Quality Developer productivity Program portability Support Libraries Component integration.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
Solution Supply Chains Jack Greenfield. Overview Learning from Other Industries Mass Customization in Software Development Implementing Supply Chains.
February 8, 2006copyright Thomas Pole , all rights reserved 1 Lecture 3: Reusable Software Packaging: Source Code and Text Chapter 2: Dealing.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 7: Dynamically Integrable Autonomously Executable Components and Text.
CS223: Software Engineering Lecture 15: Software construction.
Fundamentals of Visual Modeling with UML Module 1: Introduction to Object Technology.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
L5 - February 22, 2006copyright Thomas Pole , all rights reserved 1 Lecture 5: Graphically Based Code Generation and Text Chapter 4: Paradigm.
SOA Concepts Service Oriented Architecture Johns-Hopkins University Montgomery County Center, Spring 2009 Session 1: January 28, 2009 Instructor:
Chapter 13 Web Application Infrastructure
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Windows Programming Environments
Systems Analysis and Design With UML 2
Introduction to Design Patterns
Modern Systems Analysis and Design Third Edition
CORBA Alegria Baquero.
Chapter 4 Computer Software.
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
CORBA Alegria Baquero.
Introduction to .NET By : Mr. V. D. Panchal Content :
Quality Assurance for Component-Based Software Development
Open API and Open Architecture Working Group (OA2-WG) *DRAFT*
Modern Systems Analysis and Design Third Edition
Presentation transcript:

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

January 25, 2006copyright Thomas Pole , all rights reserved 2 Agenda Introductions Administrative Issues Reuse, an historical overview Break “Software Factories”, Chapter 1: Introduction Q&A

January 25, 2006copyright Thomas Pole , 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.

January 25, 2006copyright Thomas Pole , all rights reserved 4 Reusable Software Implementation 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 –Early Service Oriented Architecture Products

January 25, 2006copyright Thomas Pole , 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.

January 25, 2006copyright Thomas Pole , 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

January 25, 2006copyright Thomas Pole , 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)

January 25, 2006copyright Thomas Pole , 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

January 25, 2006copyright Thomas Pole , 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

January 25, 2006copyright Thomas Pole , all rights reserved : 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

January 25, 2006copyright Thomas Pole , all rights reserved 11 Break 15 minutes Next: Software Factories, Ch 1: Introduction

January 25, 2006copyright Thomas Pole , 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.

January 25, 2006copyright Thomas Pole , 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.

January 25, 2006copyright Thomas Pole , 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

January 25, 2006copyright Thomas Pole , all rights reserved 15 Remainder of Chapter 1 History of Data Processing, Information Technology technologies. Example of CTI Rationale for a new paradigm.

January 25, 2006copyright Thomas Pole , all rights reserved 16 Questions? Read the introduction and chapters 1 & 2 for next week. No exercise assigned this week.