click here to return to the home page, logo image
NSEN-6001 Software Engineering (SE 710)

Contributing Scholar - Bernd Bruegge, Technical University Munich and Carnegie Mellon University

 

3 Semester Credit Hours

 

Course Description

 

The term software engineering was coined in 1968 as a response to the desolate state of the art of developing quality software on time and within budget. Software developers were not able to set concrete objectives, predict the resources necessary to attain those objectives, and manage the customers' expectations. More often than not, the moon was promised, a lunar rover built, and a pair of square wheels delivered.

 

The emphasis in software engineering is on both words, software and engineering. An engineer is able to build a high-quality product using off-the-shelf components and integrating them under time and budget constraints. The engineer is often faced with ill-defined problems, partial solutions, and has to rely on empirical methods to evaluate solutions. Engineers working on application domains such as passenger aircraft design and bridge construction have met successfully similar challenges. Software engineers have not been as successful.

 

Useful software systems are complex. To remain useful they need to evolve with the end users' need and the target environment. In this course, we describe object-oriented techniques for conquering complex and changing software systems. Key techniques include:

 

  • UML
  • Use Case Specification
  • Object Modeling
  • Reusing Software Architectures
  • Design Patterns 
  • Mapping Models to Code
  • Testing
  • Rationale Management 
  • Project Management
  • Agile Methods

 

Prerequisites

 

 

  • Proficiency in an object-oriented programming language such as C++ or Java
  • Practical experience with maintaining or developing a large software system would be useful
  • General prerequisite: Students must have the knowledge resulting from completing all coursework in the curriculum for a BS degree in Computer Science or Computer Engineering from a regionally-accredited institution in the United States, or for a BS degree in engineering from an ABET-accredited engineering program in the United States or a CEAB-accredited program in Canada with a minor in computing systems, or the equivalent from a foreign institution; performance level in this coursework should be equivalent to a cumulative undergraduate GPA of 2.9 or better on 4.0 scale

 

Course Objectives

 

Upon completion of this course, you should be able to:

 

  • Understand the difference between a program and a software product
  • Apply model-based software engineering techniques
  • Understand iterative and incremental development
  • Reconstruct the analysis and design information in an existing software system
  • Design and implement a module that will be integrated in a larger system
  • You will have demonstrated the ability to:
  • Work as a member of a project team, assuming various roles as necessary
  • Create and follow project plans and test plans
  • Create the full range of documents associated with software products
  • Complete a project on time

 

Course Topics

 

The following topics will be covered in the order given.

 

  • Introduction
  • Modeling with UML: Basic Notations
  • Modeling with UML: Basic Notations II
  • Project Organization
  • Project Communication
  • Introduction into  ARENA
  • Requirements Elicitation
  • Functional  Modeling
  • Object Modeling
  • Dynamic Modeling
  • Design Goals &  System Decomposition
  • Architectural Styles
  • Addressing Design Goals
  • Object Design: Reuse
  • Object Design: Reuse, Part II
  • Object Design: Design Patterns
  • Design Patterns Part II
  • Object Design: Interface Specification
  • Object Design: Object Constraint Language
  • Mapping Models to Java Code
  • Mapping Models to Relational Schema
  • Unit Testing
  • System Testing
  • Rationale Management
  • Rationale-based Meeting Management
  • Configuration Management:  Basic Concepts
  • Configuration Management: Planning and Tools
  • Build Management
  • Project Introduction: Asteroids
  • Software Project Management: Planning
  • Work Breakdown Structures
  • Estimation
  • Project Management: Organization
  • Scheduling
  • Software Lifecycles: Basic Concepts
  • Software Lifecycles: Models
  • Software Lifecycle: Unified Process
  • Methodologies
  • Royce’ Methodology
  • Methodologies: Extreme Programming
  • Philosophy and Modeling
  • Final Course Review

 

Technical Requirements

 

Students must have Java 1.5, Ant and Subversion in order to take this course.  In addition, you will be required to have Windows Media Player to view the lectures. For the standard technical requirements, please go to the link below: http://www.waldenu.edu/c/Files/DocsGeneral/Getting_Started_Guide.pdf

 

Textbook

 

Required: Bernd Bruegge and Allen H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition, Pearson/Prentice Hall; ISBN: 0-130-47110-0

 

Disclaimer: The course syllabus may differ slightly from this course. Descriptions will be provided in your online course. Textbook information is provided only to give more information about the course.  Do Not use this information to purchase a textbook.  Up-to-date information will be provided when you register.



Search


Walden University is accredited by The Higher Learning Commission and a member of the North Central Association, www.ncahlc.org; 312-263-0456. © Copyright 2007 Walden University; Telephone: 800-925-3368