150 likes | 299 Views
End-User Software Engineering (EUSE) extends beyond traditional End-User Programming (EUP) to encompass the design, evolution, and maintenance of systems as well as a deliberate process for creating software with expressiveness and understandability. This field addresses the need for sufficient dependability, usability, security, and privacy while navigating the tension between opportunism and systematic planning. The research highlights new methods for end users to tackle software concerns intelligently, aiming to enhance their capabilities in software development and maintenance.
E N D
End User Software Engineering Mary Shaw Carnegie Mellon University
EUSE goes beyond EUP • EUP includes “programming-like” activities, such as programming, debugging, tailoring via parameters, simple scripting • EUSE goes beyond this … • Design and composition of systems from elements • Evolution, development, maintenance • Deliberate process for creating software • Expressiveness and understandability • Sufficient dependability for current need • Concern for system properties – usability, dependability, security, privacy • Note the process tension between “opportunisim” and systematic planning
EUs are not SEs • EUs do not have rich and robust mental models of their computing systems • they fail to do backups, misunderstand storage models, execute malware, and innocently engage in other risky behavior • EUSE is not “fixing the users” • EUSE must be about developing ways for EUs themselves to address traditional SE concerns
Papers that addressed (some of) these issues Brandt Brandt &al, Opportunistic Programming Costabile &al, End Users as Unwitting Developers Scaffidi &al, Topes for Validating and Reformatting Data Stoitsev &al, EUD for Enterprise Process / Info Mgt Wong &al, Patterns in Mashups Umarji &al, Teaching SE to End-users Coutaz, EUP and Intrinsic Complexity of … Shani &al, SW Design / UML / Domain Specific Lang Doerner &al, EUD: Challenges in SOA Sestoft, Function Spreadsheets Praehofer, EUP Environments in Automation Domain El-Gayyar, User-oriented Web Services Composition Constabile Scaffidi Stoitsev Wong Umarji Coutaz Shani Doerner Sestoft Praehofer El-Geyyar
Composition of systems from elements • Models for composition of elements • Use patterns to guide mashups [Wong] • Managing service compositions with many component proprietors [Coutaz] • Package new capability as plugins or extensions for existing systems [Scaffidi, Stoitsev, Sestoff] • Finding resources • Provide hierarchy of repositories from personal to local to global [Scaffidi] • Finding services [Doerner] Scaffidi Stoitsev Wong Coutaz Doerner Sestoft
Models for composition of elements • Wong, Patterns in Mashups • “Mashups” combine information from multiple web sites in new ways • Survey found several types: aggregation; alternate UI or specialized use; personalization; focused view of data; real-time monitoring • Large comparative table shows differences • Coutaz, EUP and Intrinsic Complexity of … • Model based on molecular chemistry shows richness of mixed physical-digital network artifacts • elements are digital or physical atoms • composition is based on, e.g., valence and affinity • Proposal: Base composition of services on this model Wong Coutaz
Packaging new capability as plug-ins, etc • Scaffidi&al,TopestoValidate,ReformatData • Newtechniqueformovingdataamongapplications • Integrates technique with existing applications by packaging it as plugins of various kinds • Stoitsev &al, EUD for Enterprise Proc / Info • New technique for EU tailoring of process models • Represented as hierarchical to-do lists, implemented as extensions to Outlook • Sestoft,ImplementingFunctionSpreadsheets • Added abstraction capability • Realized as a special kind of sheet Scaffidi Stoitsev Sestoft
Evolution, development, maintenance • Data sharing: interoperability across apps • Data from multiple applications must be combined [Stoitsev, Wong] • But data is often hard to share [Scaffidi, Doerner] • Evolution • Evolution includes dynamic changes [Doerner] • EU software evolves continuously [Costabile] • EUs need an evolutionary perspective [Umarji] • Tailoring • Individualized variants [Scaffidi, Stoitsev] • EUs tailor businesses processes [Stoitsev, Doerner] • Domain-specific tailoring for critical applications [Praehofer] • Personalizing workflows [el-Gayyar] Constabile Scaffidi Stoitsev Wong Umarji Doerner Praehofer El-Geyyar
Data Sharing Interoperability Problems • Scaffidi&al,TopestoValidate,ReformatData • Many kinds of data are carried in short strings with many formats: name, date, phone, address • Applications assume different format, and checking is binary, no “maybe” or special cases • Topes offer format conversion, validation in [0..1] • Doerner, EU Development: SOA Challenges • In SOA, problem for EU is gathering all the data for a decision from various sources, DBs • EUs want to export to Excel, but SAP can’t do this • Also can’t exchange data between applications Scaffidi Doerner
Evolution • Doerner, EU Development: SOA Challenges • EUs develop and evolve their business processes • They may not have enough info about process • Major challenge is adaptation at runtime • Costabile, EUs as Unwitting Developers • EUs often “program” without being aware of it • Their software and adaptations keep evolving • Solutions must extend through life cycle • Case study shows structured planning for this Constabile Doerner
Deliberate process for creating software Brandt • Shallow learning curve • People need immediate gratification [Brandt] • Gentle slope [Doerner, Stoitsev] • Opportunistic programming [Brandt] • Need rules and process, but not the same as for production SW [Brandt] • EU code is impermanent [Brandt] • Spectrum of users [Costabile] • EUs should know approaches to design and development, QA practices, evolutionary perspective, documentation, reuse [Umarji] • Some isolated Agile activities Constabile Stoitsev Umarji Doerner
Characteristics of EUs Brandt • Brandt: Opportunistic Programming • Opportunistic software: nontrivial software, little upfront planning, ease and speed of development prioritized over robustness and maintainability • Not just sloppy programming, but good process for prototyping, ideation, discovery • Build from scratch using high-level tools • Add new functionality via copy-and-paste • Iterate rapidly • Consider code impermanent • Face unique debugging challenges • Costabile, EUs as Unwitting Developers • EUs’ skills fall along a spectrum from EU to prof • Less-skilled often start with tailoring • Provide life cycle support, not just to release Constabile
Educating EUs • Umarji &al, Teaching SE to EUs • Surveyed bioinformatics curricula and recommended things that bioinformaticians should know about SE • Recommendations • Approaches to software design and development • Strong quality assurance (QA) practices • Evolutionary perspective • Documentation • Reuse Umarji
Expressiveness and understandability Brandt • Visual interfaces to tools • Define data formats with structured dialog and examples [Scaffidi] • Graphical composition [Stoitsev, El-Gayyar] • Visual models [Doerner] • Domain Oriented Visual Lang [Costabile] • Functional interface to visual tools to allow abstraction [Sestoft] • Chemical molecule metaphor for composition [Coutaz] • Use UML to create domain-specific languages [Shani] • People use informal cues to gauge quality of information [Brandt] Constabile Scaffidi Stoitsev Coutaz Shani Doerner Sestoft El-Geyyar
Questions for discussion • What are, and how can we resolve, the issues in the process tension between • “opportunism” / gentle learning curve / instant gratification / • systematic process / consistency / long-term usefulness • How can an EU manage evolution without a systematic process? Can we have a process with a shallow learning curve? • What are the potentials and problems for the technique of packaging a new capability variously as plugin, extension, macro in order to integrate it with various systems?