William Paterson University of New Jersey
Department of Computer Science
College of Science and Health
Course Outline
1. TITLE OF COURSE AND COURSE NUMBER: Software Engineering, CS350 Credits: Three
2. DESCRIPTION OF THE COURSE: Provides hands on experience with the issues and techniques of software engineering including all phases of design plus implementation. A team project applying the techniques covered is the main focus of the course.
3. COURSE PREREQUISITES: CS342 with a grade of C- or better
4. COURSE OJECTIVES:
To gain experience with the all phases of software development and understand the concept of software development process.
To increase experience with software development beyond that typical encountered in programming courses.
To experience working as part of a team.
To develop an understanding of software analysis, especially object oriented techniques, and when and how to apply them.
5. STUDENT LEARNING OUTCOMES:
Upon completion of the course, students will be able to:
a) Explain the software development as a process that can be measured and improved.
b) Describe the phases of requirements, specification, design, implementation, and maintenance.
c) Perform analysis of a problem to determine user needs and develop specifications of the system required that will meet user needs within economic constraints.
d) Perform design from a specification using current techniques.
e) Identify approaches and standards for software quality improvement.
Through class presentations and team project, the course also reinforces the student learning outcomes of the university:
a) Effectively express
themselves in written and oral form.
Written form measure: exams, surveys, and project narrative or report.
Oral form measure: PowerPoint presentation for the large software project.
b) Demonstrate ability to
think critically.
Measure of conceptual level critical thinking: exams and homework.
Measure of applied and design-oriented critical thinking: large programming
project.
c) Demonstrate ability to integrate knowledge and ideas in a coherent and meaningful manner. Measure: projects, especially the large software project.
d) Work effectively with others. Measure: projects, especially the large software project.
6. TOPICAL OUTLINE OF THE COURSE CONTENT:
Topic 1: Overview of Software Engineering
Topic 2: Software life cycle models and their phases
a) Waterfall (classical) model
b) Spiral model
c) Object model
d) Prototyping
Topic 3: Requirements and specifications
a) Analysis - functional, dataflow, object-oriented
b) Formal and informal requirements and specifications
Topic 4: Software design techniques
a) Dataflow oriented design
b) Object oriented design
c) User interface design
d) CASE tools
Topic 5: Implementation issues and techniques
a) Bottom up, top down, sandwich implementation
b) CASE tools
c) Code walkthroughs
d) Debugging
e) Testing
f) Optimization
Topic 6: Installation issues
Topic 7: Maintenance
Topic 8: Project management
7. GUIDELINES/SUGGESTIONS FOR TEACHING METHODS AND STUDENT
LEARNING ACTIVITIES:
a) Classroom lectures and discussions.
b) Team work sessions involving active learning including developing use case, scenarios, and CRC cards for a simplified application.
c) Student presentations of team work sessions before the group through both individual presentations and team presentations.
d) Extended development of an application within a team with deliverables for a user interview, requirements, specification, design, and implementation.
e) Pre-examination reviews
8. GUIDELINES/SUGGESTIONS FOR METHODS OF STUDENT
ASSESSMENT (STUDENT LEARNING OUTCOMES):
a) Periodic exam and a final exam
b) Software project developed in teams with multiple deliverables (written documents) required from each team. An object-oriented approach will be used with students producing a specification, a design, and at least a subset implementation of the design. All documents are placed on the team's web site for all class members to review.
9. SUGGESTED READINGS, TEXTS, OBJECTS OF STUDY:
Pfleeger, Shari, 2006, Software Engineering, Theory and Practice, 3rd edition,
Prentice Hall
Lee, Richard and Tepfenhart, William, 1997, UML and C++, Prentice Hall
10. BIBLIOGRAPHY OF SUPPORTIVE TEXTS AND OTHER MATERIALS:
Bruegge, Bernd and Dutoit, Allen H., 2004, Object-Oriented Software Engineering:
Using UML, Patterns and Java, 2nd edition, Prentice Hall
Ghezzi, Carlo, Jazayeri, Mehdi, and Mandrioli, Dino, 2003, Fundamentals of Software
Engineering, 2nd edition, Prentice Hall.
Schach, Stephen, 2005, Classical and Object-Oriented Software Engineering, 6th edition,
McGraw Hill
Sommerville, Ian, 2005, Software Engineering, 7th edition, Addison-Wesley
David Gustafson, 2002, Schaum's Outline of Software Engineering, 1st edition,
McGraw Hill
Jacobson, Ivar, Magnus Christerson, Patrik Jonsson, and Gunnar Overgaard, 2005, Object
Oriented Software Engineering, 2nd edition, Addison-Wesley
Tsang, Curtis HK, 2005, Object-Oriented Technology from Diagram to Code with Visual Paradigm for UML, 1st edition, McGraw Hill
Xiaoping Jia, 2003, Object Oriented Software Development Using Java, 2nd edition, Addison-Wesley
Humphrey, Watt, 1995, A Discipline for Software Engineering, Addison-Wesley
Humphrey, Watt, 1989, Managing the Software Process, Addison-Wesley
Booch, Grady, 1994, Object Oriented Analysis and Design with Applications, Benjamin/Cummings
Rumbaugh, James, Ivar Jacobson, and Grady Booch, 2005, Unified Modeling Language
Reference Manual, The, 2nd edition, Addison-Wesley
Booch, Grady, James Rumbaugh, and Ivar Jacobson, 2005, Unified Modeling Language
User Guide, The, 2nd edition, Addison-Wesley
Roger S Pressman, 2005, Software Engineering: A Practitioner's Approach, 6th edition,
McGraw Hill
Boehm, Barry, 1981, Software Engineering Economics, Prentice Hall
Martin, James and Odell, James, 1992, Principles of Object-Oriented Analysis and Design, Prentice Hall
Pont, Michael, 1996, Software Engineering with C++ and CASE Tools, Addison-Wesley
Melton, Austin, 1995, Software Measurement, International Thomson Computer Press
Henderson-Sellers, Brian, 1996, Object-Oriented Metrics, Measurers of Complexity, Prentice Hall
Rational Rose demo system, www.rational.com
11. PREPARER'S NAME AND DATE: Dr. J. Najarian, Spring 1996
12. ORIGINAL DEPARTMENTAL APPROVAL DATE: Spring, 1996
13. REVISERS' NAME AND DATE: Dr. C. S. Ku, March 2005
14: DEPARTMENTAL REVISION APPROVAL DATE: Spring, 2005