1/18/2000STScI Software Workshop 20001 Object-oriented Design Elements of the OPUS Application Programming Interface Data Processing Team.

Slides:



Advertisements
Similar presentations
Chapter 12 Separate Compilation and Namespaces. Abstract Data Type (ADT) ADT: A data type consisting of data and their behavior. The abstraction is that.
Advertisements

CSCE 145: Algorithmic Design I Chapter 1 Intro to Computers and Java Muhammad Nazmus Sakib.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 5 Architecture-Driven Component Development.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
Distributed Object Computing Weilie Yi Dec 4, 2001.
Software Testing and Quality Assurance
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Executable XML Present by 吳昆澤. Outline  Introduction  Simkin  Jelly  o:XML  Conclusion.
1 Chapter 6 Inheritance, Interfaces, and Abstract Classes.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
OOP Project Develop an Application which incorporates the following OO Mechanisms and Principals: – Classes Visibility Constructor(s) Class Variable (if.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Inheritance and Polymorphism CS351 – Programming Paradigms.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
CSE 332: C++ templates and generic programming I Motivation for Generic Programming in C++ We’ve looked at procedural programming –Reuse of code by packaging.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
The Design Discipline.
Introduction to .Net Framework
Design Patterns.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Chapter 10 Introduction to Components. Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFramework Detailed.
Introduction to Object-oriented programming and software development Lecture 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
Unified Modeling Language, Version 2.0
Object-Oriented Programming and the Progress ABL Tomáš Kučera Principal Solution Engineer / EMEA Power Team.
Distributed Component Object Model (DCOM)
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Object-Oriented Programming (OOP). Implementing an OOD in Java Each class is stored in a separate file. All files must be stored in the same package.
Your First Java Application Chapter 2. 2 Program Concepts Modern object-oriented programs help us build models to manage the complexity found in a problem.
Introduction to Object Oriented Programming CMSC 331.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
SNPL1 Woochang Lim What (Variable) + How (Function) = Object Objects are the physical and conceptual things we find in the universe around us. Object-Oriented.
C++ History C++ was designed at AT&T Bell Labs by Bjarne Stroustrup in the early 80's Based on the ‘C’ programming language C++ language standardised in.
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
Software Reuse compliments of Spiros Mancoridis l Building software from reusable components.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
CSE 341, S. Tanimoto Java brief review - 1 Java Brief Review Java’s strengths Object-oriented terminology Inheritance Interfaces An example with inheritance.
CS212: Object Oriented Analysis and Design Lecture 17: Virtual Functions.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
Java Software Solutions Lewis and Loftus Chapter 9 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Enhanced Class Design -- Introduction.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Basic Characteristics of Object-Oriented Systems
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 15: Java Basics Fundamentals of Web Programming.
Chapter 12: Support for Object- Oriented Programming Lecture # 18.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Introduction to Advanced Java Programming
Introduction to .NET Framework Ch2 – Deitel’s Book
Object-Orientated Programming
Types of Programming Languages
C++ History C++ was designed at AT&T Bell Labs by Bjarne Stroustrup in the early 80's Based on the ‘C’ programming language C++ language standardised in.
Programming Languages
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Abstract Types Defined as Classes of Variables
Presentation transcript:

1/18/2000STScI Software Workshop Object-oriented Design Elements of the OPUS Application Programming Interface Data Processing Team

1/18/2000STScI Software Workshop What Is OPUS? OPUS is a software system that marshals data flow through a pipeline of distributed processes. Each application is triggered when data are ready for it to process. A pipeline application may or may not be aware of OPUS. OPUS Process Step 1 Process Step 1 Process Step 4 Process Step 2 Process Step 3 Process Step 3

1/18/2000STScI Software Workshop OPUS Blackboards Process and data state information are stored on “blackboards” visible to each process. The current blackboard implementation uses NFS (specifically, file names) as the blackboards. “Observation Status File”: 38289e02-cncccc_____nnv__________.o4an17blq______________-sti-111-____ time stampprocessing statedataset name class ID cmd.

1/18/2000STScI Software Workshop The OPUS Application Programming Interface (OAPI) Written in ISO/ANSI Standard C++. –Makes extensive use of the STL and templates. Maximizes code reuse. –Exception handling. –Namespace partitioning. Contains over 80 classes. –Object-oriented design. Not just C compiled with a C++ compiler. –70 classes are in 6 class hierarchies.

1/18/2000STScI Software Workshop The OPUS Application Programming Interface (OAPI) Fully documented. –Web-based documentation is constructed from in-line source code comments. Designed to be highly extensible, portable and flexible… –Adaptability to change with little impact on software that uses the library was a key design element.

1/18/2000STScI Software Workshop Extensibility Abstract base classes define the interfaces, and are used in the code to manipulate more derived types of arbitrary implementation. (inheritance + run-time polymorphism) Example: OSF Blackboard Hierarchy virtual void a() = 0; virtual void b() = 0; File_osf_bb Blackboard Osf_bb Db_osf_bbNet_osf_bb Osf_bb* virtual void c() = 0; virtual void d() = 0; void a(); void b(); void c(); void d();

1/18/2000STScI Software Workshop Portability Recent standardization of C++ ensures portability. –OAPI available for OpenVMS Alpha, Tru64 UNIX, Solaris and Linux (Windows 2000 coming soon). System calls adhere to the POSIX standard. OS-specific parameters (e.g., file name syntax) are isolated in a single namespace where precompilation directives select the appropriate forms.

1/18/2000STScI Software Workshop Flexibility Object-oriented design benefits. –Good separation of interface from implementation increases adaptability. –Enforced information hiding reduces version dependence. –Objects tend to be more reusable than functions (inheritance). C++ benefits. –Widespread use ensures good interoperability with other languages and protocols. Java, CORBA, …