ECE 473

Software Engineering Concepts
Catalog Data: 

ECE 473 - Software Engineering Concepts (3 units)

Description: In-depth consideration of phases of software project life code. Object-oriented design and programming. Includes a large-scale software development project involving groups of students.

Grading: Regular grades are awarded for this course: A B C D E

May be convened with ECE 573

ECE 373
  • Sommerville, Ian. Software Engineering. 9th ed. Pearson, 2010.
  • Collins-Sussman, Ben, Brian W. Fitzpatrick and C. Michael Pilato. Version Control with Subversion. Online.
Course Learning Outcomes: 

By the end of this course the student will be able to:

  1. Use an existing open-source software package, as decided by the instructor
  2. Integrate software with an existing open-source software package
  3. Learn the software development kit and best practices for an open-source software package
  4. Write software that uses electrical and mechanical engineering concepts, including an interface with hardware (since 2010, an iOS, Android or Windows mobile device)
  5. Specify requirements for a software design in a design document
  6. Modify an existing software design when requirements are changed by the instructor
  7. Enforce consistent documentation and style through code reviews
Course Topics: 

Code lifecycle (10 lectures)

  • Conceptualization, analysis, design, implementation and maintenance

Software development processes (6 lectures)

  • Waterfall and iterative processes
  • UML methodologies
  • CMMI

Formal methods (3 lectures)

  • Model-driven designs
  • Requirements specifications
  • Automata theory

Software metrics, including code coverage (3 lectures)

Code review processes (3 lectures)

  • Revision control systems
  • Certification of software

iPhone/Android programming (8 lectures)

  • Students learn on their own, but with technical lectures
Class/Laboratory Schedule: 

Two 75-minute lectures per week

Relationship to Student Outcomes: 

ECE 473 contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:

  • Ability to apply knowledge of mathematics, science and engineering (High)
  • Ability to design a system, component or process to meet desired needs within realistic constraints, such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustainability (high)
  • Ability to function on multidisciplinary teams (medium)
  • Ability to identify, formulate and solve engineering problems (high)
  • Ability to communicate effectively (high)
  • Recognition of the need for, and an ability to engage in, life-long learning (medium)
  • Knowledge of contemporary issues (high)
  • Ability to use the techniques, skills and modern engineering tools necessary for engineering practice (high)
Prepared by: 
Jonathan Sprinkle
Prepared Date: 

University of Arizona College of Engineering