squeak-and-se.ppt: uploaded 1 April 2016 at 4:01 pm

Download Report

Transcript squeak-and-se.ppt: uploaded 1 April 2016 at 4:01 pm

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
– Structured Programming

Sun Workstations
– X Windows
–C
Frustrations
Students spent most of their efforts
fighting with X Windows.
 Project didn’t work
 Text has much too much material

Next Attempt (1990)
Material from Software
Engineering Institute
 Macintosh Computers
C

Results
Projects worked!
 Not much design though
 Process not effective

Curricular Changes
Pascal in CS1
 C++ in CS2

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.
Another Attempt (1993)
Booch’s Object-Oriented Design With
Applications
 THINK Class Library

Results
Students produced working
programs
 Not much understanding of OOD

Similar Attempt 1995

Wirfs-Brock Designing Object
Oriented Software
Frustrations
Students didn’t get it.
 Couldn’t talk about design patterns
in a meaningful way

More Curriculum Changes

C++ in CS1 and CS2
OOPSLA ‘97 in Atlanta

Alan Kay’s talk
Java Version (1998)
Booch’s OOA-OOD text
 Rational Rose

Frustrations

Java didn’t deliver
– Still couldn’t talk about design patterns

Steep learning curve for Rational
Rose
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

SE and Squeak! (Spring 2000)
Mark Guzdial’s text: Squeak: ObjectOriented Design with Multimedia
Applications
 Kent Beck: Extreme Programming
Explained.

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.

Focus on Design
Not just getting it to work
 Students re-evaluated their designs
weekly
 Students refactored often

Project Was Fun
Squeak’s multimedia capabilities
made it easy to find a fun project
 Students wrote an MP3 player

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

Outline Continued
2 weeks - Polymorphism
 2 weeks - Design Patterns
 1 weeks - Type vs. Class

Refactoring
Fowler’s Refactoring
 Kent Beck’s Smalltalk Best Practice
Patterns

Abstract Classes
Why?
 Pure virtual methods
 Design Example

Collections
What are they?
 Lab examples

Design Example
•
•
•
CRC Cards
Design a program using CRC Cards
Implement it
MVC
Easy to explain
 Structure is in place

Polymorphism
Finite State Machine
 Counter

Unit Testing
Hard
 Not the concept, just doing it!

Design Patterns
Easy
 Selected examples from GOF book

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.

Bad News

They didn’t do it!
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
