SE Challenges

    • 11 programming trends to watch by Peter Wayner, InfoWorld 2011
      • 1. The JVM is not just for Java anymore
      • 2. JavaScript is not just for JavaScript anymore
      • 3. No code is an island
      • 4. Plantations everywhere
      • 5. Openness retreats
      • 6. Bandwidth is no longer free
      • 7. Energy is no longer free, either
      • 8. Traditional education fades from relevance
      • 9. Accuracy fades as scalability trumps all
      • 10. Real parallelism begins to get practical for all
      • 11. GPUs trump CPUs
  • Top 10 Software Engineering Challenges by Anthony Finkelstein
      • 1. Relating Requirements and Architectures
      • 2. Moving to ‘Evidence-based’ Practice
      • 3. Engineering Scalability
      • 4. Addressing Semantic Divergence
      • 5. Confident Estimation
      • 6. Engineering the Cloud
      • 7. Building ‘Apps’
      • 8. Developing ‘Adaptive’ Systems
      • 9. Reconstructing Governance
      • 10. Rethinking Software Production
    • A Baker’s Dozen: Thirteen Grand Challenges in Software Engineering by Jeff Voas, IEEE IT Pro, March, 2007.
      • 1. Software Quality
      • 2. Return on Investment
      • 3. Process Improvement
      • 4. Metrics and Measurement
      • 5. Standards Confusion
      • 6. Standards Interoperability
      • 7. Legacy Software
      • 8. Testing Stoppage Criteria
      • 9. Interoprability and Composability
      • 10. Operational Profiles
      • 11. Designing In
      • 12. Product Certification
      • 13. Services
    • The Grand Challenges of Software Engineering - A Perspective from the Trenches, by T.S. Mohan
      • 1. Cruising Scale: From birthing centre to hospice: A medical management system that can handle the entire medical system
      • 2. Consistent and uniform programming tools for heterogeneous systems.
      • 3. Validated trust: Verifying tools: Compilers, model checkers, configuration and deployment validators.
      • 4. Dynamic compositionality: A global trusted marketplace for compositional software components and services
      • 5. Simplifying complexity: Automated tools and environments for enhancing non-functional requirements
    • The grand challenge of trusted components by Bertrand Meyer. ICSE 2003 Keynote. Slides
    • The “Grand Challenge” inInformatics: Engineering Software-Intensive Systems by Manfred Broy. IEEE Computer 2006.
    • Grand Challenges in software and software engineering by Grady Booch, 2005
      • Communication
        • Tom Welsh: "How do we bridge the communication gap between business (and government, etc.) people who want all the benefits of IT - NOW, cheaply, and without taking much trouble - and the technical experts who know (or can find out) how to build software that works?"
        • Arisio: "The greatest challenge of software development still is: COMMUNICATION. Communication between our users/clients and us, the developers; comunication between the developers in order to understand and implement and test the user's requirements."
    • Discussion
  • Vision Paper: Remodelling Software Systems – 2020 Grand Challenge for Software Engineeringby Anthony J H Simons and W Michael L Holcombe.
      • Hatching a Phoenix: Reclaiming Success from Software Failure, a challenge to use open source and agile development to build generic versions of failed government software projects.
      • SE Challenge: Entrants will be given only one week in which to design and build, from scratch, a substantial enterprise-level information system.
  • PL Grand Challenges
      • Simon Peyton Jones: Effects
      • Xavier Leroy: Program verification - developing formal methods for real code, not just for abstract models; End-to-end verification; Parallel programming
      • Martin Rinard: "Almost All Software is Over-Engineered" - Reduce perfection to optimize output.
      • Kathryn McKinley: Parallelism and communication
      • Greg Morrisett: concurrency and verification; program the coming world of lots of robots, e.g., bio-programming; gap between PLs and HCI; education
      • Followup
        • Simon Peyton Jones: Visualization tools for understanding behavior of parallel programs
        • Zhong Shao: "What are you doing? What are the burning questions? Are you doing a moonshot?"
        • Simon Peyton Jones: "Making the fabric out of which future civilization will be built"?
        • Xavier Leroy: Secure software; high assurance
        • ???: inter-operability of languages
        • Andrew Myers: what sorts of mechanisms could we be working on to help design programs an order of magnitude bigger than what we have now? (E.g., languges don't help when the number of MODULES in a program gets too big.)
        • Anonymous Comment: how do we design languages help to build software more productively
    • Verification Grand Challenge
      • The Verification Grand Challenge by Jim Woodcock and Richard Banach, FM 2007.
        • 2006 Case Study: mechanical verification of the Mondex Electronic Purse
        • Followup Case Study: NASA verifiable file store
      • Verified Software: A Grand Challenge. Cliff Jones, Peter O’Hearn, Jim Woodcock, IEEE Computer 2006.
      • The Verifying Compiler: A Grand Challenge for Computing Research by Tony Hoare, CC 2003.
        • Challenge: the construction and application of a verifying compiler that guarantees correctnessof a program before running it.
        • Grand challenge criteria
          • Fundamental. It arises from scientific curiosity about the foundation, the nature, and the limits of an entire scientific discipline, or a significant branch of it.
          • Astonishing. It gives scope for engineering ambition to build something useful that was earlier thought impractical, thus turning science fiction to science fact.
          • Testable. It has a clear measure of success or failure at the end of the project; ideally, there should be criteria to assess progress at intermediate stages too
          • Inspiring. It has enthusiastic support from (almost) the entire research community, even those who do not participate in it, and do not benefit from it.
          • Understandable. It is generally comprehensible, and captures the imagination of the general public, as well as the esteem of scientists in other disciplines.
          • Useful. The understanding and knowledge gained in completion of the project bring scientific or other benefits; some of these should be attainable, even if the project as a whole fails in its primary goal.
          • Historical. The prestigious challenges are those which were formulated long ago; without concerted effort, they would be likely to stand for many years to come.
          • International. It has international scope, exploiting the skills and experience of the best research groups in the world. The cost and the prestige of the project is shared among many nations, and the benefits are shared among all.
          • Revolutionary. Success of the project will lead to radical paradigm shift in scientific research or engineering practice. It offers a rare opportunity to break free from the dead hand of legacy.
          • Research-directed. The project can be forwarded by the reasonably well understood methods of academic research. It tackles goals that will not be achieved solely by commercially motivated evolution of existing products.
          • Challenging. It goes beyond what is known initially to be possible, and requires development of understanding, techniques and tools unknown at the start.
          • Feasible. The reasons for previous failure to meet the challenge are well understood and there are good reasons to believe that they can now be overcome.
          • Incremental. It decomposes into identified intermediate research goals, which can be shared among many separate teams over a long time-scale.
          • Co-operative. It calls for planned co-operation among identified research teams and research communities with differing specialized skills.
          • Competitive. It encourages and benefits from competition among individuals and teams pursuing alternative lines of enquiry; there should be clear criteria announced in advance to decide who is winning, or who has won.
          • Effective. Its promulgation changes the attitudes and activities of research scientists and engineers.
          • Risk-managed. The risks of failure are identified, symptoms of failure will be recognized early, and strategies for cancellation or recovery are in place.
          • CS Examples:
            • Prove that P is not equal to NP (open)
            • The Turing test (outstanding)
            • The verifying compiler (abandoned in 1970s)
            • A championship chess program (completed)
            • A GO program at professional standard (too difficult)
            • Automatic translation from Russian to English (failed in 1960s)
  • Submissions to Grand Challenges in Computing Research 2010
  • CRA Conferences on Grand Research Challengesin Computer Science and Engineering
      • Research Visions Tracks
      • Grand Research Challenges in Information Security & Assurance, November 16-19, 2003
        • Final report: Four Grand Challenges in Trustworthy Computing (215 KB PDF)
          • Challenge 1: Eliminate Epidemic Attacks by 2014
          • Challenge 2: Enable Trusted Systems for Important Societal Applications
          • Challenge 3: Develop Accurate Risk Analysis for Cybersecurity
          • Challenge 4: Secure the Ubiquitous Computing Environments of the Future
        • Slides: 961 KB PDF (color)
      • Grand Research Challenges in Computer Science and Engineering, June 23-26, 2002
      • Attendees' Grand Challenge Proposals
      • Schedule and Presentation Slides
        • Briefing at the CRA Conference at Snowbird 2002. (246 KB PDF) (Ed Lazowska, University of Washington)
        • Report (410 KB PDF)
        • Five Challenges
          • Systems you can count on (137 KB PDF)
            • Systems that are reliable, secure, available, predictable, and trouble-free
            • Systems that can be used with confidence in all elements of our global critical infrastructure
            • Systems that enable new services ranging from a currency-less society to 24x7 location-independent personalized healthcare
            • Technical challenges
              • Approaches for building systems as federations of large numbers of heterogeneous units that evolve, accommodate change, and grow
              • Composition of partially-specified units, friend or foe (e.g., combining “open”with “secure” and “reliable”)
              • Software engineering: reduce cost of high-quality development, evolution,and support
              • Human-centered design approaches that “make things seem simple” and reduce “human error”
              • System administration tools that eliminate configuration and upgrade errors
              • Specification techniques for policies that are meaningful to system administrators and all stakeholders
              • Managing names and global name spaces
              • Develop meaningful metrics of system security, stability, etc.
              • System auditing and analysis techniques
              • Broad architectural rethinking
          • A teacher for every learner (24 KB PDF)
          • 911.net (ubiquitous information systems) (21 KB PDF)
          • Augmented cognition (166 KB PDF)
          • Conquering complexity (81 KB PDF)
            • Common Themes
              • 1) Complex organized behavior out of many simple unreliable components
              • 2) Make complex systems simple to the User, Administrator, Designer
            • Common Challenges
              • Federation of a large number of units
              • Units that can change over time
              • Wide and dynamic range of latencies and bandwidths among components (all the way to occasionallydisconnected?)
              • Scaling with ease
            • Common Attributes
              • Self-configuration
                • – The inductive step is free
                • – Emergent behavior
              • Self-Adaptation
                • – Changes in environment (e.g., load, failures)
              • Reusablity
                • – Small changes in function without reengineering
                • – Meta-programming
              • Motherhood and apple pie (robust, secure, stable, …)
        • Other Challenges
          • 1. Technology you can count on
          • 2. Ubiquitous computing (-> 9-1-1.net)
          • 3. Augmented cognition
          • 4. Self-* systems (-> Complexity)
          • 5. A teacher for every learner
          • 6. Gain knowledge from data
          • 7. The Great Society, Version II
          • 8. Computers and health care
          • 9. Affordable, useful services for the poor (-> B24B)
          • 10. Civil and humane information services
          • 11. Simulated reality
          • 12. Parallel / high performance computing
          • 13. Disaster response (-> 9-1-1.net)
          • 14. Management of complexity (-> Complexity)
          • 15. Telepresence / enriched communication
          • 16. Green computing