Software Engineering and Squeak

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Software Engineering and Software Engineering and SqueakSqueak

Rick Zaccone

Bucknell University

OutlineOutline

Past EffortsTurning PointCurrent course designConclusions

CS Curriculum in Late 80sCS Curriculum in Late 80s

Pascal in CS1 and CS2Sun Workstations

First AttemptFirst Attempt

Standard Software Engineering text–Waterfall model– Structured Programming

Sun Workstations– X Windows– C

FrustrationsFrustrations

Students spent most of their efforts fighting with X Windows.

Project didn’t workText has much too much material

Next Attempt (1990)Next Attempt (1990)

Material from Software Engineering Institute

Macintosh ComputersC

ResultsResults

Projects worked!Not much design thoughProcess not effective

Curricular ChangesCurricular Changes

Pascal in CS1C++ in CS2

What is Software Engineering?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)Another Attempt (1993)

Booch’s Object-Oriented Design With Applications

THINK Class Library

ResultsResults

Students produced working programs

Not much understanding of OOD

Similar Attempt 1995Similar Attempt 1995

Wirfs-Brock Designing Object Oriented Software

FrustrationsFrustrations

Students didn’t get it.Couldn’t talk about design patterns

in a meaningful way

More Curriculum ChangesMore Curriculum Changes

C++ in CS1 and CS2

OOPSLA ‘97 in AtlantaOOPSLA ‘97 in Atlanta

Alan Kay’s talk

Java Version (1998)Java Version (1998)

Booch’s OOA-OOD textRational Rose

FrustrationsFrustrations

Java didn’t deliver– Still couldn’t talk about design patterns

Steep learning curve for Rational Rose

Turning PointTurning Point

Birth of my son1998-1999 Sabbatical–More Java, learn Smalltalk– Smalltalk, Objects, and Design, by

Chamond LiuKent Beck’s XP manifestoMost software projects are small

SE and Squeak! (Spring 2000)SE and Squeak! (Spring 2000)

Mark Guzdial’s text: Squeak: Object-Oriented Design with Multimedia Applications

Kent Beck: Extreme Programming Explained.

Course ContentCourse 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 DesignFocus on Design

Not just getting it to workStudents re-evaluated their designs

weeklyStudents refactored often

Project Was FunProject Was Fun

Squeak’s multimedia capabilities made it easy to find a fun project

Students wrote an MP3 player

Course OutlineCourse Outline

1.5 weeks - Intro to Squeak1.5 weeks - Extreme Programming1 week - Refactoring1 week - Abstract Classes1 week - Collections1 week - Design and implement1 week - MVC

Outline ContinuedOutline Continued

2 weeks - Polymorphism2 weeks - Design Patterns1 weeks - Type vs. Class

RefactoringRefactoring

Fowler’s RefactoringKent Beck’s Smalltalk Best Practice

Patterns

Abstract ClassesAbstract Classes

Why?Pure virtual methodsDesign Example

CollectionsCollections

What are they?Lab examples

Design ExampleDesign Example

• CRC Cards• Design a program using CRC Cards• Implement it

MVCMVC

Easy to explainStructure is in place

PolymorphismPolymorphism

Finite State MachineCounter

Unit TestingUnit Testing

HardNot the concept, just doing it!

Design PatternsDesign Patterns

EasySelected examples from GOF book

Good NewsGood News

Students had a lot of funAsk me to adjust their accounts so

they could continue working on it after the semester was over.

Bad NewsBad News

They didn’t do it!

ConclusionsConclusions

Squeak allowed me to focus on design and not syntax

Squeak’s multimedia capabilities permit more interesting projects

XP fits neatly into the course

Recommended