14:332:452 Software Engineering

Course Catalog Description: 

14:332:452 Software Engineering (3)
Software development lifecycle, object-oriented software engineering, system specification, software measurement and estimation, software design patterns.

Pre-Requisite Courses: 

14:332:351

Pre-Requisite by Topic: 

Programming Methodology II, Data Structures and Algorithms, Discrete Mathematics

Textbook & Materials: 

1. Bruegge & Dutoit, Object-Oriented Software Engineering, 3rd Edition, Prentice Hall, 2010.
2. Miles & Hamilton: Learning UML 2.0, 2nd Edition, O'Reilly Media, Inc., 2006

Overall Educational Objective: 

The key objective of this course is to learn object-oriented design of software and documenting the design using UML symbolic representations. A key emphasis is on hands-on, team-based development of working software systems.

Course Learning Outcomes: 

A student who successfully fulfills the course requirements will have demonstrated:
1. An ability to plan and execute lifecycle steps for developing a complex software product.
2. An ability to develop and document various analysis and design artifacts using UML, such as use cases and various structural and interaction diagrams.
3. An ability to formulate an effort estimation plan and track progress, as well as measure the quality of software and decide when refactoring is needed.
4. An ability to understand and apply software design patterns for quality software.

How Course Outcomes are Assessed: 

  • Term Project (60 %)
  • Two Mid-Term Exams (30 %)
  • Homeworks (10 %)


N = none S = Supportive H = highly related

Outcome

Level

Proficiency assessed by

(a) an ability to apply knowledge of Mathematics, science, and engineering

S

Exams

(b) an ability to design and conduct experiments and interpret data

H

Term project

(c) 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

H

Term project

(d) an ability to function as part of a multi-disciplinary team

H

Term project

(e) an ability to identify, formulate, and solve ECE problems

S

Term project, Exams

(f) an understanding of professional and ethical responsibility

S

Term project

(g) an ability to communicate in written and oral form

H

Term project

(h) the broad education necessary to understand the impact of electrical and computer engineering solutions in a global, economic, environmental, and societal context

S

Term project

(i) a recognition of the need for, and an ability to engage in life-long learning

S

Lectures, subsequent courses

(j) a knowledge of contemporary issues

S

Term project

(k) an ability to use the techniques, skills, and modern engineering tools necessary for electrical and computer engineering practice

H

Term project (including software design and development)

Basic disciplines in Electrical Engineering

N

Depth in Electrical Engineering

N

Basic disciplines in Computer Engineering

H

Exams, Term project

Depth in Computer Engineering

H

Exams, Term project

Laboratory equipment and software tools

H

Term project

Variety of instruction formats

S

Lectures, Office hour discussions

Topics Covered week by week: 

Week 1: Software Lifecycle and Team Projects
Week 2: Requirements Elicitation and Use Cases
Week 3: Object-Oriented Analysis
Week 4: Object-Oriented Design
Week 5: Implementation and Testing
Week 6: Examination 1
Week 7: Software Architecture
Week 8: System Specification
Week 9: Interim Project Demonstration
Week 10: Software Measurement
Week 11: Project Effort Estimation
Week 12: Examination 2
Week 13: Software Design Patterns
Week 14: Software Design Patterns
Weeks 15-16: Final Project Demonstration

Computer Usage: 

Software design and documentation using UML; Software programming using programming languages and Web languages; SQL database management.

Laboratory Experiences: 

Software design, documentation, and programming in a semester-long programming project, working in teams 4-6 students.

Design Experiences: 

The term project is design-oriented in that students learn how to employ software design and lifecycle methodologies on a complex problem with real-world application. The project is also team-based, so students learn how to coordinate teamwork to accomplish much more than any individual student would be able to accomplish in a given time frame

Independent Learning Experiences : 

1. Term project in complex software development, 2.Testing (Exams)

Contribution to the Professional Component: 

(a) College-level Mathematics and Basic Sciences: 0.25 credit hours
(b) Engineering Topics (Science and/or Design): 2.75 credit hours
(c) General Education: 0.0 credit hours
Total credits: 3

Prepared by: 
I. Marsic
Date: 
June, 2011