Upload
earl-riley
View
222
Download
0
Tags:
Embed Size (px)
Citation preview
Whither Software Engineering Whither Software Engineering Education?Education?
Mary ShawMary ShawInstitute for Software ResearchInstitute for Software Research
Carnegie Mellon UniversityCarnegie Mellon University
Conference theme
Ensuring that academic programs match actual real-world needs
Today, considerstakeholders
status quo
what next?
Conference theme
Ensuring that academic programs match actual real-world needs
Today, considerStakeholders: Students, users, developers, educators
Status quo
What next?
For current undergraduates …For current undergraduates ……email is too slow, snail mail is irrelevant
…card catalogs have never been the way to find a book
…there has always been DNA fingerprinting & genome maps
…there has always been a World Wide Web
…avatars have nothing to do with Hindu deities
…cable TV has always provided phone service
…wars have always been broadcast on TV in real time
…dey r alws txtN 1 NothA
…books have always been readable on electronic screens
…electronic filing of tax returns has always been possible
…phones have always had caller ID
…Dilbert has always been ridiculing cubicle culture
Beloit Mindset List, classes of 2011-2014
… … as for the (American) adults …as for the (American) adults …... 79% use the Internet
decreases with age Increases with education, income
…85% have cellphones (95% of 18-34yo)28% have 4+ internet devices
…47% use cellphones/tablets for news/information42% weather, 37% local business, only 11% news via appsmobile devices displacing laptops and desktops for access
…users increasingly manage reputation with search & social media57% of internet users monitor reputation with search engines46% of internet users have created profiles on social network sites18-29yos are more likely to limit personal information
Pew Internet and American Life Project
Same
Very similar
There are There are lotslots of end users … of end users …
Scaffidi et al. Estimating the Numbers of End Users and End User Programmers. VL/HCC'05.
Using data from the Bureau of Labor Statistics, we estimate that over 90M Americans will use computers at work in 2012. Of these, only about 2.5M will be professional programmers; 40.5M will be managers and (non-software) professionals.
This does not include home users or non-US users, so there will be many more than 90M total end users. Most of them will “program” in some way.
… … and they are not all alikeand they are not all alike
Scaffidi et al. Dimensions Characterizing Programming Feature Usage by Information Workers. VL/HCC'06
Analysis of web-based survey of Information Week readers
End users are normal peopleEnd users are normal people
End users lack robust mental models of computingthey fail to do backups, don’t understand storage modelsthey can not safely configure a network
End users put themselves at riskthey execute malware and open attachmentsthey do not understand privacy issuesthey trust information without validating sources
SE responds by trying to “fix” the usersBut there is ample evidence that most people do not
reason in the linear, rational form that SE prefers
Computing, electronic communication, and the internet have penetrated deeply into American life
The public at large remains largely consumers ……but increasingly producers of information…with synthesis, fusion, and programming lagging
CS/SE has not served the public well …… products are still often inscrutable… system administration is not for the faint of heart… programming tools are mostly still for geeks… we educators don’t do much to help them
What about the faculty What about the faculty (in PhD-granting schools)(in PhD-granting schools)??Rank 2009-10 2001-02 %change
N % N %
Full 2204 40 1767 35 25Associate 1677 31 1184 24 42Assistant 892 16 1246 25 28Teaching Faculty 721 13 785 16 8Total Faculty 5494 4982 10
PhD enrollment 15,038 10,021 50
BS enrollment 58,784 94,461 38
Growing slowly, but BS enrollments down Limited capacity to teach nonmajors (the 90 million)
Getting more senior Less likely to use computing as students do
CRA Taulbee Survey 2001-2002 and 2009-2010
Conference theme
Ensuring that academic programs match actual real-world needs
Today, considerStakeholders: Students, users, developers, educators
Status quo: The world, research, curriculum
What next?
The Ten Best Jobs of 2011CareerCast, May 2011
1. Software Engineer
2. Mathematician
3. Actuary
4. Statistician
5. Computer Systems Analyst
6. Meterologist
7. Biologist8. Historian9. Audiologist10. Dental Hygienist
““Red Hot: The Computer Science Red Hot: The Computer Science Job Market “Job Market “
From ACM TechNews, 5/23/2011
“Across the United States, new computer science graduates from strong programs are receiving extraordinary job offers, writes Ed Lazowska … 2011 CSE graduates at U Washington have reported starting salaries as high as $105,000 and signing bonuses as high as $30,000 …due to the recent tech industry boom … just about every field is starting to rely heavily on information technology …”
In other news …In other news …Congressman wants FTC probe of iPhone tracking
Sony Hacked Again; 25 Million Entertainment Users' Info at Risk
Amazon Apologizes For Server Disaster
Apple kills App Store number growth, focuses on fairness, app quality
Tweets, Facebook welcome in Mass. courtroom
'Do Not Track' Legislation Is On the Move
Oracle updates Business Intelligence with iPad in mind
Password-storing service may have been hacked
Control your home with your smartphone
Cisco rolls out data center pods
Raspberry Pi: Computer on a stick for only $25
State Dept computer error halts immigration lottery
Amazon server may have been used in Sony attack
Internet resourcesInternet resources
Information: unstructured text, formatted text, databases, live data feeds, images, maps, current status (e.g., inventory, location)
Calculation: reusable software components, applications that can be invoked remotely (e.g., services)
Communication: messages, social networking, streaming media, synchronous communication, agent systems, alert/notification services, highly distributed systems
Control: coordination for use of resources, access to registration and subscription services
Services: simulation, editorial selection, markets evaluation, secondary information, responsive experts,
Properties of internet resourcesProperties of internet resourcesAutonomous: independently created and managed, may
change structure or format without notice
Heterogeneous: different packagings, output often for viewing only, different business objectives, conditions of use
Open affordances: independent systems, not dependent components, incidental effects may be useful, humans integral to some resources
Undermines common assumptions: it’s all about programs; someone is “in charge” or “in control”
Learning environments, tools, and eLearning
Education & training for “real-world” Software Engineering practices
Systems and Software Engineering
Curriculum and inter-disciplinary offerings
Training models in industry
Combining research and teaching
Industry-academia collaboration models
Student performance evaluation and assessment
Student projects and internships
Combining research and curriculum
Education theory and pedagogy
Here at CSEE&T …Here at CSEE&T …
Using Statistical Tests to Assess Randomized Algorithms
Impact of Fault Models on Software Robustness Evaluation
Refactoring Pipe-like Mashups for End-User Programmers
Mining Message Sequence Graphs
An Empirical Study of Build Maintenance Effort
Inferring Better Contracts
Coverage Guided Systematic Concurrency Testing
Frequency and Risks of Changes to Clones
Symbolic Model Checking of Software Product Lines
Program Abstractions for Behaviour Validation
Detecting Software Modularity Violations
Reverse Engineering Feature Models
… … and at ICSE …and at ICSE …
ICSE Research Track CSEE&T ICSE Research Track CSEE&T
ICSE Research Track CSEE&T ICSE Research Track CSEE&T
ICSE Research Track News Headlines ICSE Research Track News Headlines
Conference theme
Ensuring that academic programs match actual real-world needs
Today, considerStakeholders: Students, users, developers, educators
Status quo: The world, research, educators
What next?: What to teach? To whom?
What should we teach?Durable, fundamental ideas …… in the context of current practice
To whom?Future professional software developersPracticing software engineersOther computer scientistsNon-majors == future end users
Durable ideasDurable ideas
Abstraction (and the Hoare mapping)
Exponential growth
Divide & conquer (reductionistic vs emergent)
Design spaces
Tradeoffs – utility, costs, benefits
Models, programs as models
Algorithms/representations
Predicate logic
Not to have blind faith in analysis
Design as management of scarce resources
Correctness relative to specification vs in context
CMU’s approach to SE education CMU’s approach to SE education
Distinctive nature of engineering for softwareSoftware is design-intensive; manufacturing cost is smallSoftware is symbolic, abstract, more constrained by complexity
than by physical laws
Software engineering rests on three foundationsCore computer science: technical conceptual foundationEngineering knowledge: design and problem solvingSocial and economic context: basis for fitness for use
Software engineering is the branch of computer science that creates practical,
cost-effective solutions to computation and information processing problems,
preferentially applying scientific knowledge
Core Computer ScienceCore Computer Science
Abstraction enables the control of complexity.
Imposing structure on problems often makes them more tractable, and a number of common structures are available.
Symbolic representations are necessary and sufficient for solving information-based problems.
Precise models support analysis and prediction.
Common problem structures lead to canonical solutions.
Exponential growth limits many solutions
CSTB: CS research …CSTB: CS research …
… involves symbols and their manipulation
… involves the creation and manipulation of abstractions
… involves the creation and study of algorithms
… creates artificial constructs, unlimited by physical laws
… exploits and addresses exponential growth
… seeks fundamental limits on what can be computed
… addresses the complex, analytic, rational action that is associated with human intelligence
CSTB: Computer Science: Reflections on the Field, Reflections from the Field, National Academies Press 2004
Engineering KnowledgeEngineering Knowledge
Engineering quality resides in engineering judgment
Quality of the software product depends on the engineer's faithfulness to the engineered artifact.
Engineering requires reconciling conflicting constraints
Engineering skills improve as a result of careful systematic reflection on experience.
Note: this views SE as an engineering discipline, notas a process and management discipline
Social and Economic ContextSocial and Economic Context
Costs and time constraints matter, not just capability.
Technology improves exponentially, but human capability does not
Successful software development depends on teamwork by creative people.
Business and policy objectives constrain software design and development decisions as do technical considerations.
Software functionality is embedded in institutional, social, and organizational structure;
Clients usually don’t know precisely what they want; the developer must facilitate discovery of requirements
Pedagogical principlesPedagogical principles
University education must provide knowledge of enduring value together with current competency
Tools and skills cannot replace engineering judgment
Hands-on, attentive time on task is critical to learningmuch more important than format of presentation
Curriculum design is a resource allocation problem
Admissions should be selective, and we should make every effort to help admitted students succeed
Sampling is ok; we do not have to cover everything
The “Carnegie Plan” provides excellent guidance
Carnegie PlanCarnegie Plan
That is, teach students to think critically and independently and to act as responsible professionals in their disciplines to be informed, engaged citizens in the world
A Carnegie Mellon education aims to prepare students for life and leadership. In a continually changing world, the most
important qualities we can help our students develop are the ability to think independently and critically, the ability to learn, and the ability to change and grow. As future leaders they must
have courage to act, be sensitive to the needs and feelings of others, understand and value diversity, and honor the
responsibilities that come with specialized knowledge and power.
What about the end users?What about the end users?
80 million users are creating information/computing artifactsmostly without thought of maintenanceMostly without considering engineering issues
These artifacts only vaguely resemble software of the kind we teach
We are not giving them much helpFor most, taking our courses is not what they needFor most, our level of detail and rigor is too high
They need simple, intuitive modelsThe models need to be good-enough (cf thermostats)
Why doesn’t SE seem “sexy”?Why doesn’t SE seem “sexy”?
Software-Intensive socio-technical systems
involving data, communications, …
Closed-shopsoftware
Software Engineering
People whose principal professional is
not software, but who develop software
Professional SW developers
Software Developers
80 million end users, mostly
creating information artifacts
2.5 millionprofessionals
Software Education
??