- Some Thoughts on Computing Jeff Gray, Ph.D. - Associate Professor Alabama Professor of the Year...
-
Upload
diane-bradley -
Category
Documents
-
view
223 -
download
0
Transcript of - Some Thoughts on Computing Jeff Gray, Ph.D. - Associate Professor Alabama Professor of the Year...
- Some Thoughts on Computing Jeff Gray, Ph.D. - Associate ProfessorAlabama Professor of the Year
UAB – CIS [email protected]://www.cis.uab.edu/gray
Department of Computer and Information SciencesUniversity of Alabama at Birmingham
S o f t C o m
What hooked me on computing…
New form to express creativity
Science Fairs 8th grade
Bulletin Board Software High School
Tic-Tac-Toe Learner
“Wargames”
My Collaborations with ASFA
2004 – Matthew Ferguson2005 – Sally Tao, Jia Zhang, and Pratik Talati
Others: 2008 – David Kneynsberg 2009 – Kheri Dunkins Justin Harrison
Since 2007 – Josh Swank2009 – Jemale, Omar, Wisdom
Jemale captivating his audience
ASFA at UAB
2005 - Peilong Cong (Top 3) 2006 HSPC Team
2007 HSPC Team
2008 – Josh (First Place)
2009 HSPC Team
• Number of schools passing AP CS audit
Computer Science in AlabamaASFA Leading the Way
State Number of Schools
Alabama 3 (out of > 460)
Tennessee 16
South Carolina 18
North Carolina 28
Florida 69
Georgia 78
New Jersey 133
California 165
Texas 271
• Number of students taking AP CS exams
Georgia’s Success Story
State 2001 2007 2008
Georgia 69 CS A exams 422 CS A exams 585 CS A exams
15 CS AB exams 107 CS AB exams 105 CS AB exams
Alabama 22 CS A exams 27 CS A exams 41 CS A exams
12 CS AB exams 7 CS AB exams 11 CS AB exams
Careers in Computing
The Benefits of a Diverse Education
• You don’t need to be a Pulitzer Prize winning novelist to appreciate an English class…
• …nor a world-renowned scientist or mathematician to understand the wonders of our world.
• We believe that understanding computational thinking also offers skills useful for your future.
Your PhotoHere
Software is Everywhere
• Think of some of the things that entertain and enrich your daily life
• All of the above are driven by software
• Software developers equipped with a computer science degree have opportunities to work on exciting and cutting-edge projects
Software is Everywhere• 98% of all microprocessors control devices other than desktop computers– Automobiles, airplanes, televisions, copiers, razors…
• These devices also need software and often require strong technical skills to develop
>10Mb embedded software15-20Kb 1-1.5Mb
> 1M SLOC
Meteoric Opportunities
February 15, 2005: Domain registered (youtube.com)
Jawed Karim, Chad Hurley, and Steve ChenAround 25 years old at this time
November 2005:Official Debut
100 Million Clips viewed daily; 65,000 uploads per day 20 Million visitors each month October 2006: Time Magazine Invention of the Year
Great Talk: From Concept to HyperGrowthhttp://www.youtube.com/watch?v=nssfmTo7SZg
October 6, 2006: Google purchased for $1.65B
Alabama Technology Leaders
Jimmy WalesWikipedia FounderHuntsville Native
• The biggest multilingual free-content encyclopedia on the Internet. • Since its creation in 2001, nearly 10 million articles in over 250 languages.• Over 680 million visitors each year; 75,000 active contributors.
“… the software industry is going to make more breakthroughs in these next 10 years than it's made in the last 30 … software is really going to transform not just what we think about as the computer industry, but the way that everything is done …”
Intellectual Opportunities
Re-architecting the Internet
Harnessing parallelism
Quantum computing
Transforming all fieldsof science and engineering
Wrecklessdriving
Prosthetics / augmentation /
access
Transforming the nation’s defense
The Demand for Computer Scientists
Offshore hysteria: Many companies with high paying jobs within the US are unable to fill positions with computer scientists.Source: http://money.cnn.com/magazines/moneymag/bestjobs/top50/index.html
The Demand for Computer Scientists
Computer Science occupations are projected to grow twice as fast as the average for all occupations.
Source: http://www.bls.gov/opub/ooq/2007/fall/art02.pdf
Between 2006-2016 a projected 822,000 new jobs will be available in Computer Science occupation areas in the United States alone.
The Demand for Computer Scientists
Source: IEEE Spectrum, August 2008
Computer science has the highest engineering salary and the fastest growing salary increase.
Communications of the ACM,July 2008, pg. 32.
The Demand for Computer Scientists
According to the Bureau of Labor and Statistics, 5 of the top-10 growing jobs have a computer science focus.
(Reprinted with Permission from onInvesting)
The Demand for Computer Scientists
• National Job Outlook– $61,407 is the average starting salary for
computer science degrees in the class of 2009 (among top 3 highest starting salaries); 9.7% increase over 2007 offers
– 1000s of openings each at Microsoft Game Studios, Electronic Arts, Epic Games, Google
– Epic Games President: “We do not hire anyone under $100k”
The Demand for Computer Scientists• Local Job Outlook
– In Birmingham, there was a recent need for 200 Java programmers; exceeded university’s ability to deliver employees
– CTS hiring several new developers each month– Summary of recent openings in Birmingham:
• JAVA/J2EE/EJB ($60/hr), Peoplesoft ($95/hr), SAP Technical ($85/hr), SAP Functional ($95/hr), Corba ($55/hr), Oracle DBA ($70/hr), DB2 DBA ($70/hr), Sybase DBA ($75/hr), .Net,vb.net,C#,asp.net ($60/hr), C/C++ ($55/hr), Cobol ($55/hr)
• Recent Birmingham Software Success– UAB CIS Graduates
– Dr. Stephen Brossette (Founder) Dr. Daisy Wong (Dir. IT)
– Estimated $100M– 179% growth – tops among
Birmingham companies
The Potential for Alabama• Per capita, Huntsville is
one of the top five cities in the US with concentration of software developers, and #1 in terms of total engineers.
• Cummings Research Park is the second largest in the United States and the fourth largest in the World.
Huntsville
Myth of Computer Science• According to the Alabama Learning Exchange
(ALEX)1, computing is equated to learning Microsoft Word and various mechanical tasks; this is not Computer Science!
1 http://alex.state.al.us/standardAll.php?grade=9&subject=TC&summary=2
High School Outreach at UAB CISMentoring for Science Fair Competitions Summer Camps
• Weekly mentoring at UAB throughout academic year; students treated like a PhD student with office space
www.cis.uab.edu/gray/Pubs/jerrod-sutton.pdf
www.cis.uab.edu/progams/campswww.cis.uab.edu/heritage
www.cis.uab.edu/progams/hspcwww.cis.uab.edu/progams/alice-festival
Programming Contest and Alice Festival
•6 weeks High School; 1 weeks Middle School•Tuition Scholarships Available•Taught by UAB Faculty•Topics include Java, robotics, graphics,
game programming, scientific computing•In 2009, over 65 students attended
• May 2010• Over 150 students and
parents from across Alabama
• Prizes: Laptop, Xbox, software, books, gift certificates
• Alice Film Festival!
ASFA Example Projects
• Robotics Examples from Past Summer Camps
• Cool Alice Video Game– Justin Harrison
• Recent Science Fair Projects:– Omar and Jemale– Wisdom– Josh
Examples in CS Research
Model Transformation Toolsuite• Model Transformation Engine• Transformation Testing Framework• Model Transformation Debugger• Model Version Control• Model-Driven Program Transformation
•Evolution of large legacy apps from models
TransformedBold Stroke C++ codeCommon/Project
Library ofBold Stroke C++
Source Code
DMS Transform
ationRules
DMSvoid BM__PushPullComponentImpl::Update (const UUEventSet& events){ BM__ComponentInstrumentation::EventConsumer(GetId(), "Update", events);
unsigned int tempData1 = GetId().GetGroupId(); unsigned int tempData2 = GetId().GetItemId(); std::vector<BM__ClosedComponent*>::iterator devIter =
void BM__PushPullComponentImpl::Update (const UUEventSet& events){
UM__GUARD_EXTERNAL_REGION(GetExternalPushLock()); BM__ComponentInstrumentation::EventConsumer(GetId(), "Update", events);
default base domain Cpp~VisualCpp6.pattern UM_GUARD_EXTERNAL_REGION_as_identifier_or_template_id(): identifier_or_template_id = "UM__GUARD_EXTERNAL_REGION".pattern GetExternalPushLock_as_identifier_or_template_id(): identifier_or_template_id = "GetExternalPushLock".pattern ExternalLockStmt(): expression_statement = "\
default base domain Cpp~VisualCpp6.pattern UM_GUARD_EXTERNAL_REGION_as_identifier_or_template_id(): identifier_or_template_id = "UM__GUARD_EXTERNAL_REGION".pattern GetExternalPushLock_as_identifier_or_template_id(): identifier_or_template_id = "GetExternalPushLock".pattern ExternalLockStmt(): expression_statement = "\
ESML Models
Jing Zhang and Jane Linwww.cis.uab.edu/gray/Research/C-SAW/
Software Composition and Modeling Laboratoryhttp://www.cis.uab.edu/softcom/
Hui Wuwww.cis.uab.edu/wuh/DDF
Eclipse DSL Debugging Framework
12
6
1 begin2 left3 down4 up5 right6 end
4
Lexer,Parser
public class Robot{ public static void main(String[] args) { …… //move left x=x-1; time=time+1;
//move down y=y-1; time=time+1; …… } }
3
import java.util.ArrayList;
public class Mapping { ArrayList mapping; public Mapping(){ mapping=new ArrayList(); mapping.add(new Map(1, "Robot.java",2,8)); mapping.add(new Map(2, "Robot.java",10,14)); …… } }
Mapping Component
5
Robot DSL Grammar In ANTLR Notation
Robot DSL
Generated Lexer, and Parser by ANTLR
Robot.java and Mapping.java
Java Command Line Debugger
Robot DSL Debugging Perspective in Eclipse
DebuggerView
DSLEditor
Variables View
Supported by:Eclipse Innovation Grant
• Framework for building debuggers and testing engines for different categories of domain-specific languages
• AspectG is an aspect weaver for grammars
Speech Enabled Software Development
• Assistive technology for disabled programmers• Integrates open source speech recognition with a popular open IDE• Videos and papers available at:
www.cis.uab.edu/info/Eclipse/SpeechClipse
SpeechClipse
Language Independent Refactoring and Aspect Weaving
Suman Roychoudhurry
www.cis.uab.edu/softcom/GenAWeave
Software Composition and Modeling Laboratoryhttp://www.cis.uab.edu/softcom/
Clone Analysis and Visualization
Robert Tairas
www.cis.uab.edu/tairasr/clones
• Visualization and analysis of clone detection results from CloneDR as an Eclipse plug-in
Synopsis of my Research Area
• Techniques that enable software developers to automate common tasks
• Improved modularity to enable adaptive changes to large-scale software
• Supporting end-users with notations and languages that are appropriate for their domain, rather than computer programming languages
The “Twisted Plot” MetaphorThe Problem of Keeping Track of Things in Your Head
• The interactions among characters and overlapping events makes a good novel (“thickness” of plot as a complexity metric)
• The author must take care in preserving, throughout the entire novel, internal consistency within plot
• e.g., a change in the conclusion of the plot may necessitate global changes in all chapters
• Keeping track of all the twists can be difficult because the various concerns of the plot are distributed across multiple chapters
• but…Software development is MANY orders of magnitude more difficult!
Logically Consistent?
…
Chapter 2
Conclusion
Chapter 1
…
Poor Engineering leads to ad-hoc structure!
The result of continuous buildingwithout any thought toward design.
Result: Stairs leading to ceiling; Windows in the middle of room; Doors opening to wall; Non-intuitive floor plan!.
Winchester Mystery House:http://www.winchestermysteryhouse.com/
Poor Engineering leads to ad-hoc structure!
The result of continuous building without any thought toward design.
Problems: • How would you maintain this if something went wrong?• How would you extend this to add more connections or features?
Poor Engineering Has Disastrous Consequences!
Aerodynamic phenomena in suspension bridges were not adequately understood in the profession nor had they been addressed in this design. New research was necessary to understand and predict these forces.
The remains, located on the bottom of the Sound, are a permanent record of man's capacity to build structures without fully understanding the implications of the design. http://www.nwrain.net/~newtsuit/recoveries/narrows/narrows.htm
Poor Engineering Has Disastrous Consequences!$7 Billion Fire Works – One Bug, One Crash
On 4 June 1996, the maiden flight of the Ariane 5 launcher ended in a failure. Only about 40 seconds after initiation of the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight path, broke up and exploded.
The failure of the Ariane 501 was caused by the complete loss of guidance and attitude information 37 seconds after start of the main engine ignition sequence (30 seconds after lift- off). This loss of information was due to specification and design errors in the software of the inertial reference system.
http://java.sun.com/people/jag/Ariane5.htmlhttp://www.around.com/ariane.htmlhttp://archive.eiffel.com/doc/manuals/technology/contract/ariane/page.html
The launcher started to disintegrate at about H0 + 39 seconds because of high aerodynamic loads due to an angle of attack of more than 20 degrees that led to separation of the boosters from the main stage, in turn triggering the self-destruct system of the launcher. This angle of attack was caused by full nozzle deflections of the solid boosters and the Vulcain main engine. These nozzle deflections were commanded by the On-Board Computer (OBC) software on the basis of data transmitted by the active Inertial Reference System (SRI 2). Part of these data at that time did not contain proper flight data, but showed a diagnostic bit pattern of the computer of the SRI 2, which was interpreted as flight data. The reason why the active SRI 2 did not send correct attitude data was that the unit had declared a failure due to a software exception. The OBC could not switch to the back-up SRI 1 because that unit had already ceased to function during the previous data cycle (72 milliseconds period) for the same reason as SRI 2. The internal SRI software exception was caused during execution of a data conversion from 64-bit floating point to 16-bit signed integer value. The floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer. This resulted in an Operand Error. The data conversion instructions (in Ada code) were not protected from causing an Operand Error, although other conversions of comparable variables in the same place in the code were protected. The error occurred in a part of the software that only performs alignment of the strap-down inertial platform. This software module computes meaningful results only before lift-off. As soon as the launcher lifts off, this function serves no purpose. The alignment function is operative for 50 seconds after starting of the Flight Mode of the SRIs which occurs at H0 - 3 seconds for Ariane 5. Consequently, when lift-off occurs, the function continues for approx. 40 seconds of flight. This time sequence is based on a requirement of Ariane 4 and is not required for Ariane 5. The Operand Error occurred due to an unexpected high value of an internal alignment function result called BH, Horizontal Bias, related to the horizontal velocity sensed by the platform. This value is calculated as an indicator for alignment precision over time.
The value of BH was much higher than expected because the early part of the trajectory of Ariane 5 differs from that of Ariane 4 and results in considerably higher horizontal velocity values.
Even building a dog house takes some engineering and design…
From http://www.ttyler.8m.com/Dog%20House.htm
Initially started as a "basic" dog house but soon turned into a masterpiece of quality workmanship. Total time spent was 8 hours at a cost of $110 US. Start with a piece of paper and a idea: Design your dog house to the size and quantity of your dogs. A perfectly built home is worthless if its to small to properly accommodate your dog. Framing: The framing process should be constructed with 2x4's or rip them in half for smaller homes. A removable roof should be incorporated in assisting the future cleaning and maintenance. Wall Covering: Should be tong & grove for a tight fit, no warping, and to cut down on cross drafts. For large homes, plywood is a economical material that can be used. Roof: 30 year home shingles cut down to the proper size. As for this house, an oriental piece was constructed then topped of with a copper fence post top. An additional hours work and $15 cost was needed Trim & Finishing Touches: Trim can add a lot to the astidics of your dog house. Trim can be bought with may different variations or with some craftsmanshipcan can be made with the use of a router. Sanding & Paint: Sink all nails below the surface and cover with wood filler. Prepare surface for painting by sanding wood filler, rough spots, and blemishes.
Code Clone Refactoring:Removing Redundancy in your Code
38
Code Clones• Code clone: a sequence of statements
that are duplicated at multiple locations in a program
• Research shows that 6-8% of large-scale application code are clones (Jiang, 2007)
Source Code
Cloned Code
39
int func1() { int x = 1; int y = x + 5; return y;}
int func2() { int p = 1; int q = p + 5; return q;}
int main() { int x = 1; int y = x + 5; return y;}
int func3() { int s = 1; int t = s + 5; s++; return t;}
Types of Clones
Exact match Exact match with differing variable names
Near exact match
Original code
int func1() { int x = 1; int y = x + 5; return y;}
int func2() { int p = 1; int q = p + 5; return q;}
int main() { int x = 1; int y = x + 5; return y;}
int func3() { int s = 1; int t = s + 5; s++; return t;}
int func1() { int x = 1; int y = x + 5; return y;}
int func2() { int p = 1; int q = p + 5; return q;}
int main() { int x = 1; int y = x + 5; return y;}
int func3() { int s = 1; int t = s + 5; s++; return t;}
int func1() { int x = 1; int y = x + 5; return y;}
int func2() { int p = 1; int q = p + 5; return q;}
int main() { int x = 1; int y = x + 5; return y;}
int func3() { int s = 1; int t = s + 5; s++; return t;}
Scientific Method in CS Research
Model-Driven Engineering:Customized Languages with Domain-Specific Modeling
Categories of End-Users
AdminAssistants
Businessperson
Auto Factory Worker
Scientist
Spreadsheet
BusinessQuery Systems
Modeling Language
DSL forPhysics
Domain-Specific Modeling
44
Model-Driven Engineering (MDE)MDE: specifies and generates software systems based on high-level models
Domain-Specific Modeling (DSM): a paradigm of MDE that uses notations and rules from an application domain
Metamodel: defines a Domain-specific Modeling language (DSML) by specifying the entities and their relationships in an application domain
Model: an instance of the metamodel
Model Transformation: a process that converts one or more models to various levels of software artifacts (e.g., other models, source code)
Question
But what is a model?
A very popular model: geographical maps
Models
repOfSystem
2000 Census Map
Aerial Map
Model Road Map
1777 City Plan
The System
Every map has a legend
legend = metamodel
Model
c2
Metamodel
Another Notation (DSL)
Model
Metamodel
c2
Music notation
Sheet music
Executable Model
Power Tab Editor
Two Views:
Traditional notes
Guitar tab
Characteristics of Modeling Languages Each model conforms to its
metamodel A model is a representation
of a system satisfying substitutability For each question that can be
asked of the system, the model produces the same answer Not true for me and road maps!
(from Jean Bezivin)
Core Focus: Ability to evolve models The size of system models will continue to grow
Models containing several hundreds or even thousands of modeling elements
Others have reported similarly (multiple thousands of nodes)
A key benefit of modeling Ability to explore various design alternatives (i.e., “knobs”)
E.g., understanding tradeoff between battery consumption and memory size of an embedded device
E.g., scaling a model to 800 nodes to examine performance implications; reduce to 500 nodes with same analysis…
Reducing complexities of the modeling activity Limit the amount of mouse clicking and typing required
within a modeling tool to describe a change Improves productivity and reduces potential manual errors
A general metric for determining the effectiveness of a modeling toolsuite comprises the degree of effort required to make a correct change to a set of models.
51
Challenges in Software Evolution:1. Model Evolution
∆M: The changes made to the models
M∆
Models Models’
As the size of system models grows, techniques and tools are needed to automate complex change evolution
52
Is it easy to evolve a model manually?
1.Select the 1.Select the model element model element icon and drag it icon and drag it to the editor to the editor windowwindow
2.Build the2.Build the connectionsconnections
3.Set the values of 3.Set the values of the propertiesthe properties
53
Deep hierarchy !
Growing size ! Model scalingconcerns !
Crosscuttingconcerns !
Challenge 1: Solved with Aspect-Oriented ModelingCrosscutting Constraints in Real-Time/Embedded Models
54
Challenges in Software Evolution:2. Legacy Evolution
∆S: The changes made to the legacy source
A small modification in the high-level requirements may trigger drastic manual changes in large portions of the low-level legacy source code
55
Challenges in Software Evolution:3. Model/Code Co-Evolution
∆M: The changes made to the models∆S: The changes reflected in the source code
Conformity between the models and underlying source code needs to be established in order to maintain the fidelity of the whole system
Evolution of legacy models and code
∆MM: The changes made to the meta-models∆M: The changes reflected in the domain models∆I: The changes reflected in the legacy source
Legacy Source1
Model1
Metamodel1
Define
Interpret
Legacy Sourcen
Modeln
Metamodeln
Define
Interpret
Legacy Source0
Model0
Metamodel0
Define
Interpret
∆M 1
∆MM 1
∆I 1
∆M 2
∆MM 2
∆I 2
∆M n
∆MM n
∆I n……
……
……
Based
on
What about other artifacts of the modeling process during metamodel evolution?Interpreters, constraints, model transformations…
For more information…
www.uab.edu
UAB Main Web Site UAB CIS Web Sitewww.cis.uab.edu
You all are invited to come take a tour and visit our department!
Summary of K-12 Outreach Activities (videos and photos)
www.cis.uab.edu/gray/outreach/outreach.html