60 likes | 205 Views
Position Statement – Education in Automated Software Engineering. Professor John Grundy Dept. Electrical and Computer Engineering and Dept. Computer Science University of Auckland, New Zealand. What is the approach of our CompSci/SE Education?.
E N D
Position Statement –Education in Automated Software Engineering Professor John Grundy Dept. Electrical and Computer Engineering and Dept. Computer Science University of Auckland, New Zealand
What is the approach of our CompSci/SE Education? • Engineering is about building models of products/processes (in SE some happen to be “executable” – like code…) • Disciplined application of formal, semi-formal, and even informal techniques/technologies are needed in order to develop the “right” models • Mix (& balance) of theory, practice, experience • Obtain deep understanding coupled with practical skills in applying CompSci/SoftEng approaches • Critical (self-)reflection; continual enhancement of knowledge and skills; quality/cost/timeliness focus • Educating tomorrow’s practitioner today – what’s the world of SE going to be like in 2; 5; 10+ years time?? ASE05 Panel on ASE Education (c) John Grundy 2005
Trends • Recent SE trends likely to continue for some time…: • Model-driven development • Integrated IDEs (VisualStudio, Eclipse …) • Agile (“lightweight”) methods • Service-oriented architectures • Aspect-oriented and other cross-cutting techniques • Adaptive, autonomous, agent-based, “intelligent” systems • Reliance on teamwork/shared artefacts & supporting methods and tools • Ever-increasing quality demands – usability, reliability, scalability, security, trustability, … • Ever-increasing user base & demands on software – ubiquitous computing, safety-critical systems • We have to educate/train students to be able to build/do these things… ASE05 Panel on ASE Education (c) John Grundy 2005
What is Automated Software Engineering? • Generative – try and generate code/configurations/other models from high-level, abstract descriptions (models) [“models” = any representation of software at some level of abstraction - logics, UML, MOF, BPML, XSLT, UIs, DBs, code,…] • Component/part/service-based – “build applications from bits” approach • Ultimately “autonomous agents” composition and emergent *systems* (not just software!) • Adaptive – components/agents might discover environment and adapt to the circumstances they find themselves in • Dynamic – ideally can do the above at run-time while the software is being used • Formalisms are necessary – specifications we can reason with; generate code from; verify vs validate models/code ASE05 Panel on ASE Education (c) John Grundy 2005
Do we need “Automated Software Engineering”? • Of course we do! (We need an excuse to hold more ASE conferences after all…) • In many SE application domains we now couldn’t get by without it… • This trend is almost certain to continue, so… • Instead of “How should we educate young Computer Scientists/Software Engineers in the field of Automated Software Engineering?”, perhaps we should be asking ourselves “How much should/need we educate them in NON-automated SE techniques???” ASE05 Panel on ASE Education (c) John Grundy 2005
ASE Education • Undergraduate SE/CS students need exposure to: • Developing models of systems & software • Verifying model properties; fixing wrong models • Generating systems from models – statically and dynamically • Extending generated parts – statically and dynamically • Composing parts (in sensible ways) – statically & dynamically • Adaptive, dynamic, service-oriented architectures • Automated testing techniques – proactive & reactive • Practical, realistic applications using these techniques… (Mike, can I have the Mars buggy code please?) • BUT: • How do they learn the “right time” to use these? • How do they know if ASE tools really work?! • And how do they fix them/extend tools when they don’t? • Do they understand that there is no silver bullet…? ASE05 Panel on ASE Education (c) John Grundy 2005