230 likes | 336 Vues
Delve into the complexities of Cake Recovery, exploring the difficulties faced during the design process. This analysis covers opinions on the approach, the importance of understanding foundational documents, and the potential benefits of additional time and resources. Key themes include the effectiveness of reverse engineering tools, comparing design strategies, and the overall experience in software design. We also question whether the design was effective, easy to understand, or expandable, providing a comprehensive perspective on the learning journey through Cake Recovery.
E N D
Design Recovery II Informatics 122 Alex Baker
Cake Recovery – Opinions? • How difficult was this? • Why?
Cake Recovery – Opinions? • 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
Cake Recovery – Opinions? • 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?
As bad as it looked? • Better or worse?
Our Perspective: • Cons: • Can’t use the strategies I mentioned • Don’t learn to use reverse engineering tools • Hard work, might obscure obvious lessons • Distracting
Our Perspective: • Cons: • Can’t use the strategies I mentioned • Don’t learn to use reverse engineering tools • Hard work, might obscure obvious lessons • Distracting • Pros: • Forces focus on code • More interesting comparisons • More involved experience • Realistic?
Domain of Use Knowledge Design Recovery in Diamond • Ideas from your documents • Connection to the designers’ ideas Dom Materials Representation Ideas Activity concern manipulates informs captures enhances Goal
Your Designs • How well do you understand Cake? • What was your process? • Ideas • How did you find out? • Was this a good idea for the designers?
Representations • Best approach? • Precision versus elegance • Multiple diagrams
Success? • How well do you understand it now? • How prepared would you be to implement changes? • Add a new kind of thing? • Make the boxes semi-transparent? • Add double-click behavior?
The Nature of Software • Invisibility • Understanding 3rd party’s towers • Complexity • If users want a program to do 30 different things, then the program must do those 30 different things • Elegance? • Conformity • Changeability [Brooks: No Silver Bullet]
Is this a good design? • Was it easy to understand? • Would it have been easy to implement? • Can it be expanded?
Is this a good design? • Was it easy to understand? • Would it have been easy to implement? • Can it be expanded? • What would you change?
What was the effect of using BnA? • Positive
What was the effect of using BnA? • Positive • Negative
What was the effect of using BnA? • Positive • Negative • The weight of (re)use
Midterm Review • Good design / bad design • Theseus and the Minotaur • Design patterns • Design recovery
Possible Midterm Contents • Design improvement exercise • Design principles • Patterns • Recovery principles • Specific question about Cake (?)
Mid-Course Checkup • Lost? • Critique? • Create? • How do you design software? • Implementation?