U Introduction to Software Engineering Jeffy M. Purugganan TABLE OF CONTENTS Course Introduction Description about the course Course Objectives Course Objectives and goals Course Topics and Reference Textbook Course Topics 01 02 03 04 05 06 Instructor Information and Communication Teacher’s Information Class Schedule Class Time and Number of Weeks Grading System Final Mark Computation 1. Course Introduction The course focuses on applying modern software engineering techniques and standards to tackle the modeling of complex evolving requirements, the creation of quality solutions, and the management of software projects. The course will present a variety of tools, in the context of team production of publicly releasable software. Students will be encouraged to bring their own experiences to the discussion, as most of the topics being covered in this course are still considered open research topics. 1. Course Introduction This course presents ideas and techniques for creating, designing, developing, and modifying large software systems using Waterfall Model in Software Development Life Cycle(SDLC) for software development. This course presents modern software engineering techniques and examines the software life-cycle, including software specification, design, implementation, testing and maintenance. This course is designed for anyone interested in learning how to understand requirements, specify solutions for complex systems, and deploy scalable, portable, and robust enterprise applications. 2. Course Objectives Understand what is Software Engineering and its importance. Describe and compare various software development methods and understand the context in which each approach might be applicable. Learn the Waterfall Model, its advantages and disadvantages. Familiarize the Waterfall Model phases from requirement phase to maintenance phase. 3. Course Topics Introduction to Software Engineering and its importance Phases of Waterfall Model(Software Development Life Cycle) Requirements Gathering Phase and Software Requirements Specifications Requirements Analysis Phase and Software Project Plan 3. Some Course Topics Design Phase and Software Design Specification Implementation Phase and Progress Reports Testing Phase and Software Test Specification Deployment Phase and User Guide Maintenance Phase Intro to Software Engineering Chapter 1: Introduction Chapter 2: Software Processes Chapter 3: Agile Software Development Chapter 4: Requirements Engineering Chapter 5: System Modeling Intro to Software Engineering Chapter 6: Architectural design Chapter 7: Design and implementation Chapter 8: Software testing Chapter 9: Software evolution Chapter 1-Introduction Professional software development Software engineering ethics Case studies Chapter 2-Software Processes Software process models Process activities Coping with change The rational unified process Chapter 3-Agile Software Development Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Chapter 4-Requirements engineering Functional and non-functional requirements The software requirements document Requirements specification Requirements engineering processes Chapter 4-Requirements engineering Requirements elicitation and analysis Requirements validation Requirements management Chapter 5-System modeling Context models Interaction models Structural models Behavioral models and Model-driven engineering Chapter 6-Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Chapter 7-Design and implementation Object-oriented design using the UML Design patterns Implementation issues Open source development Chapter 8-Software Testing Development testing Test-driven development Release testing User testing Chapter 9-Software evolution Evolution processes Program evolution dynamics Software maintenance Legacy system management Class Time and Class Schedule Monday: 7:50-9:20 (Class 2008, 2009) 9:40-11:10(Class 2010, 2013) Tuesday: No Classes Wednesday: 13:50-15:20 (Class 2014, 2015) Thursday: 7:50-9:20 (Class 2001, 2002, 2003) 9:40-11:10(Class 2011 2012) Friday: 13:50-15:20 (Class 2014, 2015) 15:40-17:10(Class 2006, 2007) Instructor Information and Communication Jeffy M. Purugganan 138-0352-1564 janmikpoy sustagen_jepoy@yahoo.com Room 412(Foreign Teachers) Grading System Attendance & Class Participation 30% Mercury is the closest planet to the Sun Middle Test 30% Despite being red, Mars is a cold place, not hot Final Test/Project 40% Neptune is the farthest planet from the Sun Attendance and Participation Class Attendance Weekly attendance will be checked and monitored. If you want to ask for leave, please inform you class monitor and your instructor. Class Participation Being exceptionally helpful on course question boards and during online discussions, whether with fellow students or with instructional staff, will earn you discretionary points that may be used to decide final grades in borderline cases. Participation can happen during Online class thru Dingding and attending lectures. Middle Test Middle test usually be given on Week 9 or Week 10 depending of the schedule. But if there are changes on the schedule, students will be informed. The type of test will be discussed before the Middle test schedule. Final Test or Final Project The final test will be administered during the final exam schedule assigned by our school. More details will be shared later in the course. There might be cases that we will not have a written final test but instead you will be given to work on a Final Project. The Final Project might be individual or team project. END!