incorporating realistic teamwork into a small college software engineering curriculum ellen l....

22
Incorporating Realistic Teamwork into a Small College Software Engineering Curriculum Ellen L. Walker Oberta A. Slotterbeck Hiram College {walkerel, obie}@hiram.edu

Upload: kory-bryant

Post on 27-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Incorporating Realistic Teamwork into a Small College

Software Engineering Curriculum

Ellen L. Walker

Oberta A. Slotterbeck

Hiram College

{walkerel, obie}@hiram.edu

Observations

• Software development is best learned by doing it (under realistic conditions)

• Communication and teamwork skills are crucial to software engineering

• One term is too short for a realistic software development experience, including relevant instruction

Our Approach: Break up the Software Engineering Course

• Each course emphasizes one technical aspect, all involve teamwork

• Large-scale projects persist between courses• Teams mix experience levels, backgrounds

(traditional vs. weekend students)• Team compositions change in each course;

students may or may not change projects

Courses Support 2 Programs

• Computer Science (traditional)– Usual courses: algorithms, OS, languages etc.– Two Integrated Research Components

• Computer Systems Management (weekend)– Software engineering and IT courses– Limited programming– Approximately half management & communication– Capstone combines CS and Management skills

• Students share weekend courses

Weekend Course Formats

• 12-week course– Every other weekend for seven sessions– Four hours per weekend

• 3-week course– Three weekends, usually in a four-week span– Eight hours per weekend

• Only 24-28 contact hours per term, compared to 36-48 for traditional classes

Courses Included

• Database Design, Sep-Nov 2000 (12 weeks)• Project Management, Dec 2000 (3 weeks)• Interface Design, Apr-May 2001 (3 weeks)• Systems Analysis, Jan-Apr 2002 (12 weeks)• Software Evaluation, Apr-May 2002 (3 weeks)• Verification & Testing Dec 2002 (3 weeks)• Multimedia, Jan-Apr 2001 (12 weeks)

Teamwork Theme

• Each course incorporates a team project• Teams produce “software artifacts”

– Project plans– Entity-relationship diagrams– Databases– Web front ends– Problem analyses– Test plans

Emphasis on New Skills

• Professional and scientific writing– All team projects produce significant

documentation– Individual projects (IRC and Capstone papers)

• Presentation skills– Every team member required to speak at every

presentation

• Interpersonal communication and teamwork

Team Composition

• Team size: 3-5 students (4-6 teams / class)• Mixed populations

– Traditional: 18-22, full-time students, 11% women– Weekend: older, working full-time, 42% women

• Multiple levels of experience (SO, JR, SR)• Membership:

– Self-chosen (Proj. Mgmt, Sys. Analysis, MM)– Assigned (DB, Interface)

Database Projects

• Genealogy Database – Customer: Professor / hobbyist

• Gravestone Research Database – Customer: Librarian / researcher

• Internship Database – Customer: Psychology department

• “Books for Zimbabwe” database – Customer: Professor / Project director

Database Deliverables

• Design documents– Requirements documents, elicited from customers– ER diagram, relational design (graphical & SQL)– Proof of BCNF– User documentation

• Working implementation• User approval

Project Management Projects

• Automating the advising process• Web-based registration

• Both projects chosen to reflect current administrative software needs

Project Management Deliverables

• Project Plan– Overview & summary of recommendations– Feasibility assessment, cost-benefit analysis & risk

analysis– Requirements (system description to be added in

Systems Analysis course)– Work breakdown structure, Function Point and

COCOMOII analyses, Gantt chart, CPM analysis

• Statement of Work

Systems Analysis Project

• Vehicle Management Department– Teams chose their own business process from a

large case study to analyze– Teams define the scope and analyze the chosen

project using• Structured Analysis techniques• Object-oriented Analysis techniques

Systems Analysis Deliverables

• Structured Analysis– Data Flow Diagram

• Existing and proposed systems

– Multiple levels of abstraction

• Object Oriented Analysis– Use Case Analysis– Noun Extraction and Class Diagram– State Diagram (for at least one class)– Optional E-R diagrams, CRC cards, Scenarios

User Interface Projects

• Develop a web-based front end for a particular view of a given database– Course Schedule Database

• Faculty view• Student view

– Alumni Database• Alumni view• Department view

– Quotation Database

User Interface Deliverables

• User model• Interface design• Interface implementation (JavaScript / PHP)• Testing plan

Communication Methods Used

• Face-to-Face– In (or before or after) class – 1-3 meetings between classes– On campus, at restaurant

• Electronic– Email– Instant Messaging

• Telephone– Phone tag!

Communication Lessons

• Communication breakdown can sink a group– Important for students to learn this

• Class time for meetings helps– First meeting– Last meeting (last-minute presentation

preparation)

• Students appreciated getting to know each other– Especially weekend

Teamwork Lessons

• No significant differences between self-chosen and instructor-assigned teams

• Students with prior experiences tended to become team leaders

• Members needed to learn to trust their teammates– Diversity in background, experience made this

harder

• Early intervention is needed!

Project Lessons

• Passing deliverables between courses is difficult– Student databases were too complex for

interfaces– Systems analysis projects too big (then too small)

to plan

• There is never enough time to “finish” the project

Achievements

• Culture of teamwork• Expectations for presentations and written

deliverables• Multicourse themes (e.g. campus-wide

information system) in projects• Student growth from course to course• Evidence of project work in individual projects

(Capstone or IRC)