Development of numerical library software in Java Feb 8, 2000 H.Okazawa, Shizuoka Seika College, Japan and T.Sasaki, KEK,Japan.

Slides:



Advertisements
Similar presentations
SADC Course in Statistics Excel for statistics Module B2, Session 11.
Advertisements

.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
PROGRAMMING LANGUAGE (JAVA) UNIT 42 BY ROBERT BUTTERFIELD TELEPHONE Data Structures and Algorithms.
Test Yaodong Bi.
OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
Programming Paradigms and languages
1 Using Octave to Introduce Programming to Technical Science Students Nuno C. Marques Francisco Azevedo CENTRIA, DI-
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
Object-Oriented Software Development CS 3331 Fall 2009.
MATLAB Presented By: Nathalie Tacconi Presented By: Nathalie Tacconi Originally Prepared By: Sheridan Saint-Michel Originally Prepared By: Sheridan Saint-Michel.
CS-2135 Object Oriented Programming
Introduction To System Analysis and Design
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
Requirements Specification
Object Oriented System Development with VB .NET
Dept. of Computer Engineering, Amirkabir University of Tech. 1 Design Patterns Dr. Noorhosseini Introduction.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Software Development Unit 6.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Introduction 01_intro.ppt
Language Evaluation Criteria
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
© 2004 The MathWorks, Inc. 1 MATLAB for C/C++ Programmers Support your C/C++ development using MATLAB’s prebuilt graphics functions and trusted numerics.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
Introduction to Object-oriented programming and software development Lecture 1.
BIT 1003 – Presentation 7. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
CS101 Introduction to Computing Lecture Programming Languages.
Introduction To System Analysis and Design
Chapter 6 Object-Oriented Java Script JavaScript, Third Edition.
Copyright © 2006 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1 Chapter 2.
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Frameworks CompSci 230 S Software Construction.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Prototyping Rapid software development to validate requirements.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
Java Fundamentals Usman Ependi UBD
ADT data abstraction. Abstraction  representation of concepts by their relevant features only  programming has two major categories of abstraction process.
CSE 303 – Software Design and Architecture
Visualization in Problem Solving Environments Amit Goel Department of Computer Science Virginia Tech June 14, 1999.
Java Programming, Second Edition Chapter Twelve Advanced Inheritance Concepts.
Chapter 11: Advanced Inheritance Concepts. Objectives Create and use abstract classes Use dynamic method binding Create arrays of subclass objects Use.
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
HIGH-LEVEL LANGUAGE PROGRAMMING PARADIGMS. Programming languages come in many forms or 'paradigms'. Each form of language offers advantages over other.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
CSC 222: Object-Oriented Programming
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
Object Oriented Programming
Types for Programs and Proofs
Software for scientific calculations
CS101 Introduction to Computing Lecture 19 Programming Languages
Hierarchical Architecture
Why Object-oriented Programming?
Introduction to Data Structure
OOP Aga private institute for computer science 5th grade
Oriented Design and Abstract Data Type
FRAMEWORKS AND REUSE What is “Framework”?
From Use Cases to Implementation
Presentation transcript:

Development of numerical library software in Java Feb 8, 2000 H.Okazawa, Shizuoka Seika College, Japan and T.Sasaki, KEK,Japan

Contents  Introduction  Object Oriented Programming  Analysis and Design of Numerical library  Fitting program in OOA/OOD  Summary

Introduction(1) We present… Our attempt on OO analysis and OO development to the general numerical library in Java The development of data fitting program with OOA/OOD The detail of the design as a first step of development of numerical analysis libraries in Java

Introduction(2) HEP Analysis  Software components tend to be large  Software will be used for more than 10 yeas or so. Object Oriented technique - Reuse software component - Change the specification of the software - Understand an overall of the system.

Introduction(3)  The need of Common Interface for numerical library Different products have different interfaces Make difficult to  Try another algorithm  Implement a new functionary  The need of well designed software Minimum effort in changing user’s code Increases reliability and production capability of software

Object Oriented Programming(1) Why we use Java?  C++ Illustrates high-level performance Has various runtime libraries used in C language Takes long time in understanding or developing software for no expert of C++ programming  Java, simple OO language Easy to understand and integrate the software Easily moved among computing platforms Very safe and reliable under networking condition Easy to import visualization program to many platforms

Object Oriented Programming(2) JavaC++ GUI AB Developing speed AB Reference to class AB Memory management BC Safety BC Multi platform BC Inheritance BA Performance CB Template(class/function) DB A: Excellent B: Good C: Available D: Not supported Ref: JAVA World 12, 1999

Analysis and Design of Numerical library(1) It is difficult to develop numerical library in Java because….  C++ Functions in numerical library are implemented as “Template functions”.  Java No template functionary Everything must be in class

Analysis and Design of Numerical library(2) We investigated 2 scenario for the development of numerical library in Java.  Scenario 1 The object is identified to manage the numerical library. The super class are prepared and all of other functionary is realized to inherit it. Only interfaces are defined in the super class.  Scenario 2 Objects are identified as variables or arrays to be used for mathematical manipulations. <= Need to define so many classes according to basic data types in Java.

Analysis and Design of Numerical library(3) However Scenario 1 looks a bit far from native OO concepts, it has advantage in simplicity of implementation and also maintainability. Usecase diagram from Scenario 1

Numeric s Integrator Fitter Sorter Evaluator Equator We plan to develop several numerics classes. As an example of implementation of a functionary of numerical library, a fitting program was developed. Development of fitting program in OOA/OOD(1)

Development of fitting program in OOA/OOD(2) Class diagram for fitting program PolynomialFitter GaussianFitter Numerics inputData() action() result() Matrix add() transpose() divide() subtract() Fitter leastSquare() Marquardt() chisq() UserDefinedFitter

Development of fitting program in OOA/OOD(3) A Sample result from polynomial fitter

If you want to add your own function, you just extend new function class you need. Or you can easily find out where to change the code from class diagram. Although this class library is very simple now, further iteration of analysis, design and implementation makes more elegant, widely usable software package. Development of fitting program in OOA/OOD(4) package Numerical; public class MyOwnFitter extends Fitter { public void myfunc() { double[] x; double y; double [][] a; for(int i=0; i<narray; i++){ y += a[i][0]*Math.pow() + a[i][1]*x+...; } return; }

Summary  Attempt OOA/OOD on the numerical library in Java  A simple Java fitting software by OOA/OOD was developed on it  prepared reusable package