Lehigh University
COLLEGE HOME | LEHIGH HOME | SEARCH




   

CSE 216 Software Engineering  (3)

Instructor:  Jim Femister


Current Catalog Description 
The software life-cycle; life-cycle models; software planning; testing; specification methods; maintenance. Emphasis on team work and large-scale software systems, including oral presentations and written reports. Prerequisite: CSE 109.

Textbook 
Hans van Vliet, Software Engineering: Principles and Practice, 2nd ed.,  J. Wiley.

References 
Martin Fowler, UML Distilled, Addison Wesley.
Rumbaugh, Jacobson, Booch, The Unified Modeling Language Reference Manual,  Addison Wesley.

Course Goals
1. Understanding of
    o basic software engineering terminology
    o the software life-cycle
    o the roles and responsibilities of the various stakeholders in a software project
    o the role of software process in facilitating development  and ensuring software quality
2. Ability to prepare a requirements specification.
3. Ability to create control-flow graphs, data-flow graphs, and compute simple quality metrics.
4. Ability to use CASE tools.
5. Ability to design interfaces.
6. Ability to use the Unified Modeling Language.
7. Gain experience working in a team.
8. Appreciation of the issues that make large-scale software engineering challenging.

Prerequisites by Topic
1. Fluency in writing code in C++.
2. Ability to effectively use classes to construct medium-scale software.

Major Topics Covered in the Course 
1. Software Process
2. Project Management (including Project Planning, Cost Estimation, and Configuration Management)
3. Requirements Engineering
4. Software Architecture
5. Software Design (including Functional Decomposition, Data Flow Design, Object-Oriented Analysis & Design, User Interface Design, the Unified Modeling Language)
6. Software Quality
7. Reusability
8. Maintainability
9. Testing
10. CASE Tools

Laboratory projects (specify number of weeks on each)
Requirements Specification (2 weeks), Interface Design (2 weeks), Class Design (2 weeks), Implementation and Unit Testing (3 weeks), Integration (3 weeks).

Estimate CSAB Category 
                                                                      CORE      ADVANCED 
Data Structures     
Computer Organization and Architecture 
Algorithms Software Design                                                   2.5  
Concepts of Programming Languages                                     0.5
 
Oral and Written Communications
Every student is required to submit at least  __2__  written reports (not including exams, tests, quizzes, or commented programs) of typically  __8__  pages and to make  ____  oral presentations of typically  _____  minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.

Social and Ethical Issues

Theoretical Content
Modeling: 10 classes
Program analysis techniques: 4 classes
Role of polymorphism, interfaces, and Class Factory design pattern in reducing coupling among modules: 4 classes

Problem Analysis
Students work in teams to:
Understand and analyze the class project, then write a Requirements Specification for it.
Understand the overall architecture design, then determine the interface to their portion of the system.
Determine how to test their portion of the system in isolation, and how to test its integration into the overall system.

Solution Design
Students work individually to:
Apply the Class Factory design pattern in a programming assignment
Students work in teams to:
Design the implementation for their portion of the class project.

 

     
image


©2009 P.C. Rossin College of Engineering & Applied Science
Computer Science & Engineering, Packard Laboratory, Lehigh University, Bethlehem PA 18015