35
Software Engineering Software Engineering and Squeak and Squeak Rick Zaccone Bucknell University

Software Engineering and Squeak

  • Upload
    barney

  • View
    20

  • Download
    0

Embed Size (px)

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

Page 1: Software Engineering and Squeak

Software Engineering and Software Engineering and SqueakSqueak

Rick Zaccone

Bucknell University

Page 2: Software Engineering and Squeak

OutlineOutline

Past EffortsTurning PointCurrent course designConclusions

Page 3: Software Engineering and Squeak

CS Curriculum in Late 80sCS Curriculum in Late 80s

Pascal in CS1 and CS2Sun Workstations

Page 4: Software Engineering and Squeak

First AttemptFirst Attempt

Standard Software Engineering text–Waterfall model– Structured Programming

Sun Workstations– X Windows– C

Page 5: Software Engineering and Squeak

FrustrationsFrustrations

Students spent most of their efforts fighting with X Windows.

Project didn’t workText has much too much material

Page 6: Software Engineering and Squeak

Next Attempt (1990)Next Attempt (1990)

Material from Software Engineering Institute

Macintosh ComputersC

Page 7: Software Engineering and Squeak

ResultsResults

Projects worked!Not much design thoughProcess not effective

Page 8: Software Engineering and Squeak

Curricular ChangesCurricular Changes

Pascal in CS1C++ in CS2

Page 9: Software Engineering and Squeak

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.

Page 10: Software Engineering and Squeak

Another Attempt (1993)Another Attempt (1993)

Booch’s Object-Oriented Design With Applications

THINK Class Library

Page 11: Software Engineering and Squeak

ResultsResults

Students produced working programs

Not much understanding of OOD

Page 12: Software Engineering and Squeak

Similar Attempt 1995Similar Attempt 1995

Wirfs-Brock Designing Object Oriented Software

Page 13: Software Engineering and Squeak

FrustrationsFrustrations

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

in a meaningful way

Page 14: Software Engineering and Squeak

More Curriculum ChangesMore Curriculum Changes

C++ in CS1 and CS2

Page 15: Software Engineering and Squeak

OOPSLA ‘97 in AtlantaOOPSLA ‘97 in Atlanta

Alan Kay’s talk

Page 16: Software Engineering and Squeak

Java Version (1998)Java Version (1998)

Booch’s OOA-OOD textRational Rose

Page 17: Software Engineering and Squeak

FrustrationsFrustrations

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

Steep learning curve for Rational Rose

Page 18: Software Engineering and Squeak

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

Page 19: Software Engineering and Squeak

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.

Page 20: Software Engineering and Squeak

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.

Page 21: Software Engineering and Squeak

Focus on DesignFocus on Design

Not just getting it to workStudents re-evaluated their designs

weeklyStudents refactored often

Page 22: Software Engineering and Squeak

Project Was FunProject Was Fun

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

Students wrote an MP3 player

Page 23: Software Engineering and Squeak

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

Page 24: Software Engineering and Squeak

Outline ContinuedOutline Continued

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

Page 25: Software Engineering and Squeak

RefactoringRefactoring

Fowler’s RefactoringKent Beck’s Smalltalk Best Practice

Patterns

Page 26: Software Engineering and Squeak

Abstract ClassesAbstract Classes

Why?Pure virtual methodsDesign Example

Page 27: Software Engineering and Squeak

CollectionsCollections

What are they?Lab examples

Page 28: Software Engineering and Squeak

Design ExampleDesign Example

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

Page 29: Software Engineering and Squeak

MVCMVC

Easy to explainStructure is in place

Page 30: Software Engineering and Squeak

PolymorphismPolymorphism

Finite State MachineCounter

Page 31: Software Engineering and Squeak

Unit TestingUnit Testing

HardNot the concept, just doing it!

Page 32: Software Engineering and Squeak

Design PatternsDesign Patterns

EasySelected examples from GOF book

Page 33: Software Engineering and Squeak

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.

Page 34: Software Engineering and Squeak

Bad NewsBad News

They didn’t do it!

Page 35: Software Engineering and Squeak

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