Object-oriented programming and design1 Object-Oriented Programming and Design Ralph Johnson

Slides:



Advertisements
Similar presentations
Main issues: • Why is reuse so difficult • How to realize reuse
Advertisements

SOLID Object Oriented Design Craig Berntson
SWE 4743 Strategy Patterns Richard Gesick. CSE Strategy Pattern the strategy pattern (also known as the policy pattern) is a software design.
Object-Oriented Design & Programming Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Chapter 25 GRASP: More Objects with Responsibilities 1CS6359 Fall 2011 John Cole.
Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Summer Semester 2006.
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Principles of Object-oriented Programming Programming Language Paradigms August 26, 2002.
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
XP and Refactoring David Talby. Development Methodologies The Software Crisis – 84% of software projects are not on time – 31% of software projects never.
Object-oriented programming and design 1 Smalltalk in a Nutshell Objects & classes Messages & methods Inheritance & metaclasses.
ISBN Chapter 2 Evolution of the Major Programming Languages.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
CSCI-383 Object-Oriented Programming & Design Lecture 15.
Red-Green-Refactor! EclipseCon 2008 Kevin P. Taylor, Nicolaus Malnick Test-Driven Development (TDD) for Eclipse RCP.
UML and Object Oriented Concepts
CIT241 Prerequisite Knowledge ◦ Variables ◦ Operators ◦ C++ Syntax ◦ Program Structure ◦ Classes  Basic Structure of a class  Concept of Data Hiding.
Ruby on Rails Charles Severance Textbook: Build Your own Ruby on Rails Application by Patrick Lenz (ISBN: )
Smalltalk Andy Ko Johnvic Dualan Aaron Israel John John Llenteng Jehrom Christian De Vera Carlo Alvarez Michael John Butuyan.
Chapter 1: Introduction to Design Patterns. SimUDuck Example.
3A-1 1 Introduction to Smalltalk History of Smalltalk The philosophy of Smalltalk:  “...we have a universe of well-behaved objects that courteously ask.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
SOFTWARE REUSE 28 March 2013 William W. McMillan.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
CSC 211 Introduction to Design Patterns. Intro to the course Syllabus About the textbook – Read the introduction and Chapter 1 Good attendance is the.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
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.
Smalltalk for Unix & W i n d o w s Dennis Smith Cherniak Software Development Corporation.
Introduction to SOLID Principles. Background Dependency Inversion Principle Single Responsibility Principle Open/Closed Principle Liskov Substitution.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
Refactoring for Testability (or how I learned to stop worrying and love failing tests) Presented by Aaron Evans.
Software Design 8.1 Compsci 108 l Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful.
1 A Brief Introduction to Design Patterns Based on materials from Doug Schmidt 1.
Software Design 18.1 CPS 108 l Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful.
Incremental Design Why incremental design? Goal of incremental design Tools for incremental design  UML diagrams  Design principles  Design patterns.
1 Venkat Subramaniam Quality of Software Design Good design is critical to a software application A good design has following characteristics –Specific.
EMBEDDED REAL-TIME, INC. December 8, 2015 Java Unit Mark Mosher Rochester Java Users Group.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Design Patterns: Elements of Reusable Object- Orientated Software Gamma, Helm, Johnson, Vlissides Presented By: David Williams.
Five design principles
Patterns Composite Pattern. Patterns All designers use patterns. Patterns in solutions come from patterns in problems. "A pattern is a solution to a problem.
Introduction (Continued) Design Patterns (I) Lecture Two.
Software Design 1.1 CPS 108, Spring 2006 l Object oriented programming and design, we'll use Java and C++  Language independent concepts including design.
Implementation of SCENS Yan Zhao. Current Status Current implementation is web-based –
Design Patterns in Context ©SoftMoore ConsultingSlide 1.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
Design. 2 The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary but not sufficient in order.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)
SOLID Design Principles
Fundamentals of Visual Modeling with UML Module 1: Introduction to Object Technology.
Design Patterns (II) Lecture Three. Solution to Homework Two Used framework Used design patterns: composite and state Question: what are the differences.
STRATEGY PATTERN By Michelle Johnson. BACKGROUND Behavioral Pattern Allow you to define a family of algorithms, encapsulate each one, and make them interchangeable.
Microsoft Advertising 16:9 Template Light Use the slides below to start the design of your presentation. Additional slides layouts (title slides, tile.
Beginning Software Craftsmanship Brendan Enrick Steve Smith
Design I. Properties of good design Minimize complexity Maintainable Loose coupling Extensibility Reusability High fan in Low to medium fan out Portability.
CSCI 383 Object-Oriented Programming & Design Lecture 15 Martin van Bommel.
14 Jul 2005CSE403, Summer'05, Lecture 09 Lecture 09: Fundamental Principles and Best Practices for Software Design Valentin Razmov.
Angular 4 + TypeScript Getting Started
A Brief Introduction to Design Patterns
CMPE 135: Object-Oriented Analysis and Design October 24 Class Meeting
How to be a Good Developer
object oriented Principles of software design
CMPE 135 Object-Oriented Analysis and Design March 21 Class Meeting
Overview of Programming Paradigms
Object Oriented Design & Analysis
Objects and Design Summer 2002
FRAMEWORKS AND REUSE What is “Framework”?
Presentation transcript:

Object-oriented programming and design1 Object-Oriented Programming and Design Ralph Johnson

Object-oriented programming and design2 Goals: to learn l Principles l Patterns l Practices l “Object think” l Frameworks / Design for reuse l Reflection - using objects to implement language

Object-oriented programming and design3 History of Objects l Simula’67 l Smalltalk 72,74,76,78,80 l 1985 C++ (Objective C, Object Pascal) l 1986 OOPSLA l 1990 COM, CORBA l 1994 Design Patterns l 1995 Java l 2001.NET

Object-oriented programming and design4 Design Principles l Code to an interface rather than to an implementation l Encapsulate what varies l Open-closed Principle: Classes should be open to extension and closed to modification l Don’t Repeat Yourself (DRY) l Single Responsibility Principle l Liskov Substitution Principle: Subtypes must be substitutable for their base types

Object-oriented programming and design5 Smalltalk l Extreme object-oriented language l Live objects l Readable library l Strong culture l Influencial, unknown l Fun!

Object-oriented programming and design6 From Smalltalk l WIMP - Windows, Mice, Pointing l Model/View/Controller l Browsers l CRC cards l eXtreme Programming l Automated refactoring tools

Smalltalk family tree l Smalltalk-80 l ObjectWorks ->VisualWorks 1, 2, 3, 5, l Squeak -> Squeak 4.1 -> Pharo -> CUIS l Gemstone l VisualAge for Smalltalk l Smalltalk X, Smalltalk Agents, Dolphin Object-oriented programming and design7

8 The class l First month is Smalltalk l Homework, often several per week l Second half of the semester is group project l Reading and writing patterns l Pharo By Example. l Design Patterns l Domain-Driven Design

Object-oriented programming and design9 Before next time l Get Pharo By Example l Read first three chapters, and follow along with Pharo l Get Pharo l Watch “Growing a Language” by Guy Steele at # #