CPSC 439/539 Spring 2014
CPSC 439/539 Spring 2014
Spring 2014
Wanted: LaTeX Design Editor
Dear students,
The Yale Journal of Economics is seeking a LaTeX Design Editor for the Spring 2014 semester, and were inviting
you to apply!
HOW TO APPLY:
Please send an email to [email protected] with your name, college, and class year, as well as
why youre interested in the position and your relevant experience. Applications will be considered on a rolling
basis. For additional information about the Journal, feel free to email us with questions. We hope to hear from you
soon!
Many slides courtesy of Rupak Majumdar
Additinally, Rupak thanked Alex Aiken, Ras Bodik, Ralph Johnson, George Necula,
Koushik Sen, A J Shankar
This course is inspired by various courses available on-line that combine software
engineering and formal methods
Alex Aikens course at Stanford
Darko Marinovs course at the University of Illinois
Describing a system at a high level of abstraction
A model of the system
Used for requirements and specification
Why?
Natural evolution towards each other
Effort to set an industry standard
UML stands for
Unified Modeling Language
Design by committee
Many interest groups participating
Everyone wants their favorite approach to be in
Resulting design is huge
Many features
Many loosely unrelated styles under one roof
actor
A resource manager manages resources
A project manager manages projects
A system administrator is responsible for administrative functions of the system
A backup system houses backup data for the system
A project manager can add, remove, and update a project
Remove and update project requires to find project
A project update may involve
Add, remove, or update activity
Add, remove, or update task
Assign resource to a task or unassign resource from a task
Describe classes Train
In the OO sense lastStop
4 1..*
Wheels Consultant
Car Project
1 1
4 1..*
Wheels Consultant
CPSC439 AKW
1 1
* 1..*
Student classroom
CS439 AKW
1 1
* 1..*
Student Classroom
Inheritance between classes
Button
Denoted by open triangle
RequestButton EmergencyButton
(Think subclassing)
Doctor
Cardiologist
final class Car {
final class Car {
private Engine engine;
private final Engine engine;
void setEngine(Engine engine) {
Car(EngineSpecs specs) {
this.engine = engine;
engine = new Engine(specs);
}
}
void move() {
void move() {
if (engine != null)
engine.work();
engine.work();
}
}
}
}
Object diagram is an instantiation of a class diagram
Represents a static structure of a system at a particular time
Now obsolete (link)
Invalid
Object
Diagram
33
Sequence diagrams
Refine use cases
Gives view of dynamic behavior of classes
Class diagrams give the static class structure
Emphasis on control-flow
Order (input parameter)
off
depart push
on
We discussed
Use Case Diagrams for functional models
Class Diagrams
for structural models
Object Diagrams
Sequence Diagrams
Activity Diagrams for dynamic models
State Diagrams
A step forward
Seems useful
First standard for high-levels of software process
Expect further evolution, development of UML
Decide on a high-level specification
E.g., Structure of the government in the US, or your own system of choosing classes to
attend this semester