COSC 3506/ITEC 3506 - Software Engineering Winter, 2012 INSTRUCTOR Dr. Simon Xu , Room NW206C, 949-2301, ext. 4346, email: simon.xu@algomau.ca TIME: Monday, 7:00-10:00 p.m. PLACE: WW102 SOURCE MATERIAL Required textbook: Stephen R. Schach: Object Oriented and Classical Software Engineering, 7th Edition, McGraw-Hill, 2007, ISBN: 0-07-319126-4. Recommended Reference: Bernd Oestereich, Developing Software with UML: Object-Oriented Analysis and Design in Practice, Addison Wesley, 1999, ISBN: 0-201-39826-5. Course Website: http://courses.algomau.ca (code: COSC3506) PREREQUISITES Completion of second year core programme in Computer Science or permission of the Department. CALENDAR DESCRIPTION Methodologies for design, implementation and maintenance of very large programs. Use and development of software. Support systems. OBJECTIVE Software engineering is concerned with the theories, methods, and tools that are needed to develop complex, large-scale software. It encompasses a wide range of topics, including requirements and specification, software design, implementation, validation and verification, software maintenance, and the management of the software process. A single course is clearly incapable of covering in depth all these topics. The objective of this course is to provide you with a broad understanding of all phases in the software lifecycle, and to introduce you to specific concepts that you have not covered systematically yet and that are increasingly being viewed as essential for engineering large software systems. LEARNING OUTCOMES At the end of the course a student is expected to be able to: Explain well‐known software development process models Understand and be fluent in the use of software engineering terminology and nomenclature Intelligently communicate with most members in a software development organization (management, analysts, architects, developers) Create and use planning, requirements analysis, domain analysis and design artifacts and carry them into code (UML and OO Specification and Design techniques) Work as a team and schedule the task to achieve the goals Take on the role of systems analyst in a software development organization Distinguish between different types and levels of testing (for instance, unit, integration, systems, and acceptance) for medium‐size software products and apply them. Document all phases of the software development processes Have the necessary tools to become a software development project manager PROGRAMMING ENVIRONMENT: Programming is done in Java or C++, used within Windows operating system. All programming, documentation, and project demos are done in this environment and it is the responsibility of students to acquire accounts and all necessary skills. ASSIGNMENT: There is one individual programming assignment. You will be asked to implement a simple application using the test-driven approach. The assignment is worth 6 marks. PROJECT There will be one project in this course. You will require to implement a small application from scratch, following the software development lifecycle using C++ or Java. Project will be marked based on the program, documentation and presentation. There are one progress presentation and one final demonstration. Late projects are graded on 50% basis, and projects late more than a week are graded 0%. All code must execute correctly and follow the conventions and methodology explained in the class. Total mark for the project is 30 marks. EXAMINATIONS There is one mid-term test, scheduled at the middle of February in class, which will be worth 20 marks. This midterm test will cover topics presented in the all lectures so far. There are four spot quizzes, each of which is worth 2%. No making up quiz will be given. The final examination for this course is scheduled for the 14th week, and is worth 36 marks for the course. The final examination covers topics presented across the whole of the course. If you have a compelling and documented reason for not being able to attend the midterm and final exam, you must make the alternative arrangements before the examination. GRADING Credit towards the semester grade will be allocated to each of the components as indicated in the following table. Assignment Project 6% 30% Spot quizzes (2X4) 8% Midterm 20% Final Examination 36% TOTAL 100% RULES OF CONDUCT Cheating of any kind will not be tolerated in this course. Please see the general calendar for more information. Any occurrence of plagiarism will be handled by the Department of Computer Science. PROPOSED SCHEDULE WEEK DATE (Monday of each week) CHAPTER 1 Jan 9 1 2 16 2, , 3, 4 Form groups 3 23 10 Requirement & Specification 4 30 11, 16 More Requirement & Specification 5 Feb 6 12, 7 Design & Initial Testing 6 13 13, 14 More design 7 20 Study Week Coding 8 27 Midterm Progress Presentation 9 March 5 8 Coding, 10 March 12 14 More coding Project 11 19 15 More coding 12 26 Project testing 13 April 2 Project Delivery and Project Presentation 14 April 9 Easter Monday No class 14 April 10-25 Final Exam Period