Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | sophie-doyle |
View: | 214 times |
Download: | 0 times |
An Examination of the An Examination of the Borland C++ BuilderBorland C++ Builder Framework: Illustrating How Frameworks and Framework: Illustrating How Frameworks and
Patterns Improve Software DevelopmentPatterns Improve Software Development
Presented by Michael James AndersonPresented by Michael James Anderson
North Central College North Central College
Naperville, IllinoisNaperville, Illinois
March 12, 2001March 12, 2001
What ? Improve Software Development
Why?•On average, large projects take 50% longer than planned•75% of large projects planned are operational failures•25% of large projects are cancelled
-W. Gibbs, Software’s Chronic Crises Scientific American, Sept. 1994
Software Quality Will Improve!
This Project’s Methodology
1. Create software that will increase QOL
2. Use a software tool to expedite step 1
3. Expand the concept
Software Frameworks
Framework: A collection of Classes. The Classes represent Objects that have been created to be reused and/or combined to build a computer system.
Benefits of Frameworks
• Code Reuse
• Rapid Application Development
• Amortize Development Costs
• Object Oriented Design (OOD)
• Shorten OOD Learning Curve
Pitfalls of Frameworks
• Increased Overhead
• Coding Outside the Framework
• GUI Design is Difficult
• Prototypes are NOT Production Systems
• Framework must be Bullet Proof
Simple Definition
Pattern: A solution to a design problem that is not obvious and that has been corroborated by experts in the field.
Software Pattern History
•1968 NATO Software Engineering Conference
• Notes on the Synthesis of Form, C. Alexander
•1977 A Pattern Language, C. Alexander
•1992 Advanced C++ Programming Styles and Idioms, J. Coplien
•1995 Design Patterns: Elements of Reusable Object-Oriented Software, E. Gamma, R. Helm, R. Johnson, and J.Vlissides
Name: Minimize Human Intervention
Author: James Coplien, (1996) Software Patterns, New York: SIGS Books and Multimedia
Problem: History has shown that people cause the majority of problems in continuously running systems (wrong actions, wrong systems, wrong buttons).
Context: High-reliability continuous-running digital system where downtime, human-induced or otherwise must be minimized.
High-Level Design Pattern
Forces: Humans are truly intelligent; machines aren’t. Humans are better at detecting patterns of system behavior, especially among seemingly random occurrences separated by time (People Know Best).
Humans feel a need to intervene, if they can’t see that the system is making serious attempts at restoration. Human reaction and decision times are very slow (by orders of magnitude) compared to computer processors.
Human operators get bored with ongoing surveillance and may ignore or miss critical events.
Normal processing or failure events are happening so quickly that inclusion of the human operator is infeasible.
State of Pattern Research
Gang of Four Hillside Group
PLoPChili, Euro, Koala
http://hillside.net/patterns/