SUNY College at Old Westbury CS4501 Software Engineering Syllabus 1. Administrative Information: Course Title: Software Engineering Prerequisites: CS3810 (Data Structures and Algs), or CS2511 (Prog II) and CS3611 (Adv. VB), EC I (English Composition I) 2. Textbook: Object-Oriented Software Engineering, Using UML, Patterns, and Java (3rd Edition) Author: Bernd Bruegge and Allen H. Dutoit ISBN-10: 0136061257 ISBN-13: 978-0136061250 3. Course Description: Discipline OO design based large software product development. Learn the development process through a single project by multiple teams. Hand on a software product from requirements to final test. The course contents also include application domain knowledge, various system models by using UML, system architecture and architecture patterns, project management and professional practices. 4. Course Objectives 1) In the domain of “Project” Understand the necessary construction of a software development project and the function of each role a person may play in the project Demonstrate the capability of self-adjustment following the rule of construction and fulfill the requirements of the assigned tasks Understand the project management related issues such as project control, risk control, product estimation, etc. 2) In the domain of “People” Understand the function of the teamwork in a large project. Work actively as a team member in aspects of participating team meetings, making personal contribution, sharing information and helping teammates Following the report scheme (see 4.2.2) and keeping a professional communication style Understand the roles of stakeholders in a project 3) In the domain of “Product” Understand the difference between the application domain knowledge and the system domain knowledge Understand the artifacts in a software product Demonstrate the capabilities of writing correct requirements, abstracting the target system by modeling, comprehending the concept and issues in software architecture, making correct APIs between subsystem/components, applying learned techniques (programming, algorithms, etc.) to implement the product and testing Handling the changes Show the capability of self-learning to prepare the techniques required in the project 4) In the domain of “Process” Understand the concept of software development process and the relationships among the stages Understand and work in key activities for creating artifacts Keep the correctness of artifacts/documents by enforcing the trace-dependency among models in different stages Understand the concept of iterations in a process 5. Course Requirements: Students will be expected to complete assignments independently during the session. Also, students will learn how to implement a large software product by teams and work properly as a team member. Good communication skill is required. The classes are organized as lecture/meeting/lab style. The meeting and lab attendances are required. 6. Grading Policy: Letter grades to each student will be calculated depending on the points earned on the projects, meeting attendance, attitude as a team member, as well as quizzes and the midterm exam. The weights are: Midterm … 30% Quizzes … 5% Reading/Writing/Speaking skills … 5% Communication skill … 5% Project meeting attendances … 5% Project (assignments) … 50% The course grades are assigned as: 90 – 100% -- range of A 80 – 89% -- range of B 70 – 79% -- range of C 60 – 69% -- range of D Below 60% -- F 7. Course Management The teaching management tool Angle will be used to post the assignments and collect the submissions. More importantly it is for all communications. 8. Course Schedule Week Lecture Topic Jan Ch1. Introduction to Software Engineering Week 1 (Survey) Feb Ch2. Modeling with UML Week 2 Project starts: Set up teams, Team meeting – estimation Week 3 Ch3. Project Organization and Communication Meeting – Stakeholders meeting (User req. collection) Week 4 Ch4. Requirements Elicitation Meeting – task distribution, requirements Week 5 2/21, Mon. Presidents’ Day, no class Ch4. Requirements Elicitation Meeting – requirements (key use cases) Week 6 Ch5. Analysis March Week 7 Week 8 Ch5. Analysis Team meeting: 1) analysis classes, packages 2) unique list of analysis classes for the 1st iteration Review (Ch1 – Ch8) Midterm Week 9 Week 10 April Week 11 Week 12 Week 13 Week 14 May Week 15 Week 16, 17 Midterm summation Ch6. Ch7. System Design Ch6. Ch7. System Design (Define subsystems and architecture patterns) Ch8, 9. Object Design Ch8, 9. Object Design (continue) Meeting – 1) make the list of design classes 2) confirm APIs Report to other teams (presentation) Ch10. Mapping Models to Code Implementation Ch11. Testing Implementation Lab – implementation Lab – integration test Integration test Final Team Project Report (formal presentation) If you have or suspect you may have a physical, psychological, medical or learning disability that may impact either your course work or extracurricular activities, please contact Dr. Lisa Whitten , Director, The Office of Services for Students with Disabilities (OSSD). Academic Village, D112, Phone: 516-876-3009