End User Software Engineering

End User Software Engineering

End user development (EUD) (dt. etwa Endbenutzer-Entwicklung) ist ein Forschungsgebiet innerhalb der Informatik. Es beschäftigt sich mit der Frage, wie es dem Endbenutzer einer Software ermöglicht werden kann, diese zu erweitern und seinen Bedürfnissen anzupassen. Ein typisches Beispiel für EUD ist Makroprogrammierung in Bürosoftware wie Textverarbeitung, Tabellenkalkulation und so weiter.

Inhaltsverzeichnis

Teilgebiete

Je nach Problemstellung und Zielgruppe werden verschiedene Ansätze angewendet, um Endbenutzern die Programmierung zu ermöglichen.

Bei den Grafischen Programmiersprachen entwickelt der Benutzer Programme nicht wie bei den üblichen Programmiersprachen durch die Eingabe eines Textes, sondern er setzt visuelle Elemente zusammen, etwa Blöcke und diese verbindende Linien. Durch diese Darstellung soll der „Quelltext“ leichter zu verstehen sein und somit auch durch Endbenutzer verändert werden können.

Domänenspezifische Sprachen werden nicht wie universell einsetzbare Programmiersprachen auf alle Probleme angewendet, sondern nur auf bestimmte Anwendungsdomänen, zum Beispiel SQL für Datenbankabfragen. Kenner der Domäne müssen daher keine universelle und somit auch komplexe Programmiersprache lernen, sondern können sich auf die für ihre Anwendungsdomäne relevanten Teile beschränken. Die beiden beschriebenen Ansätze können kombiniert werden, so dass es auch Grafische Domänenspezifische Sprachen gibt.

Auch universelle Programmiersprachen sind unterschiedlich schnell zu erlernen, so dass sich bestimmte universelle Programmiersprachen besser für Endbenutzer eignen. Die Entwicklung leicht zu erlernender Sprachen wie Python erlauben auch Endbenutzern einen einfachen Zugang zum Programmieren. Deutlich weiter geht der Ansatz, natürliche Sprache im Sinne einer Programmiersprache zu verwenden. So gibt es Ansätze, bei denen durch Eingabe englischer Sätze interaktiv ein Python-Programm erzeugt wird[1]. Umgekehrt kann das Python-Programm auch in englischer Sprache ausgegeben werden.

Endbenutzer können auch klassische universelle Programmiersprachen wie C verwenden. Ein Endbenutzer braucht hierfür allerdings gute Lehrbücher oder Beispielprogramme, da diese Programmiersprachen mehr Lernaufwand erfordern. Entwicklungsumgebungen für Anfänger unterstützen den Endbenutzer beim Lernen und Programmieren mit erklärenden Hinweisen.

Beim Programming By Example demonstriert der Benutzer eine häufig auszuführende Handlung einige Male. Die Software abstrahiert mit Techniken der Künstlichen Intelligenz auf ein generelles Muster und kann die gezeigte Handlung danach wiederholen und gegebenenfalls sogar auf andere Anwendungsgebiete übertragen. Ein einfaches Beispiel wäre die Aufzeichnung einer Tastenfolge, die später wieder abgerufen werden kann. Es ist allerdings umstritten, ob Programming By Example überhaupt als Programmieren gewertet werden kann, da kein Quelltext analysiert und nicht debuggt werden kann[2]. Durch die Kombination mit Grafischen Programmiersprachen wird versucht, diesen Mangel zu beheben.

Literatur

  • H. Lieberman, F. Paterno, V. Wulf (Hrsg.): End-User Development. In: Human-Computer Interaction Series Vol. 9, Springer, Dordrecht 2006, ISBN 1-4020-4220-5.
  • Bonnie A. Nardi: A Small Matter of Programming: Perspectives on End User Computing, MIT-Press, Cambridge, 2. print 1995, ISBN 0-262-14053-5.

Weblinks

Einzelnachweise

  1. Hugo Liu, Henry Lieberman: Metafor: visualizing stories as code, IUI '05: Proceedings of the 10th international conference on intelligent user interfaces, ACM, New York 2005, S. 305-307
  2. Caitlin Kelleher, Randy Pausch: Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers, ACM Computing Surveys Vol. 37, 2005, S. 84

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • End-User Software Engineering — End user development (EUD) (dt. etwa Endbenutzer Entwicklung) ist ein Forschungsgebiet innerhalb der Informatik. Es beschäftigt sich mit der Frage, wie es dem Endbenutzer einer Software ermöglicht werden kann, diese zu erweitern und seinen… …   Deutsch Wikipedia

  • End-user development — (EUD) is a research topic within the field of computer science, describing activities or techniques that allow people who are not professional developers to create or modify a software artifact. A typical example of EUD is programming to extend… …   Wikipedia

  • Software engineering — (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the… …   Wikipedia

  • End-user computing — (EUC) is a group of approaches to computing that aim at better integrating end users into the computing environment or that attempt to realize the potential for high end computing to perform in a trustworthy manner in problem solving of the… …   Wikipedia

  • End-user (computer science) — The end user is a p concept in software engineering, referring to an abstraction of the group of persons who will ultimately operate a piece of software (i.e. the expected user or target user).This abstraction is meant to be useful in information …   Wikipedia

  • Software engineering professionalism — For many years, software engineering has been trying to be a profession.This was hampered by the common perception that it is merely the application of computer science. The goal of making software engineering into its own profession spurred a… …   Wikipedia

  • Software engineering demographics — There are many software engineers. Canada, the European Union, Japan, and Australia will probably find corresponding numbers of SE practitioners. European Union [http://europa.eu/index en.htm] India There has been a healthy growth in the number… …   Wikipedia

  • Outline of software engineering — See also: Index of software engineering articles The following outline is provided as an overview of and topical guide to software engineering: Software engineering – application of a systematic, disciplined, quantifiable approach to the… …   Wikipedia

  • Computer-aided software engineering — Example of a CASE tool. Computer aided software engineering (CASE) is the scientific application of a set of tools and methods to a software system which is meant to result in high quality, defect free, and maintainable software products.[1] It… …   Wikipedia

  • Component-based software engineering — A simple example of two components expressed in UML 2.0. The checkout component, responsible for facilitating the customer s order, requires the card processing component to charge the customer s credit/debit card (functionality that the latter… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”