1 / 35

Software Engineering and Squeak

Software Engineering and Squeak. Rick Zaccone Bucknell University. Outline. Past Efforts Turning Point Current course design Conclusions. CS Curriculum in Late 80s. Pascal in CS1 and CS2 Sun Workstations. First Attempt. Standard Software Engineering text Waterfall model

barney
Télécharger la présentation

Software Engineering and Squeak

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering and Squeak Rick Zaccone Bucknell University

  2. Outline • Past Efforts • Turning Point • Current course design • Conclusions

  3. CS Curriculum in Late 80s • Pascal in CS1 and CS2 • Sun Workstations

  4. First Attempt • Standard Software Engineering text • Waterfall model • Structured Programming • Sun Workstations • X Windows • C

  5. Frustrations • Students spent most of their efforts fighting with X Windows. • Project didn’t work • Text has much too much material

  6. Next Attempt (1990) • Material from Software Engineering Institute • Macintosh Computers • C

  7. Results • Projects worked! • Not much design though • Process not effective

  8. Curricular Changes • Pascal in CS1 • C++ in CS2

  9. What is Software Engineering? • From a standard SE text: SE is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.

  10. Another Attempt (1993) • Booch’s Object-Oriented Design With Applications • THINK Class Library

  11. Results • Students produced working programs • Not much understanding of OOD

  12. Similar Attempt 1995 • Wirfs-Brock Designing Object Oriented Software

  13. Frustrations • Students didn’t get it. • Couldn’t talk about design patterns in a meaningful way

  14. More Curriculum Changes • C++ in CS1 and CS2

  15. OOPSLA ‘97 in Atlanta • Alan Kay’s talk

  16. Java Version (1998) • Booch’s OOA-OODtext • Rational Rose

  17. Frustrations • Java didn’t deliver • Still couldn’t talk about design patterns • Steep learning curve for Rational Rose

  18. Turning Point • Birth of my son • 1998-1999 Sabbatical • More Java, learn Smalltalk • Smalltalk, Objects, and Design, by Chamond Liu • Kent Beck’s XP manifesto • Most software projects are small

  19. SE and Squeak! (Spring 2000) • Mark Guzdial’s text: Squeak: Object-Oriented Design with Multimedia Applications • Kent Beck: Extreme Programming Explained.

  20. Course Content • Lecture material from Mark’s book, Smalltalk, Objects, and Design, and The Smalltalk Report, and other sources. • Used weekly labs for the XP portion of the course. One week iterations.

  21. Focus on Design • Not just getting it to work • Students re-evaluated their designs weekly • Students refactored often

  22. Project Was Fun • Squeak’s multimedia capabilities made it easy to find a fun project • Students wrote an MP3 player

  23. Course Outline • 1.5 weeks - Intro to Squeak • 1.5 weeks - Extreme Programming • 1 week - Refactoring • 1 week - Abstract Classes • 1 week - Collections • 1 week - Design and implement • 1 week - MVC

  24. Outline Continued • 2 weeks - Polymorphism • 2 weeks - Design Patterns • 1 weeks - Type vs. Class

  25. Refactoring • Fowler’s Refactoring • Kent Beck’s Smalltalk Best Practice Patterns

  26. Abstract Classes • Why? • Pure virtual methods • Design Example

  27. Collections • What are they? • Lab examples

  28. Design Example • CRC Cards • Design a program using CRC Cards • Implement it

  29. MVC • Easy to explain • Structure is in place

  30. Polymorphism • Finite State Machine • Counter

  31. Unit Testing • Hard • Not the concept, just doing it!

  32. Design Patterns • Easy • Selected examples from GOF book

  33. Good News • Students had a lot of fun • Ask me to adjust their accounts so they could continue working on it after the semester was over.

  34. Bad News • They didn’t do it!

  35. Conclusions • Squeak allowed me to focus on design and not syntax • Squeak’s multimedia capabilities permit more interesting projects • XP fits neatly into the course

More Related