Software Engineering Concepts
Spring 2016
Catalog Data: 

ECE 473 -- Software Engineering Concepts (3 units)

Description: In-depth consideration of each of the phases of the 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 sdk and best practices for an open-source software package.
  4. Write software that utilizes electrical and mechanical engineering concepts, including an interface with hardware. As of 2010, this is 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:

  • an ability to apply knowledge of mathematics, science and engineering (High)
  • an 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)
  • an ability to function on multi-disciplinary teams (Medium)
  • an ability to identify, formulate and solve engineering problems (High)
  • an ability to communicate effectively (High)
  • a recognition of the need for, and an ability to engage in life-long learning (Medium)
  • a knowledge of contemporary issues (High)
  • an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice (High)
Prepared by: 
Dr. Jonathan Sprinkle
Prepared Date: 

University of Arizona College of Engineering