Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced...

17
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 [email protected]

Transcript of Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced...

Page 1: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

  

Issues in Teaching Software Engineering

Virendra C. BhavsarProfessor and

Director, Advanced Computational Research Laboratory

Faculty of Computer Science

University of New Brunswick

Fredericton, NB, Canada

[email protected]

Page 2: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

OutlineOutline

IntroductionSoftware Engineering Courses at UNBCS 3013 Software Engineering II- Course Contents- Laboratory- Course ProjectConclusion

Page 3: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

IntroductionIntroduction

Why Software Engineering in CS (and ECE and SE) Curriculum?

What principles should they learn?

What skills should do they learn?

Page 4: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

Software Eng. Courses @ CS UNBSoftware 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

Page 5: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

CS 2013 (SE I)CS 2013 (SE I)(UNB Calendar Description)(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

Page 6: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

CS3013 (SE II)CS3013 (SE II)(UNB Calendar Description)(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

Page 7: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

CS 3013 (SEII): Text/ReferencesCS 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.

Page 8: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

CS 3013 (SE II): ContentsCS 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

Page 9: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

CS 3013 (SE II): ContentsCS 3013 (SE II): Contents

Introduction to SE Modeling with UML Project Communication Requirements Elicitation Analysis System Design Object Design

Page 10: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

CS 3013 (SE II): ContentsCS 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

Page 11: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

Software Engineering Lab.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

Page 12: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

Software Engineering Lab. (cont.)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)

Page 13: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

Software Engineering Course Project 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.

Page 14: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

Software Engineering Course Project Software Engineering Course Project (cont.)(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

Page 15: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

Software Engineering Course Project Software Engineering Course Project (cont.)(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

Page 16: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

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

Page 17: Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.

ConclusionConclusion 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