Software Engineering Concepts
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.
Sommerville, Ian. Software Engineering. 9th Ed. Pearson. 2010.
Collins-Sussman, Ben, Brian W. Fitzpatrick and C. Michael Pilato. Version Control with Subversion. Online. svnbook.red-bean.com.
Course Learning Outcomes:
By the end of this course the student will be able to:
- Use an existing open-source software package, as decided by the instructor.
- Integrate software with an existing open-source software package.
- Learn the sdk and best practices for an open-source software package.
- 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.
- Specify requirements for a software design in a design document.
- Modify an existing software design when requirements are changed by the instructor.
- Enforce consistent documentation and style through code reviews.
Code lifecycle (10 lectures)
- Conceptualization, analysis, design, implementation, and maintenance
Software development processes (6 lectures)
- Waterfall and iterative processes
- UML methodologies
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
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)