ECE 59500 - Advanced Software Engineering

Course Details

Lecture Hours: 3 Credits: 3

Counts as:

  • EE Elective
  • CMPE Selective - Special Content

Normally Offered:

Each Spring

Campus/Online:

On-campus and online

Requisites:

ECE 36800 and ECE 46100

Requisites by Topic:

Familiarity with software concepts and engineering concepts; discrete math; data structures and algorithms

Catalog Description:

Software engineering is a difficult endeavor. Software engineers work in diverse teams to create and comprehend complex information, such as: code structure, implementation rationale, dynamic software behavior, change implications, and team dynamics. In this class, we will study principles of software engineering and discuss state-of-the-art research. In their course project, students will work to understand and extend the state of the art in software engineering. This course will specifically be focused on engineering processes and techniques for ensuring software quality (e.g., safety and security).

Required Text(s):

  1. Software Engineering , 10th Edition , Ian Sommerville , Pearson , 2016 , ISBN No. 0133943038
  2. Software Engineering at Google: Lessons Learned from Programming Over Time (e-book available through Purdue Libraries) , 1st Edition , Titus Winters; Tom Manshreck; Hyrum Wright , O'Reilly Media , 2020 , ISBN No. 1492082791

Recommended Text(s):

  1. The Mythical Man-Month: Essays on Software Engineering (e-book available through Purdue Libraries) , Frederick Brooks Jr. , Addison-Wesley Professional , 1995 , ISBN No. 9780201835953

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated an ability to:
  1. understand mathematical bases for software engineering (e.g. formal methods in software requirements traceability, software design, and software verification. [1]
  2. formulate, conduct, and report on a team-based research-oriented project in software engineering. [1,5,6,7]
  3. consider the ethical implications of software engineering failures and successes. [4]
  4. summarize and alalyze scholarly findings, both verbally and in writing. [3]

Lecture Outline:

Week(s) Topic(s)
2 Common software engineering processes reflecting the range of engineering practice.
1 Research methods in software engineering
4 Traditional design, implementation, and validation
4 Formal design, implementation, and validation
1 maintenance
1 Measuring engineering effectiveness
1 Engineering ethics and the role of culture
1 Project presentations (mid-semester and final)

Engineering Design Content:

  • Analysis

Engineering Design Consideration(s):

  • Economic
  • Environmental
  • Global
  • Societal

Assessment Method:

Homework, project, exams, presentations.