CSE/ISE 308
Fall 2010
Stony Brook
Software Engineering
Instructor: Peter Williams
Exam Topics
Exam Study Guide
4/17
Exam in class Apr. 23


Software development methodologies
Waterfall model, stages; incremental and iterative; difficulties

Time estimation, law of diminishing returns
pert/gantt charts
Requirements engineering - functional, nonfunctional; FURPS+

Use cases

Use case diagram
System sequence diagram,
Object sequence diagram
UML Domain models

Design:
Coupling & cohesion; layering, partitioning
Architectures: MVC, repository, client/server, peer-to-peer, three-tier, pipe and filter

UML Class diagrams
Design tradeoffs

Testing - errors, defects/faults
Fault avoidance, fault detection, fault tolerance
Code reviews, Debugging
Test cases, stubs, drivers
regression testing, unit testing, black/white box testing, system/integration testing
unit testing: equivalence, boundary, path testing

System modeling
state machine diagrams
Entities, events and values
Activity Diagrams

OCL
types, operations, navigation, expressions, constraints, multiplicity
collections - sets, sequences, bags, set operations
pre/postconditions, use in class diagrams

Measurement & complexity - cyclomatic complexity, time estimation

Security
information security (encryption/integrity)
difficulties, complexity, secure design
attacks - code injection, cross-site scripting

Therac-25 - flaws, response, lessons

Cloud computing - use models, applications, economy of scale

Advanced design
OO design guidelines
Patterns - advantages, Abstract Factory, Singleton, State, Command, Observer