Course
Description: |
| |
The primary objective of the course is to
teach the principles and techniques of software engineering with emphasis
on requirements engineering and software design. The course heavily concentrates
on the Unified Modeling Language (UML) technology and client/server web-based
software engineering with the Java Platform Enterprise Edition (EE) architecture and the Microsoft .NET Framework. Topics include: computer-based
system engineering, software development processes and life cycle models,
software requirements engineering, system models for requirements specification,
use case-based requirements engineering using Rational Rose and RequisitePro
(IBM Rational Suite Enterprise software product), architectural
design, distributed systems architecture, multi-tier web-based architectures,
web-based application servers, Windows Server 2003 and Microsoft .NET
Framework, CORBA distributed architecture, service-oriented architectures,
object-oriented design, Rational Unified Process, real-time software design,
design with reuse, component-based software engineering, user interface
design, project management, software risk management, software testing
levels and principles, verification and validation techniques, managing
people, People Capability Maturity Model (P-CMM), quality management,
process improvement, and Capability Maturity Model Integration (CMMI). |
| Learning
Objectives: |
| |
Having successfully completed this course, the
student will be able to:
- engineer the requirements of a large-scale software system based on
Use Cases using the UML technology and the IBM Rational software tools: RequisitePro, Rose, and SoDA;
- design a large-scale web-based client/server software system (e.g.,
e-business, e-commerce, e-solutions) using the (a) UML technology, (b)
object-oriented paradigm, (c) Java EE architecture, (d) Microsoft .NET
Framework, and (e) IBM Rational software tools: Rose and SoDA;
- apply contemporary techniques throughout the development life cycle
of a large-scale software system; and
- work on a software engineering project with the title of Software
Engineer.
|
Prerequisite: |
| |
CS2604 Data Structures and File Processing
|
Materials: |
| |
Required Textbook:
Ian Sommerville, Software Engineering, 8th Edition,
Addison-Wesley / Pearson Education Limited. © 2007 (available at the Virginia Tech University Bookstore)
Textbook Author's Web Site:
Virginia Tech CS Online SE Module:
IBM Rational Suite Enterprise:
Other Resources
|
| Tentative
Chronological Outline: |
| |
Week
1: |
|
| |
|
Aug. 21 |
Orientation to course. Explanation of intent of course and
procedures. Chapter 1: Introduction: Software Crisis; Software
Production and its Difficulties (Complexity, Conformity, Changeability,
Invisibility); What is Software? What is Software Engineering? |
| |
|
Aug. 23 |
Chapter 2: Socio-technical systems: Complex
Systems made of Hardware, Software, and Humanware; Systems Engineering;
System and Software Engineering; System Architecture Modeling; The System
Engineering Process. Chapter 3: Critical Systems. |
| |
Week
2: |
|
| |
|
Aug. 28 |
Chapter 4: Software Processes: The Waterfall
Model; The Prototyping Model; The Exploratory Development Model |
| |
|
Aug. 30 |
The Incremental Development Model; The Spiral Model; The Reuse-Based
Development Model; The Automation-Based Development Model. Rational Unified
Process. |
| |
Week
3: |
|
| |
|
Sept. 4 |
Chapter 6: Software
Requirements: Requirements Engineering; Functional and Non-functional
Requirements; Requirements Imprecision; Software Requirements Credibility
Assessment |
| |
|
Sept. 6 |
Quiz 1 (covers Chapters 1, 2, 3 and 4). Chapter
7: Requirements Engineering Processes: The Requirements
Engineering Process; The System Feasibility Study Sub-Process. Requirements
Elicitation and Analysis; Viewpoint-Oriented Requirements Elicitation
and Definition; Requirements Validation Techniques. |
| |
Week
4: |
|
| |
|
Sept. 11 |
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. 13 |
- Assignment 1 given
- “A Tutorial on Use Case-based Requirements Engineering Using
Rational Rose, RequisitePro, and SoDA”
- Assignment 1 Common Mistakes
- Assignment 1 SoDA Template and Help
- Introduction to IBM Rational Suite Enterprise software product
|
| |
Week
5: |
|
| |
|
Sept. 18 |
Chapter 8: System Models: What is a System Model?
System Modeling; External Perspective: Context Models; Different System
Models (Representations) in UML |
| |
|
Sept. 20 |
Chapter 11: Architectural Design: System / Software
Design; Decomposition / Modularization; Modularity; System Quality Characteristics;
Repository Model; Client-Server Model; Layered Model; Object-Oriented Paradigm;
Function-Oriented Pipelining; Centralized Control; Call-Return Model: The
Procedural Paradigm; Manager Model; Event-Driven Systems; Domain-Specific
Architectures; Generic Models; Reference Architectures |
| |
Week
6: |
|
| |
|
Sept. 25 |
Quiz 2 (covers Chapters 6, 7 and 8). Chapter 12: Distributed Systems
Architectures: Software paradigm shift; Distributed Systems; Distributed
System Characteristics; Critical Design Issues for Distributed Systems. |
| |
|
Sept. 27 |
(Assignment 1 due) (Group
Project 1 given) Distributed Systems ArchitecturesMulti-Tier
Architectures (Client/Server architectures) and Distributed Object Architectures;
A Client Server (Two-Tier) Architecture. |
| |
Week
7: |
|
| |
|
Oct. 2 |
Example IBM Development and Deployment Environment; Thin and
Fat Clients; Three- and Four-Tier Architecture; Application Servers; Distributed
Object Architectures. |
| |
|
Oct. 4 |
CORBA and DCOM; CORBA Application Structure; CORBA Standards
and Objects; Object Request Broker (ORB); Inter-ORB Communications; CORBA
Services; Peer-to-Peer Architectures; Service-Oriented Architectures; Web
Services. |
| |
Week
8: |
|
| |
|
Oct. 9 |
Chapter 14: Object-Oriented Design: Object-Oriented
Development; The Object-Oriented Paradigm; Objects; Classes; Instantiation;
Variables (Attributes); Methods (Services); Inheritance; Message Passing;
Encapsulation; Polymorphism; Dynamic Binding; Association |
| |
|
Oct. 11 |
Chapter 15: Real-Time Software Design: Soft and Hard Real-Time Systems; Stimulus / Response Systems; Architectural
Considerations; A Real-Time System Model; Real-Time Systems Design Process;
Real-Time Programming; Real-Time Executive Components |
| |
Week
9: |
|
| |
|
Oct. 16 |
MIDTERM EXAMINATION (Covers
Chapters 1, 2, 3, 4, 6, 7, 8, 11, 12 and Slides 1-11) |
| |
|
Oct. 18 |
(Group Project 1 due) (Assignment 2 is given with a tutorial document on how to create UML
diagrams) Chapter 16: User Interface Design: User interface
design principles; User interaction; Information presentation; User support;
Interface evaluation |
| |
Week
10: |
|
| |
|
Oct. 23 |
Chapter 18: Software Reuse: Reuse-based SE;
Benefits of Reuse; Design Patterns; Generator-based Reuse; Application Frameworks;
COTS Product Reuse; Software Product Lines. |
| |
|
Oct. 25 |
Chapter 19: Component-Based Software Engineering
(CBSE): Component-based Development; CBSE Essentials; CBSE Challenges;
Component Characteristics; Component Interfaces; Component Models (EJB Model,
.NET Model, CORBA Component Model), Middleware Support; The CBSE Process;
Component Composition |
| |
Week
11: |
|
| |
|
Oct. 30 |
Quiz 3 (covers Chapters 14, 15, 16, 18 and 19). Java platform,
Enterprise Edition 5 (Java EE 5) Architecture |
| |
|
Nov. 1 |
Java EE 5 Architecture; Microsoft .NET
Framework with Windows Server 2003 |
| |
Week
12: |
|
| |
|
Nov. 6 |
(Assignment 2 due) (Group
Project 2 given) Microsoft .NET Framework with Windows Server 2003. Service-Oriented Architecture (SOA)'s Killer App Unveiled;
SOA Information Technology (IT) Strategy Guide |
| |
|
Nov. 8 |
Chapter 5: Project Management: Software Project
Planning; Software Project Scheduling; Task Durations and Dependencies;
Allocation of People to Tasks; A Task (Activity) Network; Task (Activity)
Bar Chart; Software Risk Management; The Risk Management Process; Software
Risk Identification. |
| |
Week
13: |
|
| |
|
Nov. 13 |
Chapter 28: Process Improvement: Capability
Maturity Model Integration (CMMI) for Systems Engineering / Software Engineering
(CMMI-SE/SW) |
| |
|
Nov. 15 |
- Chapter 22: Verification and Validation
- Definitions of terms; Levels of testing; Principles of testing; A
taxonomy of testing techniques: informal, static, dynamic, and formal.
|
| |
Week
14: |
|
| |
|
Thanksgiving Break |
| |
Week
15: |
|
| |
|
Nov. 27 |
Quiz 4 (covers Java EE 5, .NET, and Chapters 5 and 28)
- Chapter 23: Software Testing
- V&V techniques: Inspections, Reviews, Walkthroughs,
Cause-Effect Graphing, Calling Structure Analysis, Control Flow Analysis,
State Transition Analysis, Data Dependency Analysis, Data Flow Analysis,
Fault/Failure Analysis, Semantic Analysis, Symbolic Evaluation, Traceability
Assessment, Acceptance Testing & Alpha Testing, Assertion Checking,
Beta Testing, Bottom-up Testing, Comparison Testing, Authorization Testing,
Performance Testing.
|
| |
|
Nov. 29 |
- Chapter 24: Critical Systems Validation
- V&V techniques: Security Testing, Standards Testing,
Debugging, Execution Monitoring, Execution Profiling, Execution Tracing,
Fault/Failure Insertion Testing, Functional (Black-Box) Testing, Data
Interface Testing, Software Interface Testing, User Interface Testing,
Object-Flow Testing, Partition Testing, Product Testing, Boundary Value
Testing.
|
| |
Week
16: |
|
| |
|
Dec.
4 |
(Group Project 2 due)
- V&V techniques: Regression Testing, Equivalence
Partitioning Testing, Stress Testing, Branch Testing, Condition Testing,
Data Flow Testing, Loop Testing, Path Testing, Statement Testing, Symbolic
Debugging, Top-Down Testing, Inductive Assertions, Predicate Calculus,
Proof of Correctness.
|
| |
|
Dec.
6 |
Reading Day |
| |
|
Dec.
12 |
FINAL EXAMINATION: Wednesday,
Dec. 12 at 2:05 – 4:05 p.m. in Torgersen 1040. |