Extending Software Engineering Teamwork Beyond Physical and

Download Report

Transcript Extending Software Engineering Teamwork Beyond Physical and

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 selfchosen 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)