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. 1 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. 7. 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 GUIDELINES/SUGGESTIONS FOR TEACHING METHODS AND STUDENT 2 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 3 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 4 14: DEPARTMENTAL REVISION APPROVAL DATE: Spring, 2005 5