Presentation is loading. Please wait.

Presentation is loading. Please wait.

Informatics 122 Software Design II

Similar presentations


Presentation on theme: "Informatics 122 Software Design II"— Presentation transcript:

1 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

2 © 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

3 © 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

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

5 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

6 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

7 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

8 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

9 © 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

10 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

11 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

12 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

13 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

14 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 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

15 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

16 © 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

17 © 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

18 © 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

19 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

20 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

21 © 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

22 © 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

23 © 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

24 © 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


Download ppt "Informatics 122 Software Design II"

Similar presentations


Ads by Google