Kennesaw State University DEPARTMENT OF COMPUTER SCIENCE AND INFORMATION SYSTEMS Spring Semester, Year 2009 CS 8450: Software Engineering MW 5:00pm - 6:15pm Instructor: Office Number: Office Hours: Phone: Fax: Email: Course Webpage: Dr. Hisham Haddad CL 3035 MTW 4:00pm - 5:00pm and by appointment (770) 420-4389 (770) 423-6731 hhaddad@kennesaw.edu http://science.kennesaw.edu/~hhaddad/Spring2009/Spring2009.HTM Course Description: This course emphasis on object-oriented methodology for software development. Study of concepts, methods, and measurements applicable to software analysis, design, implementation, and testing. The course is project-based. Students will develop a project scope, document functional specifications, and develop a design document. Prerequisites: "N/A Textbooks: Software Engineering: A Practitioner's Approach. By Roger S. Pressman, 6th Edition, McGraw Hill Publishing Company, 2005. Course Objectives: The course objectives include the following: Learn the concepts and principles applicable to the analysis of software requirements (data, functions, and behavior). Learn the concepts of Object-Oriented Analysis (OOA) (classes, relationships, and behavior). Learn the analysis models applicable to conventional and OOA. Learn the concepts and principles applicable to software design (design models for architecture, user interfaces, data, and components). Learn Object-Oriented Design (OOD) activities (system design and object design). Learn testing methods and strategies, and technical metrics for software (conventional and OO). Learning Outcomes: Upon successful completion of the course, students will develop: Ability to conduct software requirements analysis (and OOA) using various analysis models for conventional and object-oriented systems. Ability to conduct design (and OOD) activities and develop design models for system architecture, user interfaces, data, and system functions. Ability to develop test cases and conduct system testing. Knowledge of available software metrics for conventional and OO systems. Selected References: Software Engineering, Seventh Edition, by Ian Sommerville, Addison Wesley, 2004. Software Engineering: Principles and Practice, by Hans van Vliet, Wiley, 1997. Software Engineering: An Engineering Approach, by James Peters and Witold Predrycz, Wiley, 2000. A Discipline for Software Engineering, by Watts S. Humphrey, Addison Wesley, 1995. Software Engineering: A Programming Approach, Third Edition, by Douglas Bell, 2000. Software Design. 2nd Edition, by David Budgen, Addison-Wesley, 2003. Design Patterns, by Erich Gamma et al, Addison-Wesley, 1995. Design Patterns Explained: A New Perspective on Object-Oriented Design, by Alan Shalloway, James R. Trott, Addison-Wesley, 2001. Use Case Modeling, by Kurt Bittner, Ian Spence, and Ivar Jacobson, Addison Wesley, 2002. Use Cases: Requirements in Context, Second Edition, by Daryl Kulak and Eamonn Guiney, Addison Wesley, 2003. Refactoring: Improving the Design of Existing Code, by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Addison-Wesley, 1999. Writing Effective Use Cases, by Alistair Cockburn, Addison-Wesley, 2000. The Unified Modeling Language User Guide, by Grady Booch, Ivar Jacobson, and James Rumbaugh, Addison-Wesley, 1st edition, 1998. Use Case Modeling, by Kurt Bittner, Ian Spence, Ivar Jacobson, Addison Wesley, 2002. Object-Oriented System Development, by Dennis de Champeaux, Douglas Lea, and Penelope Faure, Addison Wesley, 1993. Object-Oriented Software Engineering: A Use Case Driven Approach, by Ivar Jacobson, Addison Wesley, 1992. Object-Oriented Software Engineering: Conquering Complex and Changing Systems, by Bernd Bruegge and Allen H. Dutoit, Prentice Hall, 2000. Principles of Object-Oriented Software Development, by Anton Eliens, Addison Wesley, 1995. Classical and Object-Oriented Software Engineering with UML and C++, Fourth Edition, by Stephen R. Schach, McGraw Hill, 1999. Designing Object-Oriented Software, by Rebecca Wirfs-Brock, Brian Wilkerson, and Lauren Wiener, Prentice Hall, 1990. UML Distilled: A Brief Guide to the Standard Object Modeling Language, by Martin Fowler, Kendall Scott, Addison-Wesley, 2nd edition, 1999. Analysis Patterns: Reusable Object Models, by Martin Fowler Addison-Wesley, 1st edition, 1996. Applying UML and Patterns, by Craig Larman, Prentice Hall, 1st edition, 1997. Class Policies: A. Assignments All homework assignments and projects are part of the course final grade and are expected to be completed by the due dates. Points may vary for each assignment depending on the complexity and required effort. B. Tests Take-Home Midterm and Final exams are planned for this course. A semester-long project is also part of the course. The midterm exam will be available around the seventh week of the semester. C. Emails: The instructor guarantees replies to emails received from Kennesaw Student accounts (netid@students.kennesaw.edu). Emails sent from other email domains may not reach the instructor's mailbox. Please make sure that you communicate with the instructor via your Kennesaw email account. Course Schedule (Tentative, subject to change): Week Date Topic 1 1/12/09 Software Engineering Practice 2 1/19/09 System Engineering 3 1/26/09 Requirements Engineering 4 2/2/09 Analysis Modeling 5 2/9/09 Design Engineering 6 2/16/09 Architectural Design Midterm Exam 7 2/23/09 8 3/2/09 Component-Level Design Spring Break 9 3/9/09 Class Project Work 10 3/16/09 11 3/23/09 User Interface Design 12 3/30/09 Software Testing Strategies 4/6/09 Class Project Work 13 14 15 16 4/13/09 4/20/09 4/23/07 Chapter Ch-5 Ch-6 Ch-7 Ch-8 Ch-9 Ch-10 Ch-11 Ch-12 Ch-13 Software Testing Techniques Software Product Metrics Projects Due - Take-home Final Exam Special Dates: Holiday Last day to withdraw w/o academic penalty Spring Break Last day of classes Assessment and Grade Evaluation: Class Work 55% Midterm Exam 20% Final Exam 25% Ch-14 Ch-15 Monday 1/19/2009 Friday 3/6/2009 Saturday 3/7/2009 to Friday 3/13/2009 Thursday 4/30/2009 A B C D F 90% - 100% 80% - 89% 70% - 79% 60% - 69% Below 59%