1 / 17

Issues in Teaching Software Engineering

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.

shelbyt
Download Presentation

Issues in Teaching Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Outline • Introduction • Software Engineering Courses at UNB • CS 3013 Software Engineering II • Course Contents • Laboratory • Course Project • Conclusion

  3. Introduction • Why Software Engineering in CS (and ECE and SE) Curriculum? • What principles should they learn? • What skills should do they learn?

  4. 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

  5. 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

  6. 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

  7. 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.

  8. 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

  9. CS 3013 (SE II): Contents • Introduction to SE • Modeling with UML • Project Communication • Requirements Elicitation • Analysis • System Design • Object Design

  10. 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

  11. 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

  12. 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)

  13. 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.

  14. 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

  15. 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

  16. Marking Scheme • Assignments: 10% • Labs:n 5% • Team Project: 25% • Quizzes 10% • Midterm: 15% • Final: 35% • Relative Grading

  17. 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

More Related