Software Engineering Concepts
- "Software Engineering," I. Sommerville. 9th Ed. Addison-Wesley. 2010. ISBN-13: 978- 0137035151
- The "SVN Book," http://svnbook.red-bean.com
Specific Course Information:
2021-2022 Catalog Data: 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.
Specific Goals for the Course:
Outcomes of Instruction: 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 on her own 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; (since 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; and
- Enforce consistent documentation and style through code reviews.
Brief list of topics to be covered:
- Code lifecycle, including conceptualization, analysis, design, implementation, and maintenance [10 lectures].
- Software development processes, including waterfall and iterative processes, the UML methodologies, and CMMI [6 lectures].
- Formal methods, including model-driven designs, requirements specifications, automata theory [3 lectures].
- Software metrics, including code coverage [3 lectures].
- Code review processes, revision control systems, and certification of software [3 lectures].
- iPhone/Android programming (students learn on their own, but with technical lectures) [8 lectures].
Relationship to Student Outcomes
ECE 473 contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:
1. An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
2. An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
3. An ability to communicate effectively with a range of audiences.
5. An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
7. An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.