0% found this document useful (0 votes)
38 views

CPSC 439/539 Spring 2014

The Yale Journal of Economics is seeking a LaTeX Design Editor for the Spring 2014 semester to help typeset and layout the journal using LaTeX software; applicants should have experience using LaTeX and be interested in contributing to a new, rapidly growing publication; interested students should email their name, college, year and relevant experience to the journal.

Uploaded by

Salman Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

CPSC 439/539 Spring 2014

The Yale Journal of Economics is seeking a LaTeX Design Editor for the Spring 2014 semester to help typeset and layout the journal using LaTeX software; applicants should have experience using LaTeX and be interested in contributing to a new, rapidly growing publication; interested students should email their name, college, year and relevant experience to the journal.

Uploaded by

Salman Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 57

CPSC 439/539

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!

ABOUT THE JOURNAL:


Launched last year with the support of the Economics Department, the Journal showcases outstanding research
in economics by undergraduates at Yale and across the globe. The Journal published its first issue last spring and
its second issue this fall; these issues featured work by students at Yale, MIT, Princeton, and the University of
Chicago on topics like Spotifys effect on music piracy, laptops in the classroom, and IPO performance. Our work
has reached students and professors across the United States and around the world.

ABOUT THE POSITION:


Our design team is responsible for typesetting and laying out the Journal using LaTeX. Were looking for a new
design editor who has previous experience using this software and who wants to be part of a new and rapidly
growing publication.

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

Many notations over time


State machines
Entity-relationship diagrams
Dataflow diagrams
The rise of object-oriented programming

New class of OO modeling languages

By early 90s, over 50 OO modeling languages


Three leading OO notations decide to combine
Grady Booch (BOOCH)
Jim Rumbaugh (OMT: Object Modeling Technique)
Ivar Jacobsen (OOSE: OO Soft. Eng)

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

Could also be called


Union of all Modeling Languages
We discuss
Use Case Diagrams for functional models
Class Diagrams
for structural models
Object Diagrams
Sequence Diagrams
Activity Diagrams for dynamic models
State Diagrams

This is a subset of UML


But probably the most used subset

Book UML Distilled by Martin Fowler


Elements
Actors Use
Use cases case
Relations

Use case diagram shows relationship actor


between actors and use cases
Use
case

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

Class diagrams are static -- they nextStop


display what interacts but not what velocity
happens when they do interact doorsOpen?
Each box is a class
List fields addStop(stop);
List methods
startTrain(velocity);
stopTrain();
openDoors();
closeDoors();
Many different kinds of edges to
show different relationships
between classes

Mention just a couple


Association between two classes
if an instance of one class must know Customer
about the other in order to perform its 1
work.
Label endpoints of edge with
cardinalities
Use * for arbitrary

Can be directional (use arrows in


*
that case) Order
An association in which one An association in which one
class belongs to a collection class belongs to a collection
Shared: An object can exist in more No Sharing: An object cannot exist
than one collections in more than one collections
No ownership implied Strong has a relationship
Ownership
Denoted by hollow diamond on
the contains side Denoted by filled diamond on
the contains side
Car Project
1 1

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

Hospital Doctor General


Practitioner

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

Not orthogonal to other diagrams


Overlapping functionality
True of all UML diagrams
Class roles: roles that objects play
Lifelines: the existence of an object over time
Activations: time during which an object is performing an operation
Messages: communications between objects
link
Reincarnation of flow charts
Uses flowchart symbols

Emphasis on control-flow
Order (input parameter)

Order (output parameter)


How will you model the following situation:

In parallel, you accept payment and send order to warehouse to be delivered.


Then the warehouse throws an exception to denote product is not available
Then you must put back the charge on the CC

In general, how do you handle exceptions?


Swimlanes: responsibility of one or more objects
Action states: steps in the execution of an algorithm
Action flows: relationship between the different action states
Object flow: utilization of objects by action states
Hierarchical finite automata
Invented by David Harel, 1983

Specify automata with many states compactly


Button

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

This is a subset of UML


But probably the most used subset
A common language
Makes it easier to share requirements, specs, designs

Visual syntax is useful, to a point


A (good) picture is worth 1000 words
For the non-technical, easier to grasp simple diagrams than simple pseudo-code

To the extent UML is precise, it forces clarity


Much better than natural language

Commercial tool support


Something natural language could never have
Hodge-podge of ideas
Union of most popular modeling languages
Sublanguages remain largely unintegrated

Visual syntax does not scale well


Many details are hard to depict visually
Ad hoc text attached to diagrams
No visualization advantage for large diagrams
1000 pictures are very hard to understand
UML is being widely adopted
By users
By tool vendors
By programmers

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

Work in groups of 3-4


No talking or writing in any natural language
ONLY using UML to communicate, see if you can come up with a thorough design of
the system so that all of you agree on the design of the system

You might also like