- Some Thoughts on Computing Jeff Gray, Ph.D. - Associate Professor Alabama Professor of the Year UAB – CIS Department [email protected]http://www.cis.uab.edu/gray D epartm entofCom puterand Inform ation Sciences U niversity ofA labam a atB irm ingham S o ftC o m
57
Embed
- Some Thoughts on Computing Jeff Gray, Ph.D. - Associate Professor Alabama Professor of the Year UAB – CIS Department [email protected] .
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
- Some Thoughts on Computing Jeff Gray, Ph.D. - Associate ProfessorAlabama Professor of the Year
• 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.
•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
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.
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)