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