Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)

Slides:



Advertisements
Similar presentations
When is Orientated Programming NOT? Mike Fitzpatrick.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 CIS601: Object-Oriented Programming in C++ Note: CIS 601 notes were originally developed by H. Zhu for NJIT DL Program. The notes were subsequently revised.
Chapter 1 Object-Oriented System Development
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Chapter 1 Principles of Programming and Software Engineering.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 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.
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.
INFO415 Approaches to System Development: Part 2
Introduction to Object-oriented programming and software development Lecture 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
BCS 2143 Introduction to Object Oriented and Software Development.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
An Object-Oriented Approach to Programming Logic and Design
Object Oriented Concepts & Principles Ingrid Kirschning & Gerardo Ayala.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
CSE 303 – Software Design and Architecture
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
SOFTWARE DESIGN.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Object Oriented Programming Principles Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-3.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CSE 303 – Software Design and Architecture LECTURE 4.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Object-Oriented Programming with Java Lecture 1: Introduction Autumn, 2007.
Learners Support Publications Object Oriented Programming.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Abstraction ADTs, Information Hiding and Encapsulation.
Programming Paradigms Lecturer Hamza Azeem. What is PP ? Revision of Programming concepts learned in CPLB Learning how to perform “Object-Oriented Programming”
9-Dec Dec-15  INTRODUCTION.  FEATURES OF OOP.  ORGANIZATION OF DATA & FUNCTION IN OOP.  OOP’S DESIGN.
Java Fundamentals Usman Ependi UBD
© 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.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Object Oriented Programming. OOP  The fundamental idea behind object-oriented programming is:  The real world consists of objects. Computer programs.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Chapter 2 Principles of Programming and Software Engineering.
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.
Introduction to Object Oriented Programming Lecture-3.
CSE 2341 Object Oriented Programming with C++ Note Set #4
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.
Principles of Programming & Software Engineering
Object Oriented Systems Design
Programming paradigms
Object Oriented Programming
Principles of Programming and Software Engineering
OOP What is problem? Solution? OOP
Object Oriented Concepts -I
CIS601: Object-Oriented Programming in C++
What Is Good Software(Program)?
Object-Oriented Programming
Software Development Chapter 1.
Object Oriented Programming (OOP)- Assist. Prof. Dr
Presentation transcript:

Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)

What Is Good Software? Good programming should generate good software

Software Crisis rapid increases in computer power and the complexity of the problems (SW). Software technology can not follow the complexity. the difficulty of writing correct, understandable, and verifiable computer programs Symptoms Unmanageable difficult to maintain Over-budget. Over-time (late) Poor quality Software often did not meet requirements. Cause : complexity

Software Life Cycle  Requirement Analysis - Problem specification  Design - Program structure - Module specification  Implementation  Test - unit test - integration test  Maintenance

Software Engineering Definition The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software The establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently Goals produce a correct, efficient, and reliable software Minimize the cost of software development and maintenance

Goals of SE Maintainability the ability to easily make changes, enhancements, or improvements. Dependability the ability to rely on the software to function properly when needed. Efficiency the ability for software to use computing resources effectively (mainly space and time). Usability the ability for the end user to easily and effectively put the software to proper use.

Software Properties Modularity – divide and conquer. Encapsulation – hide the implementation. Localization – collect similar things together. Abstraction – simplifying comples reality. Uniformity – make everything look similar. Completeness – do everything required. Confirmability – be able to prove that the software works properly.

Programming Methodology Unstructured Programming Procedural Programming Modular(Structured) Programming Object Oriented Programming

Unstructured Programming Consists of only one main program. a sequence of commands or statements Only global data Use goto statement Disadvantage If there is the same statement sequence?

Procedural Programming Program A sequence of procedure calls Procedure the same seqeunce of statements More structured : reduce repetition More error-free Structured Programming Divide and conquer Functional decomposition

Modular Programming SW is composed of separate parts (module) procedures of a common functionality are grouped together into separate modules module Program uses modules through interface. Interface : visible, implementation : hidden Improve maintainability

Don’t use Global Variables Using global variables : unsafe!

Modularized Data Localize data inside the modules This makes modules more independent of one another Safe! Local data

Problems of Procedural/Modular Programming Decoupled (seperation of) data and operations Doesn’t work well in large systems Difficult to debug, extend, and maintain Code reuse limited Explicit creation and destruction Many others compared to OOP

OOP (Object Oriented Programming) Program consists of a set of interacting objects. Each object keeps its own state. Combine data and operation into an object

What is an Object? Object is an instance of a class Objects have identity attribute behavior (method) relationships with other objects

Structured Programming vs OOP Car, Book, Apple, Ship rideeatread operate Car ride Apple eat Book read Ship operate OOP Structured Programming

Structured Programming vs OOP OOP Structured Programming data + function = programobject + object = program data function data function + = object

Views of OOP OOP does not consider the problem domain as just a flow of processings. OOP defines objects related to the problem domain and regards these objects communicate information each other (through message passing). On the other hand, structured programming treats data and operations independently even though they are related.

Software Components( 부품화 ) In OO programs, an object works as a component( 부품 ) of software Interface of an object should be well defined.

Why Object Oriented? A new way to think of software Reuse software, not rewrite Increase Programmer productivity Quality of software Understandability of software Scalability (extensibility,reusability) of software Lifetime (maintainability) of software