incorporating realistic teamwork into a small college software engineering curriculum ellen l....
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