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.

Slides:



Advertisements
Similar presentations
Reading Your Science Textbook Strategies for comprehension.
Advertisements

Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
Alan Kay (1940- ) Pioneer of Object Oriented programming Wrote the first OO language, Smalltalk Developed the prototypes for network workstations in 1970.
The Bridge Pattern.. Intent Decouple an abstraction from its implementation so that the two can vary independently Also known as: Handle/Body.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Patterns Reusable solutions to common object-oriented programming problems When given a programming problem, re-use an existing solution. Gang of Four.
05/26/2004www.indyjug.net1 Indy Java User’s Group June Knowledge Services, Inc.
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Design Patterns. What are design patterns? A general reusable solution to a commonly occurring problem. A description or template for how to solve a problem.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
CPS 108 : Spring What is Computer Science? What is it that distinguishes it from the separate subjects with which it is related? What is the linking.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
MVC and MVP. References enter.html enter.html
Design Dan Fleck CS 421 George Mason University. What is the design phase? Analysis phase describes what the system should do Analysis has provided a.
樣式導向設計 (Pattern-Oriented Design) 課程簡介 Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering.
CSSE 374: Introduction to Gang of Four Design Patterns
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
COMCOM omponent bject odel After this presentation, you will: Be Able To: Conceptual understanding of COM How it works, What it’s used for Decode Acronyms.
ISP666 MVC & Design Patterns. Outline Review Event Programming Model Model-View-Controller Revisit Simple Calculator Break Design Patterns Exercise.
January 12, Introduction to Design Patterns Tim Burke References: –Gamma, Erich, et. al. (AKA, The Gang of Four). Design Patterns: Elements of Reusable.
Design Patterns in Java Chapter 1 Introduction Summary prepared by Kirk Scott 1.
Patterns in programming 1. What are patterns? “A design pattern is a general, reusable solution to a commonly occurring problem in software. A design.
Software Design 4.1 Tell, Don't Ask l Tell objects what you want them to do, do not ask questions about state, make a decision, then tell them what to.
Course Overview & Topics CSc 335: Object-Oriented Programming and Design © Rick Mercer 1.
DAAD project “Joint Course on OOP using Java” On Object Oriented modeling in Java (Why & How) Ana Madevska Bogdanova Institute of informatics Faculty of.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
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.
Model View Controller A Pattern that Many People Think They Understand, But Has A Couple Meanings.
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Welcome to the Sakai Oxford Tetra ELF Workshop.
1 A Brief Introduction to Design Patterns Based on materials from Doug Schmidt 1.
Introduction to Design Patterns. Questions What is a design pattern? Who needs design patterns? How different are classes and objects in APL compared.
Software Design 14.1 CPS 108 l Object oriented design and programming of medium-sized projects in groups using modern tools and practices in meaningful.
Appreciating OO Design Principles & Patterns Dale Skrien Dept of Computer Science Colby College Waterville, ME 04901
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Design Patterns. 1 Paradigm4 Concepts 9 Principles23 Patterns.
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.
Creative Commons Attribution- ShareAlike 2.5 License Sakai Programmer's Café Sakai Oxford Tetra ELF Workshop Welcome to the Sakai Oxford Tetra ELF Workshop.
Example to motivate discussion We have two lists (of menu items) one implemented using ArrayList and another using Arrays. How does one work with these.
Course Introduction MIS 3501, Spring 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 1/12/2016.
CS 210 Proxy Pattern Nov 16 th, RMI – A quick review A simple, easy to understand tutorial is located here:
CompSci Inheritance and Interfaces  Inheritance models an "is-a" relationship  A dog is a mammal, an ArrayList is a List, a square is a shape,
Session 30 Final Review. Final Details Wednesday, December 14 at 8 AM Wright 5 (same classroom) Final will be comprehensive Open book Open notes Test.
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
Duke CPS CPS 108, Spring 1998 l Software Design and Implementation ä Object oriented programming and design ä good design helps do away with late.
Duke CPS Programming Heuristics l Identify the aspects of your application that vary and separate them from what stays the same ä Take what varies.
Software Design 17.1 Aside: ethics of software l What is intellectual property, why is it important?  what about FSF, GPL, copy-left, open source, … 
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 22: Objectifying Objects.
Eclipse.NET An Integration Platform for ProjectIT-Studio João Saraiva IST & INESC-ID (GSI)
Design Patterns CSCE 315 – Programming Studio Spring 2013.
Elaboration: Iteration 2. Elaboration: Iteration 2 Basics Iteration 1 ends with : All the software has been tested: The idea in the UP is to do early,
CSC 222: Object-Oriented Programming
The Object-Oriented Thought Process Chapter 15
MPCS – Advanced java Programming
Design Patterns Lecture part 2.
Plan for the week Working in groups/teams, horrible bosses?
Class 22: Inheritance CS150: Computer Science University of Virginia
Design Patterns.
Plan for today Refactoring and Design Patterns
How to be a Good Developer
object oriented Principles of software design
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.
08/15/09 Design Patterns James Brucker.
Object Oriented Design Patterns - Creational Patterns
Garrett’s Story about Right and Wrong
Chapter 8, Design Patterns Introduction
Presentation transcript:

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 ways l High level OO concepts  XP: Extreme Programming: simplicity, refactor, grow code  Tell, don't ask: designing classes  Open/Closed: open to extension, closed to modification l Learn to manage time, improve coding methods, e.g., can you really code effectively at 3:00 am?

Software Design 18.2 Essential Design Patterns (by name) l MVC, aka Observer/Observable  Separate concerns, especially important for GUIs l Composite  Container is/contains JComponent: File/Directory l Factory  Separate creation from class, install new creators l Proxy/Adapter  Stand-in with same interface, adapt interface as needed l Decorator  Is-a and Has-a, e.g., Filters and java I/O l Command  Function/request object, undoable action

Software Design 18.3 Patterns continued l Singleton  Enforce single point of creation, conserve resources l Template method  Hooks filled in by sublcasses l Iterator  Common from previous courses, essential in Java l Strategy  Human player, AI, change algorithm l Forces in a problem lead to solution via appropriate pattern  Should know what GOF is: gang of four

Software Design 18.4 Something old, something new l CPS 108 has used Java since 1996 always with C++  Before ’96 used Tcl/Tk or Python  In Fall '04 CPS 6/100 move to Java, consequences?  What is the purpose of CP S108? l Is Unix an issue? Command-line? What about all Eclipse?  Do we need to use/understand the command line? l What about groups?  110 model, keep same group always  108 model, chaotic? Re-randomize? Always choice?

Software Design 18.5 Alan Kay, winner of 2004 Turing Award l Alto, Smalltalk, Squeak, Object-Oriented Programming "Don't worry about what anybody else is going to do… The best way to predict the future is to invent it. Really smart people with reasonable funding can do just about anything that doesn't violate too many of Newton's Laws!"

Software Design 18.6 Alan Kay on Education and OO l "By the time I got to school, I had already read a couple hundred books. I knew in the first grade that they were lying to me because I had already been exposed to other points of view. School is basically about one point of view -- the one the teacher has or the textbooks have. They don't like the idea of having different points of view, so it was a battle. Of course I would pipe up with my five-year-old voice." l Java and C++ make you think that the new ideas are like the old ones. Java is the most distressing thing to hit computing since MS-DOS. l I invented the term "Object-Oriented", and I can tell you I did not have C++ in mind.

Software Design 18.7 CPS 108 l Learn how to read l Learn how to invent your own standards l Learn to work in a group l Learn about issues in developing programs and code l Learn about design methodologies like XP l Lack of reflection l Lack of feedback l Lack of evaluated re-writing l How to fix?

Software Design 18.8 Future of Compsci 108 l Start with Java, end with C++?  Problems? Benefits? l Use Java, concentrate on web programming?  PHP? Other alternatives? l Where does it fit in Compsci/Engineering/Bioinformatics?  Should we be concerned about these? l Followup courses?  109? Mentor?