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