Object Oriented Approach for Applications Development

Similar documents
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Chapter 12 Programming Concepts and Languages

Chapter 13: Program Development and Programming Languages

Computer Organization

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

How to Develop Accessible Linux Applications

Implementing and Maintaining Microsoft SQL Server 2008 Reporting Services

Implementing and Maintaining Microsoft SQL Server 2005 Reporting Services COURSE OVERVIEW AUDIENCE OUTLINE OBJECTIVES PREREQUISITES

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Software: Systems and Application Software

How To Develop Software

Object Oriented Design

Test Automation Framework

REMOTE DEVELOPMENT OPTION

Extending Legacy Applications to Consume Web Services. OpenSpan White Paper Series: Extending Legacy Applications to Consume Web Services

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Fourth generation techniques (4GT)

HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013

Making a Business Case for Single Sourcing

Intranet Solutions for PG School IARI. Project Brief

GIS Web Services. Acknowledgement: Thanks to Principal & Dr. (Mrs.) G.V. Rao, CRS-GIS, K.J.

2. Advance Certificate Course in Information Technology

Computer Information Systems (CIS)

A Visual Language Based System for the Efficient Management of the Software Development Process.

Evaluation of Xamarin Forms for MultiPlatform Mobile Application Development

White Paper: 5GL RAD Development

Manual English KOI Desktop App 2.0.x

Chapter 3. Technology review Introduction

Counting Infrastructure Software

Information and Communications Technology Courses at a Glance

Chapter 13: Program Development and Programming Languages

Manage Software Development in LabVIEW with Professional Tools

Qint Software - Technical White Paper

EPiServer and XForms - The Next Generation of Web Forms

Computer Training. NR Computer Learning Center 1835 W. Orangewood Ave #200 Orange CA 92868

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Chapter 2. Data Model. Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Chapter 8 Approaches to System Development

Rapid Application Development of a Decision Support System using Object Oriented Programming

Progress Record. Seq. Lesson # Lesson Title Date Grade. Introduction to Computers (CORE COURSE) 1

ASSET MANAGEMENT SYSTEM FOR COMPUTER LABORATORY

Multiagent Control of Traffic Signals Vision Document 2.0. Vision Document. For Multiagent Control of Traffic Signals. Version 2.0

Wait-Time Analysis Method: New Best Practice for Performance Management

1 File Processing Systems

Hybrid Development Methodology for Client-Server Applications

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

SOA and BPO SOA orchestration with flow. Jason Huggins Subject Matter Expert - Uniface

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria

Rational Reporting. Module 3: IBM Rational Insight and IBM Cognos Data Manager

Operating system Dr. Shroouq J.

TxDMV RTS Training Guide for Working with Cognos Reports

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

McGraw-Hill The McGraw-Hill Companies, Inc.,

Oracle Forms Developer 10g: Build Internet Applications

Enterprise Resource Planning Analysis of Business Intelligence & Emergence of Mining Objects

TRAFFIC LIGHT: A PEDAGOGICAL EXPLORATION

Dimension Technology Solutions Team 2

SuperViz: An Interactive Visualization of Super-Peer P2P Network

Java (12 Weeks) Introduction to Java Programming Language

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

Business Process Modeling. Introduction to ARIS Methodolgy

3D Interactive Information Visualization: Guidelines from experience and analysis of applications

The Coppice Primary School Computing & ICT Policy

Software Life-Cycle Management

TestManager Administration Guide

COURSE NAME: Database Management. TOPIC: Database Design LECTURE 3. The Database System Life Cycle (DBLC) The database life cycle contains six phases;

Smart Inventory Management System

A Database Re-engineering Workbench

Logi Ad Hoc Reporting System Administration Guide

Introduction to the Analysis and Management Framework

User experience storyboards: Building better UIs with RUP, UML, and use cases

Solar Power Systems Web Monitoring

Implementation Workflow

Design of Data Archive in Virtual Test Architecture

zen Platform technical white paper

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Introduction to Object-Oriented Programming

PeopleTools Tables: The Application Repository in the Database

Effective Collaboration

A system is a set of integrated components interacting with each other to serve a common purpose.

Windows XP Pro: Basics 1

Integration Methodologies for Disparate Software Packages with an Emphasis on Usability

Workplace Giving Guide

Umbrello UML Modeller Handbook

Skills for Employment Investment Project (SEIP)

Auditing UML Models. This booklet explains the Auditing feature of Enterprise Architect. Copyright Sparx Systems Pty Ltd

Asset Track Getting Started Guide. An Introduction to Asset Track

Design of Company s Salary Management System. Lei Xiong

U III 5. networks & operating system o Several competing DOC standards OMG s CORBA, OpenDoc & Microsoft s ActiveX / DCOM. Object request broker (ORB)

Database Design Overview. Conceptual Design ER Model. Entities and Entity Sets. Entity Set Representation. Keys

Role Based Access Control Framework for Network Enterprises

Toad Data Modeler - Features Matrix

Commercial Database Software Development- A review.

Advantage of Jquery: T his file is downloaded from

Voluntary Product Accessibility Template Blackboard Learn Release 9.1 April 2014 (Published April 30, 2014)

Software Development Kit

Programming A PLC. Standard Instructions

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

Transcription:

Object Oriented Approach for Applications Development 1. Complexity of S/W development Because of technological advancements in H/W, S/W and networking, the n- tier Client- Server Architecture has enabled us to look for IT based technological solutions, which are very much matching with real world environment. Information management, and its dissemination expectations of end users have made S/W applications development a challenging task. Expansion of boundaries of information Systems have further added to the complexity of the S/W development. Also, the end user is not willing ( can not afford even) to wait and just watch the application development process. He wants quick results. To handle the complexity of such applications development, one looks for the solution also in the real world. The reality is that managing BIG is hard, and the BIG should be broken into SMALL to make it manageable. In other words, divide and conquer is the buzzword for solution of any problem. The division of a big problem into solvable simple components, is directly proportional to its complexity. However, the quality of output ( results) depends upon the way division has been done. The above reality is applicable for S/W development also. 1.1 How to divide a S/W development process into manageable components: To divide and conquer, a S/W development process, two approaches can be adopted: Abstraction ( Describe, that much only, as much is essentially required. Hiding of the details can be even multi layered.) Encapsulation of code, data and its packaging, specially from the point of view of its re-usability. A 1

1.1.1 Abstraction: In real world environment the approach of abstraction is applicable on three layered bureaucracy as follows: File Clerks Middle Level Managers Senior Managers for data management for processing the data as per Business Rules for Knowledge management with access to information through presentation tools The human beings attached with these layers need not know details of working of other layers, unless required so. Similarly, S/W development process can also be divided into three layered architecture as follows: Data Functions of these three layers can be described as follows: Layer Responsibility Functions Tools Desk Top Understandable, user Presentation, Graphic Tools, Data Application friendly Interface Navigation, modeling Tools, Manipulation, Analysis Analysis tools and languages Business Rules Rules and Processing, policy Languages like procedures for data management / Dissemination enforcement, coordination Basic, C, COBOL, C++, VB, VC++, Java etc Database Consistent and Secure data Consistency, Security, Integrity and safety Databases, Database languages A 2

Few advantages of the above architecture are listed below: - A way to easy development of complex applications by dividing them into manageable components ( each component may further follow similar architecturea base of object oriented technology). - A framework for building flexible applications with a provision to add / delete components at any level. - High level of S/W re-usability of components is possible - Best approach for Client- Server based applications, where physically the processes, and data can be distributed any where with a centralized control. The interaction between the three layers of above architecture can be achieved through Interfaces, which can be human, text based or graphical. The interfaces performs the following functions: - Tell the component, what to do - Inquire about current status of a component - Receive results of requested operations A 3

The role of interfaces can be graphically represented as follows: GUI &OLE Desk top applications Process Request Business Rules Transactions& Queries Database 1.1.2 Encapsulation Encapsulation of data and the programs that operate on that data into discrete object is the other approach. Corresponding to each object there has to be an interface to work with the data as per the business rules. Not only the overall layers, but even the components making up these layers form objects, which interact with each other through interfaces. These interfaces play very important role in applications development as well as their successful implementation. Functionally, the interfaces in the three layers of application architecture can be divided as follows: Desk Top Application Business Rules Databases Graphic User & OLE Interfaces Process Request Interfaces Transaction / Queries Interfaces A 4

2.0 Object Oriented Approach for Applications development: 2.1 Technical Definition of an object: Encapsulation of code, data along with interface to abstract the details, and an interface to operate upon is an object in S/W development. Further, it should be packaged in such a fashion, which allows standard operations and functions to be applied to a wide range of objects ( polymorphism- reusability). The new objects to be derived form old ones should inherit properties. Thus, the fundamental construct object incorporates both data structure and behavior, and it has characteristics like: - An identity Name, and Memory space & Address - Classification Should belonging to a class of similar qualities objects - Inheritance Sharing of properties with the other objects / classes from which it has been derived - Encapsulation Can be described with properties( attributes), and behavior ( methods and operations ) to change the values of the properties - Abstraction Focus on Essentials, and hide the details - Polymorphism Ability to take more than one forms, depending upon the situation More about the above characteristics of objects with real life illustrations Encapsulation means that the information about an object (its properties) and the processes that are performed by the object (its methods) are all contained within the definition of the object. A real-world example of an object is a car. You describe a car by its properties, such as a red vehicle or a black four-door sedan. Each characteristic--color, number of doors, or hardtop--is a property of the car. As for the methods, these are the things that a car does in response to an event. For example, you initiate an event when you turn the key to start the car. The car's "start method" takes over at that point, providing instructions such as "engage the starter gear, turn the starter, start fuel flow, initiate power to spark plugs, and disengage the A 5

starter." You don't have to tell the car how to start because it was taught how to start when it was designed. Inheritance means that one object can be based upon the description of another object. The car defined above, belongs to a class vehicle, which has properties like four wheels, an engine, a body and passenger seats. The object car inherits properties and methods and events. Further properties can be added to the object car. C1 C 2 C3 C4 C125 C23 C53 P olymorphism means that many objects can have the same method and that the appropriate action is taken for the specific object calling the method. For example, in your programs, you display text to the screen and output text to the printer. Each of these objects (the screen and the printer) can have a print or display method that tells the object to place text in a certain location. The method knows what to do, based on the object calling the method. In the example of the car, push is a method to make the car move. The same method is applied to move a bicycle, but nature of its application is different. 2.2 Objects / Classes in context to S/W Development: Thus in context to S/W development, Object is a S/W package, that contains data ( attributes ) and code( method) for changing its state ( values of the data items) by triggering events ( operations). It has an interface also to provide link with other objects, or to trigger events to execute the code associated with it. These S/W packages can consist of so many inter linked objects ( which may be instances of other classes). The S/W package itself can be instance of some another class. Objects can be linked with each other through other link objects. A 6

More about linking of objects: Model Object1 Module 1 Object2 Module 2 Link Object1 Module1 Function Procedure Eg. Mr. X works for ABC Company ( Link is a physical or conceptual ) Association describes a group of links with common structure and common semantics Eg. A person works for an company An Association can be modeled as a class and may have a name, attributes and operations Module It is a logical construct for grouping classes, associations. It captures one perspective or view of a situation Model An Object Model consists of one or more modules. The modules enable you to partition on Object model into manageable pieces The same class may be referred in different modules. There should be fewer links between the models than within the modules A 7

3.0 Object Oriented S/W Development Process: 3.1 Brief History: Before looking into the benefits of Object Oriented S/W development, it will be better to look into history of S/W development process. Since, 1959, the programmers had vision about the idea of packaging of pieces codes for reuse by other programmers. Initially they could do for functions like manipulation of dates, computation of days between two dates etc. The programmers realized the benefits of reusability of code, and started writing subroutines / functions to be reused within their own applications. Later, they started borrowing the codes of those, sitting nearby, with the objective of changing it to their own specific needs. Lack of packaging techniques caused limited packaging, causing lengthy development schedules, low quality products, repetitive bugs, and heavy maintenance costs. each other. Historically, - In 1959, FORTRAN provided concept of subroutines/ functions - In 1969 UNIX made processes ( independent running programs to share data and codes) broadly available in simple to use form. Database management S/W is one example. Processes provide a convenient way to encapsulate complete running system, to be reused by other processes. No interface was associated with those processes. - In 1978 ADA programming language was introduced, which provided package constructs including interface definition mechanism. These packages laid ground work for objects 3.2 Object Oriented approach for Analysis & Design: Conventionally, the codes written for any S/W development have mixed business rules, interfaces, and data management, and their reusability is difficult. In view of the need to develop S/W applications using three layered architecture, the whole S/W application can be divided into objects, which can be inter -linked with each other by passing messages to trigger operations. A 8

One needs to adopt S/W engineering approach for system development, which includes the steps like: - Identification of problem - Feasibility Study - Requirements Analysis - System Design - System Development - Testing - Implementation 3.3 Comparison with conventional approach of SSAD The output of analysis & design of an application gives three models of the system as follows: Functional View - Processes Modeling ( Data Flow Diagram) ( What happens) It describes flow of data within a system, and the processes that act on the data to change its state. Satic View - Data Madeling ( E-R Diagram) ( What happens to ) It describes static view of the objects / data stores Static View of objects Dynamic View - State Transition Modeling ( Events History Diagram) ( When it happens ) It describes the dynamic view of the systems that change with time ( State Diagram) A 9

Conventional Apprach : Requirements Functional Modeling Data Modeling Application Design In conventinal Structured Systems Analysis & Design methodology, the systems are organised in the order of - Functional View - Static View - Dynamic view Object Oriented Approach ( Divide and conquer ) Requirements Database Processes Behavior User Interface, Work Flow Architecture ( To link the three layers) Application Design A 10

In Object Oriented Analysis & Design, the order is - Static - Dynamic - Functional. This is a better approach, as usually in real world environment, usually functions are more likely to change with time, compared to objects. Thus maintenance of applications using this methodology is much easier. The systems boundaries can be easily extended by adding new objects and relationships, which already existed previously only in the outside world To develop a new framework for designing and building an application using three layer architecture, one needs to do three stage planning, desiging and development as follows. Conceptual Logical Physical Desktop Applications Work flow Forms Sequences Forms Business Rules Process flow Object Model Programs Database Data Model Database Schema Tables, Indexes A 11

An Illustration : Let us take an application of Participants Information Management System. The system manages the training calendar, participants nominations management, and feedback analysis etc. The broad level processes flow diagram will be as follows. Process Flow Diagram Nominations From Participants Calendar Management Process Nominations Management Policies Acceptance To Participant Course Conduction Feedback A 12

Division of Processes in three Layered Architecture (Partial) Here the processes are lower level are identified, which lead to objects at broad level. Common processes ( objects ) are also identifies Feedback entry Desktop Nominations Entry Add Course Select Course Queries For Analysis Select Course Maintain Tables Feedback Analysis Add Course Accept Nominations Business Rules Select Course Courses Schedules Nominations Participants Profile Databases A 13

4.0 Object-Oriented Programming (OOP) in Visual Basic One can use any procedural language for object oriented programming. Most of the windows applications are developed in C language. The procedural languages have advantage of their power of handling any complexity at programming level. However, it is convenient to use object oriented programming languages to take advantage of object oriented technology, specially, the characteristic of reusability. Visual Basic is a programming language, that helps in developing Windows based S/W applications using the Object Oriented Technology. It allows to adopt three layered approach as described in section 1. The user interface is built through forms / controls, the processing is done through methods associated with objects ( codes) are data is updated by chaniging values of properties of the objects through variables, or by setting link to data bases, which are out side the VB domain. The OOP technique of Visual Basic provides support for three basic principles-- encapsulation, inheritance, and polymorphism as follows: Integrated Development Environment in Visual Basic provides forms, which provide user interface to execute various objects. The key element of OOP is reusable components( classes), known as controls in VB. Some of the controls are built in. The controls that are used in building the programs are objects that have properties and methods and respond to events. The controls serve the specific purposes, and have built in methods. Thus helping to avoid tedious tasks of programming. Each control also recognizes specific events. Most controls know if the mouse has been moved over them or if a mouse button has been clicked. They even know which button was clicked. Components that handle text know when a key was pressed and which one it was. And, for most events, you can write code that will take specific action when the event occurs. More about controls: The VB language has many built in controls. The reference can be made to other standard controls of Microsoft also. The basic controls can be combined to form more complex controls. Even user designed controls for specific purposes also can be built. The codes associated with controls can use reusable functions and procedures. A 14