200 likes | 313 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