Syllabus: CSCI 472 - Software Engineering
Course Description:
Ideas and techniques for designing, developing, and modifying large software systems. Object-oriented and agile techniques. Topics include software specification, design, testing, debugging, version control, documentation, and maintenance, and team implementation of a software project.
Prerequisites:
CSCI 2210 - Object-oriented Programming.
Textbook:
- Software Engineering: Theory and Practice, 4th edition, ISBN-13: 9780136061694.
Course Learning Objectives:
- understand and explain the activities and structure of different styles of software development processes, including waterfall, spiral, iterative, and agile methodologies,
- apply requirements, knowledge, and techniques to create functional and non-functional requirements for a software system,
- apply high and low-level design ideas to create an object-oriented design of a software system,
- use good design and programming ideas to implement individual and team software systems in compiled object-oriented programming languages,
- apply white and black box testing techniques and tools to individual and team software development,
- use UML class diagrams(and sequence diagrams) to capture aspects of system design and/or requirements (domain),
- and to use practical software development tools, including version control systems, automated build tools, and testing tools.
Course Topics:
- Overall Software Development Life Cycle and Agile Methodology
- Requirements Specification
- System Design
- Programming
- Software Testing
- Deployment and Maintenance
Course Grading
| Attendance |
15% |
| Reading Homework |
5% |
| Programming Assignments |
20% |
| Group Project |
25% |
| Exams |
40% |