Virginia Tech Course Title
Course Description:
  The primary objective of this course is to teach the fundamentals of software engineering with emphasis on requirements engineering, architecting, and design. The course focuses on network-centric software engineering with architecting system of systems and object-oriented design using the Java Platform, Enterprise Edition (Java EE 5) and the Microsoft Platform, .NET Framework. Topics include: product, process, project, and people views of software engineering; software life cycle models; system engineering; use case-based requirements engineering using IBM RequisitePro software product; object-oriented concepts and principles; introduction to Unified Modeling Language (UML) using IBM Rational Rose software product; use cases; use case documentation template and examples; software product, process, and project metrics; introduction to network-centric software engineering; the process of architecting network-centric systems; overview of network-centric system/software architectures; overview of the Department of Defense Architecture Framework (DoDAF); overview of Java Platform, Enterprise Edition (Java EE 5); overview of Microsoft Platform, .NET Framework; employee business services: an example SOA-based network-centric software system; software decomposition / modularity, levels of cohesion, levels of coupling; object-oriented high-level and detailed software design; component-based software engineering; overview of the Capability Maturity Model Integration (CMMI) models; principles and techniques of software verification, validation, and testing.
Learning Objectives:
  Having successfully completed this course, students will be able to:
  1. engineer the requirements of a large-scale software system based on Use Cases using the UML technology and the IBM software tool Rational RequisitePro;
  2. architect a large-scale network-centric software system of systems;
  3. design a large-scale network-centric software system (e.g., e-business, e-commerce) using the (a) UML technology, (b) object-oriented paradigm, (c) Java EE 5 platform, (d) Microsoft platform, .NET Framework, and (e) IBM software tool Rational Rose;
  4. apply contemporary techniques throughout the development life cycle of a large-scale network-centric software system; and
  5. work on a software engineering project with the title of Software Engineer.
Prerequisites:
  Graduate Student standing in the Department of Computer Science.
Materials:
 

Required Textbook:

R.S. Pressman, Software Engineering: A Practitioner's Approach, Seventh Edition, McGraw-Hill, © 2010, 895 pages, ISBN 978-0-07-337597-7 (available at the Virginia Tech University Bookstore)

Textbook Web Sites:

IBM Rational Software:

Other

Tentative Chronological Outline:
  Week 1:  
    Aug. 23
  • Orientation to course. Explanation of intent of course and procedures.
  • Chapter 1: Software and Software Engineering.
    (Click chapter title and take the Online Quiz for each chapter covered.)
  • Software production and its difficulties.
    Aug. 25
  Week 2:  
    Aug. 30
    Sept. 1
  Week 3:  
    Sept. 6

Semester group project topic identified: Emergency Response Management Software System (ERMSS) for Washington, DC.

    Sept. 8
  Week 4:  
    Sept. 13 Quiz 1 (Covers Chapters 1-2 and 4-7 and Slides 01-04)
  • Use Case Definition and Examples, Example Use Case Diagrams, Example Use Case Dependencies Diagram for Order Processing, Organizing Use Cases, Dependency Relationships Among Use Cases, A Template for Use Case Documentation, Example documentations of use cases: Place Order and Login.
    Sept. 15
  1. Assignment 1 given
  2. “A Tutorial on Use Case-based Requirements Engineering Using Rational Rose and RequisitePro”
  3. Assignment 1 Common Mistakes
  Week 5:  
    Sept. 20
  • Introduction to Network-Centric Software Engineering
    Sept. 22 (Group Project 1 given)
  • Virtualization – Underpinnings of the Cloud Computing
  Week 6:  
    Sept. 27
  • Virtualization – Underpinnings of the Cloud Computing
  • The process of Architecting.
    Sept. 29 (Assignment 1 due)
  • The process of Architecting.
  Week 7:  
    Oct. 4 Quiz 2 (Covers Slides 05-08)
  • Overview of Network-Centric Software Architectures
    Oct. 6
  • Overview of Network-Centric Software Architectures
  • An Overview of the Department of Defense Architecture Framework (DoDAF)
  Week 8:  
    Oct. 11
  • Chapter 8: Design Concepts
  • Object-oriented concepts and principles
  • Software decomposition / modularity, levels of cohesion, levels of coupling
    Oct. 13 (Group Project 1 due)
  Week 9:
    Oct. 18 MIDTERM EXAMINATION (Includes all of the material covered until the exam date.)
    Oct. 20
  Week 10:  
    Oct. 25
  • An Overview of Java Platform, Enterprise Edition (Java EE)
    Oct. 27 (Group Project 2 given)
  • An Overview of Java Platform, Enterprise Edition (Java EE)
  • An Overview of Microsoft Platform, .NET Framework
  Week 11:  
    Nov. 1 (Assignment 2 due)
  • An Overview of Microsoft Platform, .NET Framework
    Nov. 3
  Week 12:  
    Nov. 8 Quiz 3 (Covers Chapters 10 and 11, Java EE, .NET, and Slides 14-17)
  • Principles of Verification and Validation (V&V) and Quality Assurance (QA)
    Nov. 10 (Group Project 2 due) (Group Project 3 given)
  • Principles of Verification and Validation (V&V) and Quality Assurance (QA)
  Week 13:  
    Nov. 15
    Nov. 17
  Week 14:  
    Thanksgiving Break
  Week 15:  
    Nov. 29
    Dec. 1 Quiz 4 (Covers Chapters 14-21 and Slides 18-19)
  • Verification, Validation and Testing Techniques
  Week 16:  
    Dec. 6 (Group Project 3 due)
  • Capability Maturity Model Integration (CMMI) for Development
  • People Capability Maturity Model (P-CMM)
    Dec. 8 Reading Day
    Dec. 13 FINAL EXAMINATION: Tuesday at 7:45 – 9:45 a.m. in McBryde 231.