ECE 30861 - Software Engineering

Note:

This course ran as ECE 46100 prior to Fall 2022.

Course Details

Lecture Hours: 3 Credits: 3

Counts as:

  • EE Elective
  • CMPE Selective

Normally Offered:

Each Fall

Campus/Online:

On-campus only

Requisites:

ECE 36800

Requisites by Topic:

Programming and Data Structures.

Catalog Description:

This course provides an introduction to software engineering principles, with special emphasis on the process, methods, and tools needed to develop and test quality software products and systems.

Required Text(s):

  1. Software Engineering , 10th Edition , Sommerville, Ian , Pearson , 2016 , ISBN No. 978-9814718585
  2. Software Engineering at Google , 1st Edition , Titus Winters, Tom Manshreck, and Hyrum Wright , O'Reilly , 2020 , ISBN No. 978-1492082798

Recommended Text(s):

  1. Design Patterns: Elements of Reusable Object-Oriented Software , 1st Edition , Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides , Addison-Wesley , ISBN No. 978-0201633610
  2. Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software , 2nd Edition , Eric Freeman, Elisabeth Robson, Bert Bates and Kathy Sierra , O'Reilly , ISBN No. 978-1492078005
  3. The Mythical Man-Month: Essays on Software Engineering , Frederick P. Brooks , 1995 , ISBN No. 978-0201835953

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an ability to conduct object-oriented design and use unified modeling language. [1,3]
  2. an ability to understand different models of software development processes. [1,2]
  3. an ability to analyze requirements and write project specifications. [1,2]
  4. an ability to successfully develop a team software project on time and meet the specifications. [1,2,3,4]

Lecture Outline:

Weeks Major Topics
1 Introduction to class, project description, team organization
2 A survey of project-relevant engineering tools (project management software, version control, code review, bug tracking, web stack, databases, SQL, etc.)
1 Software engineering processes
8 Core software engineering activities: Requirements; Design; Implementation; Validation; Maintenance
1 Engineering Ethics
2 Special topics
1 Project postmortems and presentations

Engineering Design Content:

  • Analysis
  • Construction
  • Testing

Engineering Design Consideration(s):

  • Economic
  • Environmental
  • Ethical
  • Sustainability

Assessment Method:

Students must demonstrate basic competency in all the outcomes in order to receive a passing grade for the course. Outcomes i and ii will be assessed by homework and examination. A student must obtain 40% of the points and exceed two standard deviations below the median score to pass the outcomes. Outcomes iii and iv will be evaluated using homework and programming projects. Students must receive 50% of the points to pass the outcomes.