200 likes | 343 Views
On a “Buzzword”. Hierarchical Structure. Team 1. CS575 – Software Design Bob Hazen, Mike Mangos, Tim Santucci, Chris Dahn. Historical Context. 1974 No GUIs No IDEs Only thing available is code and imagination . Buzzwords. Parnas uses “hierarchical structures” as his example
E N D
On a “Buzzword” Hierarchical Structure
Team 1 CS575 – Software Design Bob Hazen, Mike Mangos, Tim Santucci, Chris Dahn CS-575 Software Design, Team 1
Historical Context • 1974 • No GUIs • No IDEs • Only thing available is code and imagination. CS-575 Software Design, Team 1
Buzzwords • Parnas uses “hierarchical structures” as his example • Alone, buzzwords do not convey information • Remove definition from a technical explanation • How do buzzwords occur? • Ambiguity – Can mean different things to different people CS-575 Software Design, Team 1
Structures • T.H.E. system • Program hierarchy, abstract machines • Haberman hierarchy, work relationship • RC4000 • Resource hierarchy • Multics • Access hierarchy, protection hierarchy CS-575 Software Design, Team 1
Structure Happens • Intentional • Analytical heuristic • After the fact • How are they useful? • (T.H.E.) Structure is irrelevant to the machine, only useful to the developers • (RC4000) Structure is relevant to the operation of the machine, not necessarily useful to the developers CS-575 Software Design, Team 1
Object Oriented Programming • Smalltalk • C++ • Java • C? CS-575 Software Design, Team 1
Smalltalk • “Pure” OOP CS-575 Software Design, Team 1
C++ • Encapsulation • Polymorphism • Inheritance • Friends CS-575 Software Design, Team 1
Java • Encapsulation • Polymorphism • Inheritance CS-575 Software Design, Team 1
C • Supposedly not OOP • GTK library • button struct used as argument to generic click() function CS-575 Software Design, Team 1
Commercial Off The Shelf Software • Types of COTS Software • End user applications • System components • Libraries • Beliefs • Management • Developer • End User CS-575 Software Design, Team 1
Beliefs: Management • Cheap • Economies of scale • Outsourcing the programming • Reliable CS-575 Software Design, Team 1
Beliefs: Developer • More expensive • Learning to work with it • Verify versions of COTS Software • Not always flexible • Buggy binary libraries • Poor documentation CS-575 Software Design, Team 1
Beliefs: End User • Expects it to work “off the shelf” • Compounded SE problems • User may need to provide COTS Software • Compatibility issues • Web of dependencies • Redhat Linux RPMs CS-575 Software Design, Team 1
Moral • Must be clear, concise and intelligent • Buzzwords are inevitable • Okay, in the proper context • Don’t take things for granted • “Hierarchical structures” was holding back software architecture • Questioning popular modes of thinking eliminates stale ideas CS-575 Software Design, Team 1
“Artificial Intelligence” • Turing Test • Search Algorithms • Machine Vision CS-575 Software Design, Team 1
Turing Test • What is it? • Communication using natural language • Implementation is variable • Mimics human behavior CS-575 Software Design, Team 1
Search Algorithms • Deep Blue vs. Kasparov • Focuses on single best answer/move • Implementation is specific • Mimics human decision making CS-575 Software Design, Team 1
Machine Vision • Face recognition • Focused on pattern recognition • Mimics human visual recognition CS-575 Software Design, Team 1