15-313 - COURSE PROFILE
Course Level: Undergraduate
Frequency Offered: Generally offered every fall semester - confirm course offerings for upcoming semesters by accessing the university Schedule of Classes.
Course Relevance (who should take this course?): Any students that expect to write code in large scale and collaborative software projects. Students who are interested in taking on more responsibilities in a software team, including interests toward software project management. Students interested in the larger picture and tradeoffs involved in software engineering in practice.
- Practical skills for software engineers in real-world projects and teams.
- Making real-world tradeoff decisions regarding:
- Includes process consideration for software development:
- requirements documentation
- elicitation and evaluation
- designing for qualities such as
- quality assurance
- time and team management
- economics of software development
Solid technical foundation of software construction from 15-214 or equivalent (solid programming skills, unit testing, and object-oriented analysis and design, design patterns, and frameworks).
- Various readings provided (see course web page)
- Class slides
Students will learn to:
- Understand software engineering as a human activity and business concern.
- Elicit, describe, and evaluate a system's requirements.
- Apply measurements and metrics to make deliberate judgements about process, quality assurance, and other decisions in the development process.
- Design a software system and evaluate a design with regard to various quality attributes, including security, scalability, robustness, and usability.
- Develop and justify a quality-assurance strategy for a software project, including making decisions about when and how to use testing, inspection, static and dynamic analysis, and formal methods.
- Plan the process and manage a software project, including deciding how much upfront design to perform, agile practices, monitoring risk, understanding team dynamics, open source software.
- Assignments: 50%
- Prerequisites Required: 15214 or equivalent experience
- Minimum Grades in Prereqs:
D in 15214
- Corequisites: None
- Prerequisite for: 15-210
- Anti-requisites: None
- Cross-Listed: None
- Substitutes: 15211 for 15214
- Related Courses: Builds on 15-214 (Principles of Software Construction), provides a good foundation for 15-413 (Software Engineering Practicum) and 17-413 (Software Engineering Reflection)
- Reservations: Some reservations are for Undergraduates in Electrical and Computer Engineering; Some reservations are for Undergraduates in Computer Science
|Most Recent Syllabus:
|Special Permission Required: No
(if yes, please see Notes)
|Sample class notes:
|Sample Lecture Recording:
Typically no recorded lectures
|| Back to Course Profile List