CS3013 Software Engineering II
Review Guideline
1. Review Materials
2. Review Tutorial
Time: 12:00 - 1:30pm, Fri. Dec. 15
Room: GD124
3. Review Contents
Thread 1: Software Engineering Concepts
Concepts (Activities):
- Requirements Elicitation
- Analysis
- System Design
- Design goals
- Subsystem decomposition
- Software architectures
- Deployment model
- Use-case based partition and layering
- Subsystem interfaces
- Concurrency: processes and threads
- Persistent objects with relational database
Focus on
- Goal of each activity
- What tasks are included
- How to do the tasks
- Why these tasks
- Relationships between activities and their differences
Thread 2: UML
- Structural, Behavioral, and Architectural Modeling
- Use-case, Logical, Component, and Deployment Views
- Diagrams and things in diagrams
- Use-case diagrams
- Class diagrams
- Object diagrams
- Sequence diagrams
- Statecharts
- Activity diagrams
- Component diagrams
- Deployment diagrams
Forward and reverse engineering from and to UML
Focus on: Meaning, Purpose, How to draw, Why
Thread 3: Unified Software Development Process
References: Rational Rose, Rational Unified Process, labs, project
Focus on:
- For each model
- Meaning, Purpose, What to build, How to build, Why
- Between models
- Dependency, Derivation, Difference
a) Use-case model
- Business object model (domain model)
Actors
Use cases
Specification of use cases (flows of events)
Prototype user interfaces
Roles of developers and their responsibilities
Workflow
Artifacts used and produced
b) Analysis model
- Use-case realizations
- Traceablity
Participating classes and their types
Collaborations of participating objects
Specification of use-case realizations (flows of events in terms of object collaboration)
Organization of analysis classes
- Analysis packages
Application specific and general layers and their relationship
Use-case specific classes, service management classes, and entity classes.
Roles of developers and their responsibilities
Workflow
Artifacts used and produced
c) Design model
- Deployment diagram (nodes and their connections)
Subsystem design based on
- Actors and use cases
Service layers
Deployment
Subsystem interface design and implementation
Class design (attributes and operations with signatures)
Refinement of object collaborations for use case realizations.
Roles of developers and their responsibilities
Workflow
Artifacts used and produced
d) Implementation model
- Assign subsystems to component packages
Assign classes to components
Deploy components to nodes
Forward engineering in Java