Ceg860 (Prasad)L1SQ1 Software Quality Object-Oriented Programming Paradigm.

Slides:



Advertisements
Similar presentations
Understand and appreciate Object Oriented Programming (OOP) Objects are self-contained modules or subroutines that contain data as well as the functions.
Advertisements

Chapt.2 Machine Architecture Impact of languages –Support – faster, more secure Primitive Operations –e.g. nested subroutine calls »Subroutines implemented.
Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997.
Classes & Objects Computer Science I Last updated 9/30/10.
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Object-Oriented Thinking Chapter 1, Object-Oriented Programming in Java, Timothy Budd, 1998 ICS102 Semester
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Interpret Application Specifications
Chapter 1 Principles of Programming and Software Engineering.
1 Introduction to C++ Programming Concept Basic C++ C++ Extension from C.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
C++ fundamentals.
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
UNIT-V The MVC architecture and Struts Framework.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
1 Shawlands Academy Higher Computing Software Development Unit.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Objects and Components. The adaptive organization The competitive environment of businesses continuously changing, and the pace of that change is increasing.
Welcome to OBJECT ORIENTED PROGRAMMIN Date: 10/09/2014 Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
CSCI-383 Object-Oriented Programming & Design Lecture 1.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Vladimir Misic: Design111:43:34 AM Software design.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Introduction To System Analysis and Design
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Object Oriented Programming Principles Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-3.
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.
1 OBJECT-ORIENTED THINKING Ziya Karakaya Atılım University Tel: (312) / 5345 Faks: (312) E-posta:
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
I Power Higher Computing Software Development The Software Development Process.
CSE 303 – Software Design and Architecture LECTURE 4.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Chapter 1: OO Thinking Not just learn Java, but also understand why it is the way it is Learn the OO worldview.
1 CMIS301 O-O Thinking Understanding O-O Programming by T Budd.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Dr D. Greer, Queens University Belfast )Chapter Six 1 Software Engineering Chapter Six Software Design Quality Learning Outcomes.
PROG Developing Robust Modular Software.. Objectives What do we want? Programmatic Elements in a Business System. Logic Layer. Persistence (Data)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
1 CSE Programming in C++. 2 Overview Sign roster list Syllabus and Course Policies Introduction to C++ About Lab 1 Fill Questionnaire.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Chapter 2 Principles of Programming and Software Engineering.
Further Investigations into the Development and Evaluation of Reading Techniques for Object-Oriented Code Inspection Alastair Dunsmore, Marc Roper and.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Welcome to OBJECT ORIENTED PROGRAMMING Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
Software Design and Development Development Methodoligies Computing Science.
CSCE 343 – Programming Language Concepts Welcome!.
Programming paradigms
Programming III Introduction.
OOP What is problem? Solution? OOP
CS 1120: Computer Science II Software Life Cycle
CS 1120: Computer Science II Software Life Cycle
Chapter 2. Problem Solving and Software Engineering
Object-Oriented Programming
Presentation transcript:

ceg860 (Prasad)L1SQ1 Software Quality Object-Oriented Programming Paradigm

ceg860 (Prasad)L1SQ2 External vs Internal Factors External Quality Factors –User/Client perspective Correctness, Speed, Ease of use, etc Internal Quality Factors – Designer / Implementer perspective Modularity, Readability, etc Internal Quality is a means to achieve External Quality.

ceg860 (Prasad)L1SQ3 External Factors Correctness The ability of software products to perform their exact task, as defined by their specification. Robustness The ability of software systems to react appropriately to abnormal conditions. Robustness ~ “Stability” Reliability ~ “Degree of Confidence”

ceg860 (Prasad)L1SQ4 Extendibility The ease of adapting software products to changes of specification (cf. Debugging). E.g., Browser Plug-ins. Reusability (cf. code sharing) The ability of software components to serve for the construction of many different applications. E.g., Programming APIs. Compatibility (compositionality) The ease of combining software components. E.g., Java Beans, XML.

ceg860 (Prasad)L1SQ5 Efficiency The ability of software system to place as few demands as possible on computer resources. Portability The ease of transferring software products to various hardware and software environments. Ease of use Ease with which people of various backgrounds and qualifications can learn to use software products and apply them to solve problems.

ceg860 (Prasad)L1SQ6 Software Maintenance Lientz and Swanson study –Changes in User Requirements –Changes in User Requirements (42%) –Changes in Data Formats –Changes in Data Formats (18%) –Emergency Fixes (12%) –Routine Fixes (9%) –Efficiency Improvements –Efficiency Improvements (4%) –Others...

ceg860 (Prasad)L1SQ7 Programming Paradigm A way of conceptualizing what it means to perform computation and how tasks to be carried out on the computer should be structured and organized. Imperative : Machine-model based Functional : Equations; Expression Evaluation Logical : First-order Logic Deduction Object-Oriented : Programming with Data Types

ceg860 (Prasad)L1SQ8 Expressive Power vs Naturalness Object-oriented techniques do not provide any new computational power that permits problems to be solved that cannot, in theory, be solved by other means (Church-Turing Hypothesis). But object-oriented techniques do make it easier and more natural to address problems in a fashion that tends to favor the management of large software projects.

ceg860 (Prasad)L1SQ9 Example of OOP Style TaskTask : Send flowers to Y : Call local florist F and request to send flowers to Y’s address. Object (“server”) Message and Arguments (“behavior”) Agent :Agent F: Call florist G in Y’s town and pass on the request. Method (“interpretation of message”) Delegation Information Hiding

ceg860 (Prasad)L1SQ10 Florists F and G : sell/send flowers Class and instance Calling Agent F: Knows English Inheritance (“ISA”) – The florist F is an American. Agent F: If Y lives in France, make an international call and speak in French. Method Overloading –Resolved using type of address (foreign or local). Receivers : Florist, Friend, or Delivery man Polymorphism Dynamic binding (of method to a message)