ECE 46100 - Software Engineering

Lecture Hours: 3 Credits: 3

This is an experiential learning course.

Counts as:
EE Elective

Normally Offered: Each Spring

Requisites:
ECE 30862

Catalog Description:
Introduction to software-engineering principles with special emphasis on the process, methods, and tools needed to develop and test quality software products and systems, and team management.

Course Objectives:
For students to know important software-engineering principles and successfully apply them to complete a software project as a member of a small student team.

Supplementary Information:
1 credit may be used as lab credit for the BSEE degree.

Required Text(s):
  1. Software Engineering: A Practitioner's Approach, 6th Edition, Roger S. Pressman, McGraw-Hill, 2004, ISBN No. 0-07-285318-2.
Recommended Text(s):
  1. Software Design, From Programming to Architecture, Eric Braude, Wiley, 2004, ISBN No. 0-471-20459-5.

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. the ability to conduct object-oriented design and use unified modeling language. [1,3]
  2. the ability to understand different models of software development processes. [1,2]
  3. the ability to analyze requirements and write project specifications. [1,2]
  4. the ability to successfully develop a team software project on time and meet the specifications. [1,2,3,4]

Lab Outline:

Weeks Topic(s)
1 Introduction, project description and team organization
2 Requirement analysis and project specification
3 Version control and bug tracking
4 Visual programming and user interface
5 Object-oriented design and unified modeling language
6 Software development process
7 Open source development model
8 Midterm project presentation
9 Team management
10 Ethics, reliability and standard
11 Test and verification
12 System integration
13 Estimation and product metrics
14 Software release and post-release analysis
15 Final project presentation

Engineering Design Content:

Analysis
Construction
Testing

Engineering Design Consideration(s):

Economic
Environmental
Ethical
Sustainability