2010-2012 Catalog

Software Engineering and Design

Courses in this area cover the engineering life cycle of software systems, including requirement analysis and specification, design, construction/programming, testing, deployment, maintenance and evolution. Area courses are intended to teach students theory, practical methods, and tools for designing, building, delivering, maintaining, and evolving software to meet stakeholder requirements. Every software engineer must understand how software systems operate and how they can be used to solve engineering problems and deliver solutions. The courses in this area are designed to educate students about a diverse and relevant set of technologies and about the ways that technology can be used to design and build software systems.

A student who chooses the Software Engineering and Design Technical Core as their primary core AND academic enrichment as their secondary core has this additional requirement:

  1. If the EE 464 design project is software only, then the electives the student chooses must include at least two of EE 316, EE 445L, and EE 345M.
  2. If the EE 464 design project involves a significant hardware design component, then the electives the student chooses must include at least one of EE 316, EE 445L, and EE 345M.



Students take:

Course # Course Name
EE 422C Software Design and Implementation II
EE 360C Algorithms
EE 461L Software Engineering and Design Laboratory
M 325K Discrete Mathematics

And four courses from the following list:

Course # Course Name
EE 316 Digital Logic Design
EE 445L Embedded Systems Design Lab
EE 445M Embedded and Real-Time Systems Laboratory
EE 360F Introduction to Software Engineering
EE 460N Computer Architecture
EE 360P Concurrent and Distributed Systems
EE 361Q Requirements Engineering
EE 372N Telecommunication Networks
EE 360T Software Testing

EE 361M

EE 379K

Introduction to Data Mining

Software Evolution