Informatics 122 Software Design II

Slides:



Advertisements
Similar presentations
(c) 2009 University of California, Irvine – André van der Hoek1April 20, 2015 – 00:59:05 Informatics 122 Software Design II Lecture 11 André van der Hoek.
Advertisements

Patterns Reusable solutions to common object-oriented programming problems When given a programming problem, re-use an existing solution. Gang of Four.
© 2009 University of California, Irvine – André van der Hoek1February 8, 2009 – 21:49:30 Informatics 122 Software Design II Lecture 9 André van der Hoek.
© 2010 University of California, Irvine – André van der Hoek1June 12, 2015 – 07:51:20 Informatics 121 Software Design I Lecture 8 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 18:19:12 Informatics 122 Software Design II Lecture 5 André van der Hoek &
(c) 2009 University of California, Irvine – André van der Hoek1June 13, 2015 – 21:42:16 Informatics 122 Software Design II Lecture 8 André van der Hoek.
© 2010 University of California, Irvine – André van der Hoek1June 14, 2015 – 15:24:35 Informatics 121 Software Design I Lecture 11 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 15, 2015 – 14:08:09 Informatics 122 Software Design II Lecture 4 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 15, 2015 – 20:01:34 Informatics 122 Software Design II Lecture 1 André van der Hoek &
Super-Design Informatics 122 Alex Baker. System Design Arch. Imp. Design Code In this class we’ve gone…
© 2010 University of California, Irvine – André van der Hoek1June 16, 2015 – 21:42:11 Informatics 121 Software Design I Lecture 7 André van der Hoek &
© 2009 University of California, Irvine – André van der Hoek1June 17, 2015 – 09:17:24 Informatics 122 Software Design II Lecture 6 André van der Hoek &
(c) 2010 University of California, Irvine – André van der Hoek1February 21, 2010 – 18:05:18 Informatics 122 Software Design II Lecture 10 Nick Lopez Duplication.
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.
© 2010 University of California, Irvine – André van der Hoek1June 26, 2015 – 00:06:40 Informatics 122 Software Design II Lecture 6 André van der Hoek &
© 2010 University of California, Irvine – André van der Hoek1June 28, 2015 – 09:26:53 Informatics 121 Software Design I Lecture 12 André van der Hoek &
(c) 2010 University of California, Irvine – André van der Hoek1June 29, 2015 – 08:55:05 Informatics 122 Software Design II Lecture 8 André van der Hoek.
© 2009 University of California, Irvine – André van der Hoek1June 29, 2015 – 10:35:56 Informatics 122 Software Design II Lecture 4 André van der Hoek &
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
© 2010 University of California, Irvine – André van der Hoek1July 14, 2015 – 14:37:42 Informatics 122 Software Design II Lecture 4 Nick Lopez Duplication.
(c) 2010 University of California, Irvine – André van der Hoek1July 16, 2015 – 13:45:31 Informatics 122 Software Design II Lecture 8 Nick Lopez Duplication.
Informatics 122 Software Design II Lecture 9 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
CSSE 374: Introduction to Gang of Four Design Patterns
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
© 2010 University of California, Irvine – André van der Hoek1October 23, 2015 – 10:21:58 Informatics 122 Software Design II Lecture 1 André van der Hoek.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
DESIGN PATTERNS CSC532 Adv. Topics in Software Engineering Shirin A. Lakhani.
18 April 2005CSci 210 Spring Design Patterns 1 CSci 210.
ECE450S – Software Engineering II
Introduction to Design Patterns. Questions What is a design pattern? Who needs design patterns? How different are classes and objects in APL compared.
Creational Patterns
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
Design Patterns. 1 Paradigm4 Concepts 9 Principles23 Patterns.
Design Patterns Introduction
Informatics 122 Software Design II Lecture 12 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Chapter 10 Design Patterns.
Chapter 5:Design Patterns
Design Patterns Lecture part 2.
Introduction to Design Patterns
object oriented Principles of software design
Informatics 121 Software Design I
Informatics 122 Software Design II
Software Engineering Lecture 7 - Design Patterns
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 121 Software Design I
DESIGN PATTERNS : Introduction
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 121 Software Design I
Informatics 122 Software Design II
Informatics 122 Software Design II
Informatics 122 Software Design II
Remarks on Software Design
Informatics 122 Alex Baker
Presentation transcript:

Informatics 122 Software Design II Lecture 11 André van der Hoek Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. May 20, 2019 – 22:13:49 (c) 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Today’s Lecture Reverse engineering Design – Implementation – Reverse Engineering Brief recap Feedback May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Reverse Engineering May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Design – Implementation – Reverse Engineering May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Review: Design Diamond Domain of Materials Domain of Use Knowledge Representation Ideas Activity concern manipulates informs Goal captures enhances May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

System and Implementation Design System design describes what the software system should do focus towards addressing Goal and Domain of Use “How do we fundamentally approach the problem?” typically represents an intermediate “design in progress” architecture design can be part of system design Implementation design describes what the implementer should do focus towards addressing Domain of Materials “How do we make the approach reality?” typically represents a final “completed design” module design can be part of implementation design May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Goals of Implementation Design Provide a shared plan to follow consistency Ensure the plan meets its recipients’ needs helpfulness Ensure the solution is appropriate effectiveness May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

From Informatics 121 to Informatics 122 To date, much of our focus has been on system design creative thinking learning to rely on colleagues incomplete specifications no implementation Now, it is time to turn our attention to implementation design nuts and bolts (but still some creative thinking) specifying for colleagues (but still relaying some on colleagues) complete specifications implementation May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek But How to Get There? Practice, practice, practice… Examples, examples, examples… Some guidelines exist May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Patterns Apply Two Design Principles Program to an interface, not an implementation interface should be separately defined, using abstract classes Favor object composition over inheritance May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Original Catalogue of Patterns Purpose Creational Structural Behavioral Scope Class Abstract Method Adapter (class) Interpreter Template Method Object Abstract Factory Builder Prototype Singleton Adapter (object) Bridge Composite Decorator Façade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Abstract Factory (Creational, Object) It isolates concrete classes It makes exchanging product families easy. It promotes consistency among products. Supporting new kinds of products is difficult. May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

How Much Design Is Too Much Design? low likelihood of future changes high May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Assignment 2a: Basic Structure Implement the game “Theseus and the Minotaur” according to the UML design provided on the course web site You are free to make any updates to the design you desire, but if you do so they must be properly documented and your implementation has to follow your new design A sample running version of the game is available on the web http://www.logicmazes.com/theseus.html compared to this game, we do not use walls, but blocks to delineate possible paths May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Assignment 2b: Basic Structure Design and implement a modified version of the game “Theseus and the Minotaur” You may use your design from Assignment 2a as the basis, but you may also build an entirely new design from scratch, as long as all your decisions are properly documented and your implementation follows your new design May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Assignment 3 Refine the official design of Theseus and the Minotaur (as provided on the course web site) by furnishing any missing classes, methods, and local variables applying design patterns to improve the structure of the design Deliverables a print-out of your final UML design a print-out of your design rationale which critical decisions did you make, and why? Print-outs are to be handed in in class May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Design Recovery Recovered abstractions need: formal specifications module breakdowns data abstractions dataflows informal knowledge All information required to understand what how why (Biggerstaff, 1989) May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Cake Recovery How difficult was this? Why? What would have helped more: Access to BnA/Archstudio design docs Access to running code Another 5 days of time Rather have done something Jetris-like? May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

A Critical Design Tradeoff full control full understanding flexibility competitive advantage can be instantaneous external support quality build (and thus design) buy or get for free (and thus fit into a design) time cost maintenance standards evaluation cost licensing lack of customizability obsolescence urgent bugs May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

Component Reuse Process Identify preliminary architecture Identify potential places for reuse Establish selection criteria (per place) Update architecture Select component Evaluate components Search for applicable components May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Assignment 5 Research available components that provide a particular kind of functionality for a layered software design environment, set up selection criteria, and make a choice of the component that you believe is best Create a 15 minute presentation that describes your search process candidate components you found strengths weaknesses your selection criteria the component you deem best (and why) a (rough) architecture May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Final Project System Design Arch. Imp. Code May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek Assignment 6 – Groups Group 1: MIKE WADHERA, MITCH WILLIAMS, JULIE RICO, SAM ARCHER, SAM CHANG a mini spreadsheet Group 2: KYLE STRASSER, CHRIS BAKER, SEAN CASHIN, JAMES GARY, NICK INGERSOLL a mini database Group 3: GABRIELA MARCU, ANGELO PIOLI, BRYANT HORNICK, NG WENG LEONG, PETER LEE a mini web authoring tool Group 4: JUNG HO KIM, CYNTHIA K. LAM, MICHELLE ALVAREZ, JASON DRAMBY a mini slide authoring and presentation tool Focus on a simple implementation all projects need to be able to save and open files we will guide you during Monday’s meetings, adaptability May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek

© 2006 University of California, Irvine – André van der Hoek In Closing… Thanks for a fun (albeit very busy) quarter If you have feedback on the class, I would love to hear it (both positive and negative; after all, this was a first) Do not forget to fill out the online course evaluations May 20, 2019 – 22:13:49 © 2006 University of California, Irvine – André van der Hoek