Cleveland State University Department of Electrical Engineering and Computer Science CIS 634 Object-Oriented Software Engineering Catalog Data: CIS 634 Object-Oriented Software Engineering(4-0-4) Pre-requisite :CIS 368 or Instructor's Consent Course Description and Objectives: Practical development of software requires an understanding of successful methods to bring a problem to be solved to a working software system. The focus of architecture-based ad Object-oriented software development has shown tremendous potential to improve the current state-of-the-art in software development and alleviate many of its problems. This course will expose you to the concepts, principles, and methods in software architectures, and object-oriented software engineering. A project will give you an opportunity to apply the knowledge acquired from this course by undertaking the development of a small scaled software system. 1. 2. 3. By the end of the course you should: understand the differences between the structured paradigm and the objectoriented paradigm in software development understand the concepts, principles, and state-of-the-art methods in software architectures and its relationship to other areas of software engineering, specifically requirements, OO analysis and design, and implementation. be able to design, manage and implement a computer-based software system using the OO software engineering approach in a group setting Text: 1. 2. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 3rd Edition, Craig Larman, Prentice-Hall Software Requirements, 2nd Edition, Karl E. Wiegers, Microsoft Press These two books are available in CSU Tech Books Online reference References: 1. 2. 3. 4. Course Outline: Week Wk 1-2 8/26-9/8 Requirements engineering: processes and techniques, G.Kotonya and, I.Sommerville, 1998, Wiley Design Patterns, E.Gamma, R. Helm, R. Johnson, and J. Vlissides The Unified Modeling Language Reference Manual, J. Rumbaugh, I.Jacobson and G. Booch, Addison Wesley OO design, Java, C++ Vince Huston website: http://www.vincehuston.org/ Wk 3 9/9-9/15 Topics Class Introductions/What this Course is About Software Development Processes -Agile, UP, XP Core Object-oriented concepts Requirement Analysis Use Case Modeling Part III Elaboration iteration 1 Reading L 1,2 W 5,6,8,10,12 L 3,4,5,6,7,30 handouts Wk 4 9/15-9/22 Wk 5-6 9/23-10/6 Wk 7-8 10/7-10/20 Wk 9 10/21- 10/27 Wk 10 10/28-11/3 Wk 11 11/4-11/10 Wk 12 11/11-11/17 Wk 13 11/18-11/24 Wk 14 11/25-12/1 Wk 15 12/2-12/8 Wk 16 Domain Model Analysis by Norm Lists and Use Cases-A Case Study Domain Model Refinement System Behavior System Sequence Diagrams Contacts State Diagrams Object Design--UML diagrams Interaction Diagrams L 8, 9 L 32 Handouts UML Tutorial L10,11,29,31,32 UML class diagrams and GRASP principles Visibility and Class Design Mapping Design to Code Midterm Exam Part IV Elaborative Iteration 2 Object Design Principles Introduction to Design Pattern MVC Pattern GoF patterns I GoF patterns II L 16,17 Part V Elaboration Iteration 3 UML Activity Diagrams and State Transitions Diagrams Nv.12 (Tuesday, Veteran Day, no Class) Architectural Analysis Architecture refinement & more object More GoF patterns Package Design Principles UML Deployment And Component Diagrams Class Review Presentations Final Exam L 14,15 L 19,20,21,25 Handouts L 26 L 26 L 28, 29 L33 34 L 35 L 36, 37 L:"Applying UML and Patterns: An Introduction to Object -Oriented Analysis and Design and the Unified Process", 3rd Edition, Craig Larman, Prentice-Hall W: "Software Requirements," 2nd Edition, by Karl E.Wiegers Course Organization : In order to cover the basic techniques, and to understand future directions, there will be two major parts to the courses: 1. Techniques in OO software engineering in general, and OO systems analysis and design in particular. It is assumed that you are familiar with a OOP language such as Java. 2. Group Project. This involves the carrying through of a project from specification through implementation and testing, documentation and user manual preparation. Term Project: You are to form Project teams of 4 students each(if you can not form a team on you own, then you will be assigned to a team at the instructor's discretion).Each project team will be assigned a project by the instructor. You may also select a project on your own subjected to the approval of the instructor. It has to be a worthy OO application. You should get to know the people in your group as soon as possible or you will find this difficult. Individual work- Logs and Group assessment reports (i) You should keep a log of all the activities you have done on the project: when, what how much time spent on each activity. Log will be turn in with the assessment report of your team members as in (ii) below. (ii) Two assessment reports (midterm and final) of each member of your project team. You should outline for each team member(including yourself) what was done him/her, and how you assess their work.91/2 page per person) These will be kept in confidence by me. As part of the homework, you will be graded based on how perceptive and reasonable your comments are (5%). Group work Your project team will work with the users to produce a formal specification, procedure the analysis and design, code a prototype, evaluate and refine the prototype and present a final product. Oral presentations and discussions will be required at various points within the project(TBA.) Student Work for Corse Portfolio The instructor reverses the right to retain, for pedagogical reasons, either the original or a copy of your work submitted either individually or as a group project for this class. Students' names will be deleted any retained items.