GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma,...

11
GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, 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

Transcript of GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma,...

Page 1: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

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

Page 2: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

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

Page 3: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

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?

Page 4: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

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

Page 5: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

Software Engineering model • Reduces our ability to be creative• Methodologies entails repeatable

results• Reuse of the software• Ship dates• Simple Example:

Page 6: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

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

Page 7: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

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…

Page 8: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

Object Oriented Software • Smarter coding• Objects• Class• Inheritance• Polymorphism• Overloading• Encapsulation

Page 9: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

Creativity

• Sorting• Hash Tables• Data Structures• Internet• Interfacing w/Hardware• Testing

Page 10: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

Learn to be creative

• Specify completely the user's whole experience

• Balance your goals and constraints

• Know the programming language well

Page 11: GE 393 Software Design Design Patterns: Elements of Reusable Object Oriented Software By Gamma, Helm, Johnson and Vlissides The practice of Programming,

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