10 OPEN CHALLENGES IN SOFTWARE ENGINEERING

6m ago
11 Views
0 Downloads
1.52 MB
14 Pages
Last View : Today
Last Download : n/a
Upload by : Raelyn Goode
Share:
Transcription

24/02/2011Computer Science10 OPEN CHALLENGES INSOFTWARE ENGINEERINGAnthony Finkelstein1

24/02/2011Brief outline of talk The Discipline of Software Engineering Sustained relevance of ‘big agenda’Substantial scientific progress but (perhaps)receding impact on practiceSignificant advances in some areas Testing Automatedverification (model-checking) (largely outstripping capacity to absorb innovation)2

24/02/2011The Discipline of Software Engineering Uncertain directions in other areas Softwarearchitecture Software design Software requirements Difficulties in making progress in some areas Softwaredevelopment tools ‘Methodologies’ (modelling and process combos) Middleware Grounds for optimismChallenge I – sketch Move to an ‘evidence-based’ practice cf medicineExisting practice Evidence-free Anecdotal Quasi-evidence-based3

24/02/2011Challenge I – tentative approach Review ‘classic’ workUnderpin work with clear hypothesesOpenly encourage ‘reproducibility’studiesReorganise research efforts around a‘translational pipeline’Restructure software engineeringeducation to reflect an evidencebased approachEngage with the m/index.phpChallenge II – sketch Making ‘twin peaks’ more than a pictureWeaving together requirements and architecturesIEEE Computer, Vol. 34, No. 3. (2001), pp. 115-119.by B. Nuseibeh4

24/02/2011Challenge II – tentative approach ‘Non-functional properties’ drive architectures(perhaps)Map the relationships between these properties andarchitectural stylesInsights from architectural evolutionChallenge III – sketch Engineering scalability ‘Internet-scale’services Handling large and rapid variations in the demand forresources Existing practice Somehigh level patterns for limited classes ofapplication Resource profligacy Suck it and see (dimension by dimension)5

24/02/2011Challenge III – tentative approach Large-scale testbedsScaling ‘in the wild’ Surmountingthedata challenge ArchitecturalbreakdownsDynamic systemsmodelsChallenge IV - sketch Convergence of web standards and softwareengineering standardsExisting practice Fundamentallyseparate worlds with OMG and W3Cmoving in different incompatible directions Wasteful of effort and of technical opportunity6

24/02/2011Challenge IV – tentative approach Stop playing at the periphery and pull back tofundamental requirements, a fudge probably willnot workDevise and test shared schemesIdentify quick wins Forexample smart semantic tagging of softwareartefacts Start the ‘hard grind’ of engagement withstandards bodiesChallenge V – sketch Resource estimation Existing practice We are unable to reliably predict the cost/effortrequired to build a system. We may be fortunate andhave built a very similar system before. FunctionPoints are precious little assistance. ‘JellyBeans’ only work for small systems, relatively ‘late’ inthe process.7

24/02/2011Agile MontageChallenge V – tentative approach Nothing even on the horizon here! Perhaps machine learning has a part to playWe are probably going to have to: Rethinksoftware economics Makingmoney a ‘first class object’ in softwareengineering Geta much better handle on ‘programmerproductivity’ Provide an appropriate data-sharing infrastructure8

24/02/2011Challenge VI – sketch New models around SaaS Existing practice Weknow how to build SaaS (sort of, see III) but wedon’t know how to: buyit manage QoS achieve interoperabilityChallenge VI – tentative approach Stop ‘wasting time’ with fine grained softwareservices (wake up and smell the cocoa)Enterprise mash-upsRequirements methods based on balancingmutability‘Security in the cloud’‘Walk away’ methods9

24/02/2011Challenge VII – sketch The apotheosis of ‘apps’Existing practice Channeldelivery Highly-tuned, device-specificinterfaces across to serviceswith ‘sync’ to clients Because a viable paymentmodel exists Challenge VII – tentative approach Requirements engineering for mass-marketsNew types of ‘product-family’ engineeringApp Stores SMApp managementApp assembly10

24/02/2011Challenge VIII – sketch Development of emerging classes of ‘adaptive’systemExisting practice Problemswith systems that must adapt to context Problems with systems embedding significant COTS/Community Sourced independently evolving components Problems with systems that involve user scripting and‘plug-ability’Challenge VIII – tentative approach Moving reflection from being a programminglanguage level mechanism to software systems thatcan ‘account for themselves’ – [email protected] Canreflect their requirements and (through monitoring)the extent to which those requirements are being satisfied11

24/02/2011Challenge IX – sketch “History repeats itself, first as tragedy, second asfarce” Karl MarxExisting practice Andthird, and fourth, and See CHAOS reports passimChallenge IX – tentative approach Mismatches at the boundaries between business andsoftware engineering Governance12

24/02/2011Challenge X – sketch Addressing complex inter-product and inter-supplierdependenciesExisting practice Noneto ad-hocChallenge X – tentative approach Rethinking software productionFrom garage ‘design and make’ to Supplychain Software ecosystem13

24/02/2011And by way of an inadequate conclusionTwo Free Challenges (for Oxford) Beyond software engineering Physiome, energy and sustainability models require large composite heterogeneous models (& meta-models)multiple stakeholderssubject to collaborative construction and rapid evolutionprone to errorAnd by way of an inadequate conclusionTwo Free Challenges (for Oxford) Bringing automated verification to softwareengineering practice and making the kind of breakthrough for theorem provingtechnology that has made model checking a practical realityhttp://www.toothpastefordinner.com14

4 Challenge I – tentative approach . Weaving together requirements and architectures IEEE Computer, Vol. 34, No. 3. (2001), pp. 115-119. by B. Nuseibeh . 24/02/2011 5 Challenge II – tentative