| 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 IBM Rational RequisitePro software product, architecting, distributed systems architecture, multi-tier web-based architectures,
web-based application servers, and Microsoft .NET
Framework, CORBA distributed architecture, service-oriented architectures,
object-oriented design, UML modeling with IBM Rational Rose software product, 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 software tool Rational RequisitePro;
- 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 software tool Rational Rose;
- 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 or
CS2606 Data Structures and Object Oriented Development II
|
| 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:
IBM Rational Software:
Other Resources
|
| Tentative
Chronological Outline: |
| |
Week
1: |
|
| |
|
Aug. 25 |
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. 27 |
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: |
|
| |
|
Sept. 1 |
Chapter 4: Software Processes: Dr. Balci's Software Life Cycle
Model; The Prototyping Model; The Exploratory Development Model |
| |
|
Sept. 3 |
- The Incremental Development Model; The Spiral Model; The Component-Based / Reuse-Based
Development Model; The Automation-Based Development Model.
- Problem Formulation - the first process of the software life cycle
|
| |
Week
3: |
|
| |
|
Sept. 8 |
Chapter 6: Software
Requirements: Requirements Engineering; Functional and Non-functional
Requirements; Requirements Imprecision; Software Requirements Credibility
Assessment |
| |
|
Sept. 10 |
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. 15 |
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. 17 |
- Assignment 1 given
- “A Tutorial on Use Case-based Requirements Engineering
Using Rational Rose and RequisitePro”
- Assignment 1 Common Mistakes
Chapter 8: System Models: What is a System Model?
System Modeling; External Perspective: Context Models; Different System
Models (Representations) in UML |
| |
Week
5: |
|
| |
|
Sept. 22 |
- Introduction to Network-Centric Software Engineering
|
| |
|
Sept. 24 |
- Virtualization – Underpinnings of the Cloud Computing
|
| |
Week
6: |
|
| |
|
Sept. 29 |
Quiz 2 (covers Chapters 6, 7, and 8 and Slides 06-10)
- The Process of Architecting
|
| |
|
Oct. 1 |
(Assignment 1 due) (Group
Project 1 given)
- An Overview of Network-Centric Software Architectures
- Reading Assignment: Chapter 12: Distributed Systems Architectures
- An Overview of the Department of Defense Architecture Framework
(DoDAF)
|
| |
Week
7: |
|
| |
|
Oct. 6 |
Chapter 11: Architectural High-Level Design: System / Software
Design; Decomposition / Modularization; Modularity; System Quality Characteristics;
Repository Model; Client-Server Model; Layered Model; Object-Oriented Paradigm; |
| |
|
Oct. 8 |
Function-Oriented Pipelining; Centralized Control; Call-Return Model: The
Procedural Paradigm; Manager Model; Event-Driven Systems; Domain-Specific
Architectures; Generic Models; Reference Architectures |
| |
Week
8: |
|
| |
|
Oct. 13 |
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. 15 |
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. 20 |
MIDTERM EXAMINATION (Includes all of the material covered until the exam date.) |
| |
|
Oct. 22 |
(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. 27 |
Chapter 18: Software Reuse: Reuse-based SE;
Benefits of Reuse; Design Patterns; Generator-based Reuse; Application Frameworks;
COTS Product Reuse; Software Product Lines. |
| |
|
Oct. 29 |
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: |
|
| |
|
Nov. 3 |
Quiz 3 (covers Chapters 16, 18, 19, and Slides 18, 19, 20)
- An Overview of Java Platform, Enterprise Edition (Java EE)
|
| |
|
Nov. 5 |
- An Overview of Java Platform, Enterprise Edition (Java EE)
- An Overview of Microsoft Platform, .NET Framework
|
| |
Week
12: |
|
| |
|
Nov. 10 |
(Assignment 2 due) (Group
Project 2 given)
- An Overview of Microsoft Platform, .NET Framework
- Reading Assignment:
|
| |
|
Nov. 12 |
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. 17 |
Chapter 28: Process Improvement: Capability
Maturity Model Integration (CMMI) for Systems Engineering / Software Engineering
(CMMI-SE/SW) |
| |
|
Nov. 19 |
- Principles of Verification and Validation (V&V) and Quality Assurance (QA)
|
| |
Week
14: |
|
| |
|
Thanksgiving Break |
| |
Week
15: |
|
| |
|
Dec. 1 |
Quiz 4 (covers Java EE and .NET)
- Chapter 22: Verification and Validation
- Software Verification, Validation and Testing Techniques
|
| |
|
Dec. 3 |
- Chapter 23: Software Testing
- Software Verification, Validation and Testing Techniques
|
| |
Week
16: |
|
| |
|
Dec.
8 |
(Group Project 2 due)
- Chapter 24: Critical Systems Validation
- Software Verification, Validation and Testing Techniques
|
| |
|
Dec.
10 |
Reading Day |
| |
|
Dec.
14 |
FINAL EXAMINATION: Monday at 7:45 – 9:45 a.m. in Torgersen 1040. |