Graduate Research - Department of Electrical and Computer

advertisement
Vanderbilt University
Institute for Software Integrated Systems
Nashville, TN
Graduate Research
Or how I learned to stop worrying, and
love the 25 hour day.
by
Jonathan Sprinkle
http://ransom.vuse.vanderbilt.edu/
http://www.isis.vanderbilt.edu/
Overview
• What’s grad school
about?
• Research in general
• The evolution of
computing
• Modeling and
metamodeling
• How modeling
environments affect
your world
• Questions and answers
Peter Sellers in Dr. Strangelove
But first…
My history:
B.S. TTU, May 1999
Electrical Engineering (controls)
Computer Engineering (first graduate ever!)
M.S. Vanderbilt, August 2000
There’s 24 hours in a day, and then you’ve got all night, too.
- Dr. Gabor Karsai, my advisor
My future:
Ph.D. Vanderbilt, May 2003
Other Vanderbilt scholars you
may know
•
•
•
•
•
Dean Johnson (PhD Vandy, 1978)
Jason Scott (BS TTU ’95)
Scooter Ball (BS TTU ’01)
Jason Rowe (BS TTU ’01)
Steve Nordstrom (BS TTU ’01)
What’s grad school about?
• What grad school is not:
– Your senior year(s) for a few more years
– All work and no play
– A breeze
• What grad school is:
–
–
–
–
A different style of learning
Less supervision
More responsibility
More rewards
What’s grad school about
• Teaching Assistant (TA)
– You spend 20 hours per week teaching class or labs,
and grading papers
– Do your own research (for your MS/PhD thesis and
dissertation) on your own time
• Research Assistant (RA)
– Spend 20+ hours per week working (researching)
for a professor or researcher
– Apply your work directly to your MS/PhD
thesis/dissertation (no extra work on the side
required!)
– Pays usually a couple-hundred bucks better than
TA’s
Research in general
• What is the purpose of a BS in
engineering?
• One answer
– To learn how to learn
• What is the purpose of research
in engineering:
– Establish
• Trends
• New techniques
• New theories and applications
– Show others what you’ve learned
• Publish in journals
• Attend conferences
E researchus unum
Research in general
What are the requirements for an MS or PhD?
• MS
– Take some classes (usually 24-30 hours of classwork,
at about 9 hours per semester)
– Write a thesis, which is on a successful piece of
research you’ve done
• PhD
– Take some more classes (about 48 more hours than
the MS)
– Writer a dissertation, which is about research that
furthers the state of the art, or makes a contribution
to your field
Research in general
• So, what does it mean to have an MS or a PhD?
• MS
– You can do research under someone else’s direction
– You have the ability to make others understand what
you’ve done
– You can achieve a goal you set out to do
• PhD
– Everything that’s an MS, plus
– You can direct your own research
– You can make others understand what nobody else
has done before
Research in general
• So, what good is research?
– You’re not constantly reinventing the wheel,
because you can look to see if someone else has
done what you need to have
– Someone else’s work might spark a pattern
recognition for you, in another application
• Plus, you can travel to your alma mater, and
tell them what the future of computing
means for them
The evolution of computing
The evolution of computing
• ENIAC and Turing’s machine
– Physical properties of electromechanical devices
interpreted to perform a mathematical algorithm
– Algorithms were configured by swapping wires
around between electromechanical devices
• von Neumann
– Realized that this swapping, or “switching” could
be done with the devices themselves, meaning
that configurations, or “programs” could be data
themselves
– Created the von Neumann architecture
The evolution of computing
• Programming
– First called “coding”, was the organization of 1’s
and 0’s into von Neumann’s architecture to
program the algorithm
• Assembly language
– Were textual representations of the 1’s and 0’s
that were machine code
– Make programming more readable, but not more
easily creatable
– People trained for years to get the “knack” of
programming, and many never got it
The evolution of computing
Computers were invented for:
a.
b.
c.
d.
Playing games
CIA intelligence gathering
Crunching numbers
Destruction of the One Ring
The evolution of computing
Computers were invented for:
a.
b.
c.
d.
Playing games
CIA intelligence gathering
Crunching numbers
Destruction of the One Ring
The evolution of computing
• So, how did this work?
Math guy spends 12 hours
explaining algorithm to
programmer
Programmer spends 60 hours
coding and debugging
program for math guy
The evolution of computing
• The vision of FORTRAN
– What if, instead of assembly language
painstakingly crafted to do math operations (e.g.,
vector arithmetic), there was a language that was
made for doing those operations
– Thus was born the FORmula TRANslation
language, or FORTRAN
• Brilliant for 2 reasons:
– Now, mathematicians could be trained to program,
directly applying math knowledge
– Now, there was a language for the domain of
mathematics
The evolution of computing
• Over the years, many new languages have
emerged
– COBOL (COmmon Business Oriented Language)
– C/C++, Ada, Java, Python, et al.
• However, not all of these are for a specific
domain
• Therefore, the programmer has to translate
the problem into code. This is what
separates the wheat from the chaff.
The evolution of computing
• Then, came the application
– Lotus 1-2-3 changed business forever, with its
ability to create balance sheets quickly
– For the domain of accounting, Lotus had created a
domain specific environment that was easy to use,
and enabled accountants to use it with little or no
training
• The only problem was, the application was
written in clumsy code (probably C), and
therefore, difficult to evolve and maintain
over the years.
The evolution of computing
• Wouldn’t it be great if it were easy to create
applications that were simple to use, yet
useful at the same time?
Bottled beer taste in a can.
Wouldn’t that be great?
Modeling and metamodeling
• Rapid design of modeling environments is a
recent research success in the area of
modeling
• It is now possible to create a working domain
application in a matter of hours instead of
weeks.
• “So what?”
“Surely you can’t be serious?!”
“I am serious. And stop calling me Shirley.”
-- Airplane!
Modeling and metamodeling
• Raise your hand if you like data entry
• Didn’t think so
• Unfortunately, lots of data entry has to be
done in engineering domains
– System configurations
– Plant layout
– Other boring stuff design engineers hate to do
Space Ghost: data entry superhero!!!
Modeling and metamodeling
• Wouldn’t it be great…
– If the domain I was designing for had a language
– If those people who work in that domain could do
all of the programming, because they know the
language?
• Doesn’t this remind you of FORTRAN?
Yggdrasil, the Icelandic
tree of knowledge
Modeling and metamodeling
• Enter the Domain Specific Modeling
Environment (DSME)
– Custom made for each domain
•
•
•
•
•
Finite state machines
Digital component layout
Saturn’s JIT (Just In Time) plant scheduling
C++ class design
Embedded system design
– Created so that domain users can use these
DSMEs to do their jobs better
Modeling and metamodeling
• Let’s take an easy example
– VHDL
– Now, would you rather lay out the model
graphically, or type in all of the text?
• Domain specific modeling helps relieve the
“programmer” of mundane or difficult to
understand chores
• This gives more time to the domain designer
(that’s you!)
Alright! More time!
Modeling and metamodeling
• So, what’s the idea, here?
Uses
System designer
Metamodeling
environment
Produces
Domain specific
modeling
environment
Program(s)
Produces
Executable
models
System user(s)
Runs
Plant!!!
Modeling and metamodeling
• So, what does a metamodeler do then?
– Designs the language of a DSME
• Creates the “types” of models, and how they are allowed to
interact
– Designs how that language is to be interpreted
• For each model type, create a “meaning”
• Then, the meaning of a designed system is derived from
the meaning of its components
• Functions much like a compiler
– Designs constraints to help the domain modeler
know what s/he’s doing
• Outlaw certain interactions on a higher level (e.g., it’s not
okay to hook two outputs to each other in a signal flow
model)
Modeling and metamodeling
• The bridge between design abstraction, and
modeling tool is found in the “meaning” of
the models
• To give meaning to models is the job of a
metamodeler
• Is this the end of the world for engineers?
Modeling and metamodeling
Modeling and metamodeling
• How did it use to be?
–
–
–
–
Plant calls engineer
Engineer designs system
Plant okay’s engineer’s design
Engineer builds system
vicariously for 6 different plant
engineers
– Engineer spends 6 months
debugging system, due to
ambiguous specifications from
plant engineers
– Engineer vows to take an oath of
silence, and move to a monastery
in Switzerland, populated by
Eunuchs programming Unix
Design system
Design
approval
Implementation
Modeling and metamodeling
• Now, how should it be?
– Plant calls engineer
– Engineer develops
metamodel
– Plant engineers
experiment with models
– Plant engineers give
feedback
– Final metamodel
delivery
– Plant engineers build
system
Design metamodel
Experimental
approval
Final delivery
System built
Sanity intact
Modeling and metamodeling
• So what happens here?
– The people who used to build their systems with
memos and ambiguous design descriptions now
get to “program” their system into being
– The design engineer who used to have to spend
valuable hours at the plant, tracing cables and
copying down robot numbers can now delegate
that work to the plant engineers
• The plant work ends up being done by
the people who work at the plant,
• The design work ends up being done by
the designer.
What does this mean?
• Why, then, do we need design engineers
anymore?
• Couldn’t all of this be done with a CsC
background?
• Remember that TANSTAFL
What does this mean?
• Engineers still have to be there, to interpret
what the plant engineers want
• Indeed, the ambiguity of the specification still
has to be resolved, it only means that the
plant engineers will understand earlier that
there is an ambiguity, because they are
involved in the “programming”
• This means that in the future, design
engineers will use more and more computing
techniques for final deployment (duh!)
When will I use this stuff?
• Maybe soon, maybe never
• The technology is proven, but the
engineering world is slow to accept it
• Current research is making DSME
development easier, and system evolution
more practical
• Yours truly will get a PhD with one of these
topics, and TTU grads are doing research in
them right now at Vandy
What have we learned today?
• Research helps further science
• Domain specific modeling can help in two ways:
– Design engineers get to design, and don’t have to
“waste” their time doing implementation
– Domain engineers get more actively involved in
implementation, and don’t “waste” their time in the
feedback loop with the designers of the system
• DSMEs might not change the world soon, but
odds are you’ve used one before, and you’ll
definitely use one later.
What have we left out?
• What kinds of graduate schools are there?
• What grad school should you go to, if you
have a particular career path that demands
it?
• What is the airspeed velocity of an unladen
swallow?
Questions and answers
“Well HAL, I’m damned if I can find anything wrong with it.”
“Yes. It’s puzzling, isn’t it.”
-- 2001: A Space Odyssey
Download