SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Database System Concepts and Architecture
UML an overview.
8.
Chess Review May 8, 2003 Berkeley, CA Classes and Inheritance in Actor- Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley.
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
Chapter 14 (Web): Object-Oriented Data Modeling
1 Reusability and Portability Xiaojun Qi. 2 Reuse Concepts Reuse is the use of components of one product to facilitate the development of a different.
Introduction to Databases Transparencies
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
© 2004 Soar Technology, Inc.  July 14, 2015  Slide 1 Thinking… …inside the box Randolph M. Jones Commercializing Soar: Software Engineering Perspective.
Dr. Kalpakis CMSC 461, Database Management Systems Introduction.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Development of mobile applications using PhoneGap and HTML 5
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
CSCI-383 Object-Oriented Programming & Design Lecture 15.
The chapter will address the following questions:
CMPD 434 MULTIMEDIA AUTHORING
System Software System software deals with the physical complexities of how the hardware works. System software generally consists of four kinds of programs:
Chapter 24 Introduction to Object DBMSs Prepared by Kai Huang CS157B Prof Sin-Min Lee.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
An Introduction to Software Architecture
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
Leslie Luyt Supervisor: Dr. Karen Bradshaw 2 November 2009.
CHAPTER FOUR COMPUTER SOFTWARE.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Database Management System Prepared by Dr. Ahmed El-Ragal Reviewed & Presented By Mr. Mahmoud Rafeek Alfarra College Of Science & Technology Khan younis.
Clarke, R. J (2001) L213-08: 1 Multimedia in Organisations BUSS 213 Lecture 8 Modelling Multimedia Applications.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
CSCI-383 Object-Oriented Programming & Design Lecture 13.
CHAPTER TEN AUTHORING.
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 15: Object-Oriented Data Modeling Modern Database Management 9 h Edition Jeffrey A.
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 13 (Online): Object-Oriented Data Modeling Modern Database Management 10 th Edition.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Object-Oriented Data Modeling
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Abstraction ADTs, Information Hiding and Encapsulation.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
REST By: Vishwanath Vineet.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Welcome to OBJECT ORIENTED PROGRAMMING Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Object Oriented Programming
MPCS – Advanced java Programming
Datamining : Refers to extracting or mining knowledge from large amounts of data Applications : Market Analysis Fraud Detection Customer Retention Production.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 20 Object-Oriented Analysis and Design
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
What Is Good Software(Program)?
Information Hidding Dr. Veton Kepuska.
Presentation transcript:

SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming

Outline  Objects,  Environment, and  Frameworks for Multimedia Programming  Objects,  Environment, and  Frameworks for Multimedia Programming

Why Objects?  Multimedia involves multiple type of object  Nontemporal object types  Temporal object types  Multiple data type indicating the different form of data that are present  Different data types anticipating the object- oriented approach  Multimedia involves multiple type of object  Nontemporal object types  Temporal object types  Multiple data type indicating the different form of data that are present  Different data types anticipating the object- oriented approach

Why Objects? (cont…)  Classification data types based on similarity in their representations and operations so as to help understand how to model data types using object-oriented techniques.  Object-oriented technique appears to be natural fit between multimedia programming  Classification data types based on similarity in their representations and operations so as to help understand how to model data types using object-oriented techniques.  Object-oriented technique appears to be natural fit between multimedia programming

Why Objects? (cont…)  There are some reasons for this affinity, include:  Encapsulation  Modularity  Extensibilty  Portability and cross-platform development  Software legacy  There are some reasons for this affinity, include:  Encapsulation  Modularity  Extensibilty  Portability and cross-platform development  Software legacy

Why Objects? Encapsulation  MM programmers face a challenging environment 1.Concepts from many areas (including audio recording, video production, animation and music) 2.MM applications involve special hardware with idiosyncratic interfaces and operating procedures  Strengths of OOP is its ability to encapsulate information and help shield programmers from many of the details of particular media and pieces of hardware  MM programmers face a challenging environment 1.Concepts from many areas (including audio recording, video production, animation and music) 2.MM applications involve special hardware with idiosyncratic interfaces and operating procedures  Strengths of OOP is its ability to encapsulate information and help shield programmers from many of the details of particular media and pieces of hardware

Why Objects? Modularity  The equipment used in audio and video relies to a larger and larger extend on digital technology  Mixers to editing suites and special effect devices are becoming programmable and more interconnectable  Processing functionality of studios is moving available to applications running on PCs  OOP is well suited to capturing the complex interfaces of media processing services in a modular form which is easy for application developers to use  The equipment used in audio and video relies to a larger and larger extend on digital technology  Mixers to editing suites and special effect devices are becoming programmable and more interconnectable  Processing functionality of studios is moving available to applications running on PCs  OOP is well suited to capturing the complex interfaces of media processing services in a modular form which is easy for application developers to use

Why Objects? Extensibilty  The requirements and the nature of multimedia applications are evolving and far from stable  Database system multimedia, virtual environments, conferencing system etc. applications should be able to adapt changes in interface technology, media formats and hardware platform  OOP addresses the need for extensibility by offering mechanisms for enhancing and extending existing code  The requirements and the nature of multimedia applications are evolving and far from stable  Database system multimedia, virtual environments, conferencing system etc. applications should be able to adapt changes in interface technology, media formats and hardware platform  OOP addresses the need for extensibility by offering mechanisms for enhancing and extending existing code

Why Objects? Portability and cross-platform development  MM applications run on different platform and tolerate hardware variations within platforms - require rewriting application for every time to porting from platform to another  OO interfaces can make platform dependencies more explicit and so simplify both cross-platform development  MM applications run on different platform and tolerate hardware variations within platforms - require rewriting application for every time to porting from platform to another  OO interfaces can make platform dependencies more explicit and so simplify both cross-platform development

Why Objects? Software legacy  Many software developers face a legacy problem - the need to maintain compatibility with earlier applications but not for multimedia.  MM applications design is less constrained by existing software and developers are free to exploit new techniques such as OOP languages.  Many software developers face a legacy problem - the need to maintain compatibility with earlier applications but not for multimedia.  MM applications design is less constrained by existing software and developers are free to exploit new techniques such as OOP languages.

Objects: instance variables and methods  Objects encapsulate both state and behavior  Object is a programming language construct that identifies a collection of data items and a collection of operations  Data items - object’s instance variable  Operations - object’s method  Meant to be the only interface by which objects are manipulated  Objects encapsulate both state and behavior  Object is a programming language construct that identifies a collection of data items and a collection of operations  Data items - object’s instance variable  Operations - object’s method  Meant to be the only interface by which objects are manipulated

Objects: instance variables and methods play_mc.onRelease = function() { plane_mc.play(); }; ( Make movieclip plane_mc play when control movieclip play_mc is clicked ) function flyPlane() { plane_mc.play(); } play_mc.onRelease = flyPlane; ( Define a function to make plane_mc play. Assign that function to play_mc's onRelease event, so that when play_mc is clicked, plane_mc will play ) play_mc.onRelease = function() { plane_mc.play(); }; ( Make movieclip plane_mc play when control movieclip play_mc is clicked ) function flyPlane() { plane_mc.play(); } play_mc.onRelease = flyPlane; ( Define a function to make plane_mc play. Assign that function to play_mc's onRelease event, so that when play_mc is clicked, plane_mc will play )

MMP: Environment  MM systems is an independent discipline of study in computer science and engineering  After a number of commercial products and prototype systems have been built, then, it has been observed that the current programming paradigm for developing multimedia software needs some improvement  MM systems is an independent discipline of study in computer science and engineering  After a number of commercial products and prototype systems have been built, then, it has been observed that the current programming paradigm for developing multimedia software needs some improvement

MMP: Environment  MM Programming languages are best used for applications with:  a large amount of data handling  a smaller number of screen formats  non-standard hardware and software  a need to control system parts  MM Programming languages are best used for applications with:  a large amount of data handling  a smaller number of screen formats  non-standard hardware and software  a need to control system parts

 In a way of compelling the ideas of object orientation to multimedia programming –MM framework shows the encompassing of the essential object and operations that appear in MM applications  MM framework consists of interrelated abstract classes which are tailored and specialized for different MM platforms.  In a way of compelling the ideas of object orientation to multimedia programming –MM framework shows the encompassing of the essential object and operations that appear in MM applications  MM framework consists of interrelated abstract classes which are tailored and specialized for different MM platforms. Multimedia Framework

Platform #1 Abstract classes Concrete classes Platform #2 Abstract classes Concrete classes Platform #n Abstract classes Concrete classes Abstract Classes Specialization System Programming Interface Application Programming Interface (API) … Environment

Multimedia Framework  Abstract classes – a group of methods and instance variables which shared by several subclasses where their definition are partially or deferred to the subclasses  Concrete classes – the methods and instance variables are fully defined  Abstract classes – a group of methods and instance variables which shared by several subclasses where their definition are partially or deferred to the subclasses  Concrete classes – the methods and instance variables are fully defined

Multimedia Framework  API, both classes and the platform form a specific multimedia programming environment  There are factors delaying the portability of API: 1.Platform need not offer the same capabilities, or API may be supported on some platforms but not others 2.The performance of platform differs 3.Some applications bypass the API and directly access platform- dependently 4.No consensus on system-level support for MMP (notes: design of network and operating system is currently an active research area for MMP)  API, both classes and the platform form a specific multimedia programming environment  There are factors delaying the portability of API: 1.Platform need not offer the same capabilities, or API may be supported on some platforms but not others 2.The performance of platform differs 3.Some applications bypass the API and directly access platform- dependently 4.No consensus on system-level support for MMP (notes: design of network and operating system is currently an active research area for MMP)

Multimedia Framework  Framework should be robust, well-documented, and complete  Requirement for MM Programming includes:  Economy of concept  Should based on a small number of concept, otherwise it becoming a maze of media-specific detail  Proper identify general concept that apply across media types  Open  Extendable to incorporate with new media types, new data representation, and new hardware capabilities as they become available  Framework should be robust, well-documented, and complete  Requirement for MM Programming includes:  Economy of concept  Should based on a small number of concept, otherwise it becoming a maze of media-specific detail  Proper identify general concept that apply across media types  Open  Extendable to incorporate with new media types, new data representation, and new hardware capabilities as they become available

Multimedia Framework  Queryable  should specify interface for querying environments concerning their capabilities  Application produced can recognize missing functionality and adapt their behaviour  Distribution  Should help partition applications in a way that facilities distribution  The object within the framework should correspond to easy-to- distribute units or subsystem  The utility of a framework is greatly diminished if it conflicts with distribution  Queryable  should specify interface for querying environments concerning their capabilities  Application produced can recognize missing functionality and adapt their behaviour  Distribution  Should help partition applications in a way that facilities distribution  The object within the framework should correspond to easy-to- distribute units or subsystem  The utility of a framework is greatly diminished if it conflicts with distribution

Multimedia Framework  Scalable  Should support scalable media representation  if media representation are scalable, applications can increase quality as platform performance increases  High-level interface  Should provide high-level interface for media synchronization, media composition, device control, database integration, and concurrent media processing activities  These operations are central to multimedia programming  Scalable  Should support scalable media representation  if media representation are scalable, applications can increase quality as platform performance increases  High-level interface  Should provide high-level interface for media synchronization, media composition, device control, database integration, and concurrent media processing activities  These operations are central to multimedia programming

 The advantages of MM programming languages include:  producing applications that run fast  accessing system calls directly  being able to control non-standard hardware and software  being usable for a wide variety of platforms.  The advantages of MM programming languages include:  producing applications that run fast  accessing system calls directly  being able to control non-standard hardware and software  being usable for a wide variety of platforms. MMP Advantage

MMP Disadvantange  The disadvantages of programming languages include:  slower development time  need for skilled programmers  difficulty in debugging  unsuitability for prototyping  The disadvantages of programming languages include:  slower development time  need for skilled programmers  difficulty in debugging  unsuitability for prototyping

Conclusion  C++ is currently the most popular language for multimedia design and implementation:  is object-oriented that has numerous compilers for many platforms, and can access system part  C++ is currently the most popular language for multimedia design and implementation:  is object-oriented that has numerous compilers for many platforms, and can access system part