GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma,...
-
Upload
clifford-french -
Category
Documents
-
view
216 -
download
1
Transcript of GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma,...
GE 393Software Design
Design Patterns: Elements of Reusable Object Oriented Software
ByGamma, Helm, Johnson and Vlissides
The practice of Programming , By
Brian W. Kernighan
Software Creativity, By Robert L. Glass
Serious Creativity By Edward de
Bono
Presented By Agnita Pandian
What is Software Design??
• The hardest part in software generation
• It’s a problem-solving activity
• the world of technology and the world of human purposes---bring the two together
Cont…
• “Beauty is in the eye of the beholder”
• Software design means different things to different people
• Is performance important? Is it ease of maintenance? ease of use? security? Modularity?
Creativity generates truly great
software • Human Imagination is the only limit e.g. Lotus • Good software comes when you take
time to explore the design space of possibilities
e.g. Windows• So they say, Generating Software is one
of the most creative activity by humanse.g. Compilers
Software Engineering model • Reduces our ability to be creative• Methodologies entails repeatable
results• Reuse of the software• Ship dates• Simple Example:
Why do you need Creativity??• As Edward de Bono argues,
"...unless your job involved creativity, you are (eventually) replaceable by a computer."
• The right design style for the right product gives structure for future
• Innovation• Ease our lifestyles• e.g. Put together different modules
to make a PC
The real concern is…….
• To design modules that cut development time
• To design software that runs more efficiently using minimum resources
• Ultimately, you want to reduce costs…
Object Oriented Software • Smarter coding• Objects• Class• Inheritance• Polymorphism• Overloading• Encapsulation
Creativity
• Sorting• Hash Tables• Data Structures• Internet• Interfacing w/Hardware• Testing
Learn to be creative
• Specify completely the user's whole experience
• Balance your goals and constraints
• Know the programming language well
References
• Robert L. Glass, Software Creativity; Prentice Hall 1995
• Serious Creativity by Edward de Bono • Programming Pearls by Jon Bentley• Bringing Design to Software Edited by
Terry Winograd