170 likes | 178 Views
This article discusses the challenges and curriculum of teaching software engineering courses, including course contents, laboratory sessions, course projects, and the importance of software engineering principles and skills.
E N D
Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science University of New Brunswick Fredericton, NB, Canada bhavsar@unb.ca
Outline • Introduction • Software Engineering Courses at UNB • CS 3013 Software Engineering II • Course Contents • Laboratory • Course Project • Conclusion
Introduction • Why Software Engineering in CS (and ECE and SE) Curriculum? • What principles should they learn? • What skills should do they learn?
Software Eng. Courses @ CS UNB • CS 2013 Software Eng. I Prereq. CS 1083 Computer Science Concepts (Java) • CS 3013 Software Eng. II Prereq. CS 2013 • CS 3503 Systems Analysis and Design Prereq. CS 2513 Introduction to Information Systems • CS 4015 Software Architecture and Design Patterns Prereq. CS 3013 • CS 4025 Internet-based Software Eng. Prereq. CS 2513 and CS 3013
CS 2013 (SE I)(UNB Calendar Description) • The analysis and design of complex algorithms and programs with emphasis on the methodology of disciplined programming • 1-2 term projects and provides in-depth treatment of a programming language like Java
CS3013 (SE II)(UNB Calendar Description) • Examines software development processes and management, visual modeling and UML • Requirements capture, use case analysis, system design and implementation, components • Forward and reverse engineering, software engineering tools, testing techniques, configuration management • Project management
CS 3013 (SEII): Text/References • Text: 'Object-Oriented Software Engineering: Conquering Complex and Changing Systems', B. Bruegge and A. H. Dutoit, Prentice-Hall, 2000. • References: • Visual Modeling with Rational Rose 2000 and UML, • Terry Quatrani, Addison-Wesley, Reading, MA, 2000. - The Unified Modeling Language User Guide by Booch, Rumbaugh, and Jacobson, Addison-Wesley, 1999. - The Unified Software Development Process by Jacobson, Booch, and Rumbaugh, Addison-Wesley, 1999.
CS 3013 (SE II): Contents • Present Emphasis: Object-Oriented Software Engineering Other possibilities? • Prerequisites • Java and Visual Basic • C++ ? • ? • Classes: Teach Principles • Labs. and Course Project: Skill development
CS 3013 (SE II): Contents • Introduction to SE • Modeling with UML • Project Communication • Requirements Elicitation • Analysis • System Design • Object Design
CS 3013 (SE II): Contents Issues - Too much dependence on (Rational’s) Unified Software Development Process? - Not much time left to cover: rationale management, testing, software configuration management, project management and software life cycle - Other Software Development Models and Processes Capability Maturity Model Personal Software Development Process
Software Engineering Lab. • Objective: To introduce students to a software engineering tool • Rational Rose 2000, Enterprise Edition. • Six laboratory sessions (UML diagrams and specifications; reverse engineering; team work on a Rational Rose model and detailed use-case specification; use-case realization in an analysis model; build a design model; build an implementation model) • One terminal per person
Software Engineering Lab. (cont.) • Issues - Other tools for university environments? • Integration with class material • Text – that is good for class as well as Lab. • Continuity for Lab. Instruction and tool management – markers and Lab. Instructor • Large Enrollment (60-70 students)
Software Engineering Course Project • Group Project – same problem by different groups - different problem by each group • E-Commerce applications • Task1: Problem Definition • Task2 Problem:Initial Requirements Analysis Document • Task 3: Building Use-Case Model I ; Prototype UI • Task 4: Domain Modeling • Task 5:Building Analysis Model (Phase I) • Task 6: Building Analysis Model (Phase II) • Task 7: Building Design Model and Building Implementation Model • Task 8, ..: No time left for testing, forward and reverse engineering, etc.
Software Engineering Course Project (cont.) • Technical Issues: - Group Work: Support available in SE tool (Rational Rose) - Tracking progress of various group members - Synchronization and Communication between group member activities • Prototype UI design: Java Applets; Visual Basic, - Merging work of group members
Software Engineering Course Project (cont.) • Management/Communication Issues: - Group size: Experiments with 4 and 7-8 - Tracking progress of various groups - Synchronization between classes, labs. and project deadlines - Interaction between group members - Marking/grading projects; Input from group members and group leader - Work Load - Project Presentation
Marking Scheme • Assignments: 10% • Labs:n 5% • Team Project: 25% • Quizzes 10% • Midterm: 15% • Final: 35% • Relative Grading
Conclusion • Objectives and Rationale • Prerequisites and overlap with other courses • Text(s) • Tools: Group project and • Group Project • Student Feedback: academic and industry participants - too much work - interesting - relevant to industries - difficult to relate/integrate lecture material, labs. and apply it to group project