Software Lifecycle A series of steps through which a software product progresses Lifetimes vary from days to months to years Consists of –people –overall.

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

Computer Science Dept. Fall 2003 Object models Object models describe the system in terms of object classes An object class is an abstraction over a set.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
Classes & Objects Computer Science I Last updated 9/30/10.
Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
Ch 12: Object-Oriented Analysis
Object-Oriented Analysis and Design
Introduction To System Analysis and Design
1 SWE Introduction to Software Engineering Lecture 13 – System Modeling.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
1 Classes, Encapsulation, Methods and Constructors Class definitions Scope of Data –Instance data –Local data The this Reference Encapsulation and Java.
Overview - Design Introduction to Design
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 13: Object-Oriented Programming
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Overview - Object-Oriented Analysis and Design
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
INTRODUCTION TO JAVA PROGRAMMING Chapter 1. What is Computer Programming?
C++ fundamentals.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
The chapter will address the following questions:
Introduction To System Analysis and design
Introduction to Object Oriented Design. Topics Designing Your Own Classes Attributes and Behaviors Class Diagrams.
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to Classes and Objects Outline Introduction Classes, Objects, Member Functions and Data.
Microsoft Visual Basic 2005: Reloaded Second Edition
INTRODUCTION TO PROGRAMMING STRUCTURE Chapter 4 1.
Introduction to Object-oriented programming and software development Lecture 1.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
Lecture 8 Inheritance Richard Gesick. 2 OBJECTIVES How inheritance promotes software reusability. The concepts of base classes and derived classes. To.
An Object-Oriented Approach to Programming Logic and Design
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Introduction To System Analysis and Design
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Copyright © 2012 Pearson Education, Inc. Chapter 13: Introduction to Classes.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Chapter 11: Introduction to Classes. In this chapter you will learn about: – Classes – Basic class functions – Adding class functions – A case study involving.
1 Programming Paradigms Object Orientated Programming Paradigm (OOP)
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
Learners Support Publications Object Oriented Programming.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
CSCI 1100/1202 April 1-3, Program Development The creation of software involves four basic activities: –establishing the requirements –creating.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
CS451 - Lecture 2 1 CS451 Lecture 2: Introduction to Object Orientation Yugi Lee STB #555 (816) * Acknowledgement:
Designing Classes CS239 – Jan 26, Key points from yesterday’s lab  Enumerated types are abstract data types that define a set of values.  They.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Object Oriented Programming. OOP  The fundamental idea behind object-oriented programming is:  The real world consists of objects. Computer programs.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
Object Oriented Paradigm OOP’s. Problems with Structured Programming As programs grow ever larger and more complex, even the structured programming approach.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
 The Object Oriented concepts was evolved for solving complex problems. Object- oriented software development started in the 1980s. Object-oriented design.
Object Oriented Programming
OOP What is problem? Solution? OOP
Chapter 3: Using Methods, Classes, and Objects
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Introduction to Classes
Need for the subject.
COP 3330 Object-oriented Programming in C++
What Is Good Software(Program)?
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
Presentation transcript:

Software Lifecycle A series of steps through which a software product progresses Lifetimes vary from days to months to years Consists of –people –overall process –intermediate “products” –stages of the process note the reality of feedback loops, the stages of the process are not discrete

Phases of a Software Lifecycle Standard Phases –Requirements Analysis & Specification –Design –Implementation and Integration –Operation and Maintenance –Change in Requirements –Testing throughout! Phases promotes manageability and provides organization

Background - Objects Traditionally, programming has been “procedure-oriented” –Focus on process, algorithms, and tools –A system’s data has secondary importance Data and process considered separate –The data is external to a program; a program reads it in, manipulates it, and then writes it out –Relationships between data types not considered important As a result, similarities were not leveraged leading to duplication of code

Background, continued Problems –Lack of data encapsulation changes to a data format typically required major rewrites –Poor models “Real world entities” not well represented in requirements, design and implementation –If an assumption about an entity changes, multiple modules may have to change in response (since logic about an entity may be spread across modules) this could be blamed on the poor abstraction of the structures and ADT’s used on common programming languages some years ago

–Low reuse Procedure-oriented modules are often difficult to reuse outside of their original development context –Ever written in a procedure-oriented language? »global variables everywhere - awful messes can occur

Object-Oriented Programming Objects combine both data and process –Increases the stature of data to be equivalent to process Focus on “real-world entities” –Objects often represent real-world counterparts: people, countries, calendars, cars, organizations, etc. this allows for better abstraction of our programming entities to the corresponding real entities contained in the problem space in the real world.

Enables Categorization –Objects with high levels of abstraction can often be specialized to more specific categories For instance, car  Honda  Civic or person  athlete  soccer player –We get “inheritance” and “polymorphism” from this polymorphism will be methods with the same name that perform different tasks (see KW text)

Object-Oriented Programming, continued Addresses “Procedure-Oriented” Problems –Data and Process encapsulation Encapsulates data and related algorithms behind a single interface; both can be evolved without affecting other objects or modules (as long as the interface is constant) –recall ADT’s (Parnas) –Natural Models Objects can be used to appropriately structure a design or accurately create a set of requirements based on knowledge about the real-world counterpart –but consider Jackson’s criticisms –Increased Reuse Well-designed object is often independent of the original development context

Object name state (attributes) access to attributes Method 1 Method 2 Method 3 Objects Data and operations are defined as a single unit Object := –encapsulated state (attributes) –methods that exclusively control access to the state

Classes Each object is an instance of a class A class serves as a blueprint –It defines the attributes and methods for the class –Thus, each object of a class has exactly the same interface and set of attributes each object can have different values for its attributes Professor Name: string Dept: string get_name() return string.... class Professor (Professor) Jean Raoul French Debra Richardson ICS get_name().... get_name().... Object instances of Professor

Object Model Notation: Introduction Class Name (Class Name) InstanceVariable1 InstanceVariable2: type InstanceVariable1 = value InstanceVariable2: type Method1() Method2(arguments) return type Method1() Method2(arguments) return type Classes are represented as rectangles; The class name is at the top, followed by attributes (instance variables) and methods (operations) Depending on context some information can be hidden such as types or method arguments Objects are represented as rounded rectangles; The object’s name is its classname surrounded by parentheses Instance variables can display the values that they have been assigned; pointer types will often point (not shown) to the object being referenced

Object Communication Objects communicate via method invocation –This is known as message passing –Legal messages are defined by the object’s interface –This interface is the only legal way to access another object’s state (Rectangle) get_width get_height calculate_area width height Object

Objects: Terminology Class –set of objects having the same methods and attributes –has a specification and an implementation –behavior is defined by the operations that can be performed on objects belonging to the class Method –action that can be performed on any member of a class Encapsulation –packaging the specification and implementation of a class so that the specification is visible and the implementation is hidden from clients Instantiation –the creation of a new object belonging to a class

YOUR development process and its documentation Review your text section 1.5. Specify the problem requirements (what is needed?) –analyze to identify the problem inputs and outputs –identify constraints on system –identify processes to transform the inputs to outputs

Design the classes to solve the problem –3 possibilities locate reusable classes in libraries to use modify existing classes to make them reusable design new classes where necessary –usually involves a worker class to represent the object to be modeled, and –a user interface class or an application class to interact with the user

Implementation –write out the classes, implement the algorithm

Test and Verify the classes –this can become a big deal Maintain and update when needed