Seminar „Modellierung im Software- und System

Transcription

Seminar „Modellierung im Software- und System
Seminar „Modellierung im Software- und
System-Engineering“
Maximilian Junker, Klaus Becker, Alarico Campetelli, Jonas Eckhardt, Georg Hackenberg,
Maximilian Irlbeck, Jakob Mund, Andreas Vogelsang
Beschreibung
Modelle sind Hilfsmittel, die sowohl im alltäglichen Leben aber speziell auch in der Wissenschaft und
der Ingenieursarbeit genutzt werden. Sie stehen dabei stellvertretend für vorhandene oder in der
Zukunft existierende Dinge oder Phänomene in der realen Welt. Modelle helfen dabei, von
komplexen Sachverhalten zu abstrahieren und diese auf das für einen bestimmten Zweck
Wesentliche zu reduzieren. In vielen Fällen erleichtern Modelle damit das Nachdenken und die
Kommunikation über solche Sachverhalte bzw. ermöglichen sie erst. Auch im Software- und SystemEngineering werden Modelle intensiv genutzt. Sie werden hier nicht nur zur Beschreibung der
Funktionalität der zu erstellenden Software eingesetzt, sondern auch zur Darstellung der
Anforderungen, der Anwendungsdomäne, der Systemarchitektur und vielen weiteren Aspekten. Für
viele Systemtypen existieren außerdem spezialisierte Typen von Modellen. Vielen Modellen im
Software- und System-Engineering liegen formale, mathematische Theorien zu Grunde, die die
Bedeutung der Modelle festlegt und es damit ermöglicht, sie präzisen Analysen zu unterziehen, die
teilweise sogar automatisch ablaufen können. Dadurch lassen sich die Konsequenzen aus der
Entwicklung eines Systems besser einschätzen. Durch konsequente Nutzung von Modellen, wie sie
das Paradigma der modellbasierten Entwicklung propagiert, verspricht man sich letztlich eine
effizientere Entwicklung von besseren Systemen, die man genauer versteht.
In diesem Seminar soll Software- und Systementwicklung unter dem Blickwinkel der Modellierung
betrachtet werden. Es soll untersucht werden, wie ganz verschiedene Aspekte des Software- und
System-Engineering mit Modellen dargestellt werden können, welche Anforderungen die
entsprechenden Modellierungstechniken dabei erfüllen müssen und welche konkreten Umsetzungen
und Werkzeuge jeweils existieren.
Themen
1.
Modellierungstheorien
In diesem Thema sollen die verschiedenen grundsätzlichen Modellierungsparadigmen und
Spezifikationstechniken, die einer konkreten Modellierungssprache zu Grunde liegen können
beleuchtet werden. Fragestellungen, die hier eine Rolle spielen sind u.a. die Darstellung von Zeit und
Nebenläufigkeit, die Modellierung des Verhaltens (Datenfluss- oder Kontrollflussorientierung) und
die Darstellung von Daten.
Einstiegsliteratur:
Broy, M. (2003), Multi-view Modeling of Software Systems, in Bernhard Aichernig & Tom Maibaum,
ed., 'Formal Methods at the Crossroads. From Panacea to Foundational Support', Springer Berlin
Heidelberg, pp. 207-225.
Campetelli, A.; Cengarle, M. V.; Gaponova, I.; Harhurin, A.; Ratiu, D. & Thyssen, J. (2010),
'Specification Techniques'
Lee, E. A. & Sangiovanni-Vincentelli, A. (1998), 'A framework for comparing models of computation',
IEEE Transactions on computer-aided design of integrated circuits and systems 17(12), 1217--1229.
Ludewig, J. (2003), 'Models in software engineering–an introduction', Software and Systems
Modeling 2(1), 5--14.
2.
Modellierung von Anforderungen
In der Praxis werden Anforderungen heutzutage immer noch überwiegend informell und
unstrukturiert dokumentiert. Das führt dazu, oftmals erst beim Akzeptanztest festgestellt werden
kann, ob die Anforderungen korrekt aufgenommen und umgesetzt wurden. Ansätze zur
modellbasierten Beschreibung von Anforderungen versuchen diesem Problem entgegenzuwirken
indem sie Anforderungen als Modelle ausdrücken.
Einstiegsliteratur:
Cheng, B. H. & Atlee, J. M. (2007), Research directions in requirements engineering, in 'Future of
Software Engineering', pp. 285--303.
Heitmeyer, C.; Archer, M.; Bharadwaj, R. & Jeffords, R. (2005), 'Tools for Constructing Requirements
Specification: The SCR Toolset at the Age of Ten', Technical report, DTIC Document.
Nuseibeh, B. & Easterbrook, S. (2000), Requirements engineering: a roadmap, in 'Proceedings of the
Conference on the Future of Software Engineering', pp. 35--46.
OMG, 'OMG Systems Modeling Language (OMG SysML™) Version 1.2'.
Ross, D. T. & Schoman Jr, K. E. (1977), 'Structured analysis for requirements definition', Software
Engineering, IEEE Transactions on(1), 6--15.
dos Santos Soares, M. & Vrancken, J. (2007), Requirements specification and modeling through
SysML, in 'Systems, Man and Cybernetics, 2007. ISIC. IEEE International Conference on', pp. 1735-1740.
Soares, M. d. S. & Vrancken, J. (2008), 'Model-driven user requirements specification using SysML',
Journal of software 3(6), 57--68.
Van Lamsweerde, A. (2001), Goal-oriented requirements engineering: A guided tour, in
'Requirements Engineering, 2001. Proceedings. Fifth IEEE International Symposium on', pp. 249--262.
3.
Geschäftsprozessmodellierung
Bei der Geschäftsprozessmodellierung (engl: Business Process Modeling) geht es um die modelhafte
Darstellung von Geschäftsprozessen in einem Unternehmen mit dem Ziel des Prozessanalyse
und -verbesserung. Neben den eigentlichen Abläufen werden meist auch beteiligte
Organisationsstrukturen sowie Daten modelliert. Sofern geeignete Modellierungstheorien genutzt
werden, können die gewonnen Modelle auch im Software-Engineering verwendet werden.
Einstiegsliteratur:
Allweyer, T. (2009), BPMN 2.0-Business Process Model and Notation, Bod.
Giaglis, G. M. (2001), 'A taxonomy of business process modeling and information systems modeling
techniques', International Journal of Flexible Manufacturing Systems 13(2), 209--228.
Muehlen, M. & Recker, J. (2008), How much language is enough? Theoretical and practical use of the
business process modeling notation, in 'Advanced Information Systems Engineering', pp. 465--479.
Scheer, A. (2000), ARIS-business process modeling, Springer.
4.
Domänenmodellierung
Häufig ist es hilfreich oder sogar notwendig die Domäne, für die ein System entworfen wird, zu
modellieren. In einem Domänenmodell werden die Konzepte und Entitäten, die für das zu
entwickelnde System eine Rolle spielen, aufgeführt und in Beziehung zueinander gesetzt.
Domänenmodelle können in der weiteren Entwicklung verwendet werden, beispielsweise als
Datenmodelle, zur Transformation in Verhaltensmodelle oder zur Generierung von Programmcode.
Einstiegsliteratur:
Baader, F.; Calvanese, D.; McGuinness, D.; Nardi, D. & Patel-Schneider, P. (2003), The description
logic handbook: Theory, implementation and applications, Cambridge university press.
Fowler, M. (2010), Domain-specific languages, Addison-Wesley Professional.
France, R. & Rumpe, B. (2007), Model-driven development of complex software: A research
roadmap, in '2007 Future of Software Engineering', pp. 37--54.
France, R. & Rumpe, B. (2005), 'Domain specific modeling', Software and Systems Modeling 4(1), 1-3.
Kelly, S. & Tolvanen, J.-P. (2008), Domain-specific modeling: enabling full code generation, Wiley-IEEE
Computer Society Press.
Motik, B.; Patel-Schneider, P. F.; Parsia, B.; Bock, C.; Fokoue, A.; Haase, P.; Hoekstra, R.; Horrocks, I.;
Ruttenberg, A.; Sattler, U. & others (2009), 'Owl 2 web ontology language: Structural specification
and functional-style syntax', W3C recommendation 27, 17.
Walter, T.; Parreiras, F. S. & Staab, S. (2012), 'An ontology-based framework for domain-specific
modeling', Software and Systems Modeling, 1--26.
5.
Modellierung von Architektur
Architektur ist eines der zentralen Artefakte im Software Engineering. Architekturen enthalten
sowohl Informationen über die logische als auch funktionale Struktur eines Systems. Außerdem
beinhalten sie Informationen über die Kommunikation zwischen Komponenten, deren Schnittstellen
und Verhalten. Auch die Abbildung auf die technische Infrastruktur (Deployment) ist ein Aspekt von
Architektur. Modellierungssprachen und -frameworks sind enorm wichtig für die Modellierung von
Softwaresystemen. Sie helfen dabei verschiedene Sichten und Aspekte der Architektur konsistent zu
modellieren.
Einstiegsliteratur:
Bass, L.; Clements, P. & Kazman, R. (2003), Software architecture in practice, Addison-Wesley
Professional.
Clements, P.; Garlan, D.; Little, R.; Nord, R. & Stafford, J. (2003), Documenting software architectures:
views and beyond, in 'Software Engineering, 2003. Proceedings. 25th International Conference on',
pp. 740--741.
Cuenot, P.; Frey, P.; Johansson, R.; Lцnn, H.; Papadopoulos, Y.; Reiser, M.-O.; Sandberg, A.; Servat, D.;
Tavakoli Kolagari, R.; Tцrngren, M. & others (2011), '11 The EAST-ADL Architecture Description
Language for Automotive Embedded Software', Model-Based Engineering of Embedded Real-Time
Systems, 297--307.
Garlan, D.; Monroe, R. & Wile, D. (2010), Acme: an architecture description interchange language, in
'CASCON First Decade High Impact Papers', pp. 159--173.
Medvidovic, N. & Taylor, R. N. (2000), 'A classification and comparison framework for software
architecture description languages', Software Engineering, IEEE Transactions on 26(1), 70--93.
Taylor, R. N.; Medvidovic, N. & Dashofy, E. M. (2009), Software architecture: foundations, theory, and
practice, Wiley Publishing.
6.
Modellierung von Variabilität
Die Massenhafte Entwicklung von ähnlichen Systemen hat dazu geführt, dass eine Reihe von
Modelltypen vorgeschlagen wurde, die die Gemeinsamkeiten und Unterschiede zwischen
Systemfamilien darstellen sollen. Die Hoffnung ist über diese Modelle die Variantenvielfalt in den
Griff zu bekommen und die Wiederverwendung bestehender Teile möglichst hoch zu halten.
Variabilität spielt sich jedoch auf vielen Ebenen ab, von der Variabilität in den Anforderungen über
Variabilität in der Architektur des Systems bis hin zu Variationspunkten im Code.
Einstiegsliteratur:
Berger, T.; Rublack, R.; Nair, D.; Atlee, J. M.; Becker, M.; Czarnecki, K. & Wasowski, A. (2013), A survey
of variability modeling in industrial practice, in 'Proceedings of the Seventh International Workshop
on Variability Modelling of Software-intensive Systems', pp. 7.
Czarnecki, K.; Grünbacher, P.; Rabiser, R.; Schmid, K. & Wasowski, A. (2012), Cool features and tough
decisions: A comparison of variability modeling approaches, in 'Proceedings of the Sixth International
Workshop on Variability Modeling of Software-Intensive Systems', pp. 173--182.
Jaring, M. & Bosch, J. (2002), 'Representing variability in software product lines: A case study',
Software Product Lines, 219--245.
Kang, K. C.; Cohen, S. G.; Hess, J. A.; Novak, W. E. & Peterson, A. S. (1990), 'Feature-oriented domain
analysis (FODA) feasibility study', Technical report, DTIC Document.
Kang, K. C.; Kim, S.; Lee, J.; Kim, K.; Shin, E. & Huh, M. (1998), 'FORM: A feature-; oriented reuse
method with domain-; specific reference architectures', Annals of Software Engineering 5(1), 143-168.
Reiser, M.-O. & Weber, M. (2006), Managing highly complex product families with multi-level feature
trees, in 'Requirements Engineering, 14th IEEE International Conference', pp. 149--158.
Schobbens, P.-Y.; Heymans, P. & Trigaux, J.-C. (2006), Feature diagrams: A survey and a formal
semantics, in 'Requirements Engineering, 14th IEEE International Conference', pp. 139--148.
Van Gurp, J.; Bosch, J. & Svahnberg, M. (2001), On the notion of variability in software product lines,
in 'Software Architecture, 2001. Proceedings. Working IEEE/IFIP Conference on', pp. 45--54.
7.
Modeling Mode-Management in AADL, AUTOSAR and MARTE, a
comparison
Durch die Modellierung von Modes lassen sich für ein System verschiedene Ausprägungen (z.B.
Strukturen oder Verhalten) beschreiben, zwischen denen zur Laufzeit gewechselt werden kann. Für
die Transformationen zwischen Modes müssen dazu Eigenschaften definiert werden, die beschreiben
wann eine solche Mode-Transition durchgeführt werden darf. In diesem Thema soll ein Vergleich der
Modellierungskonzepte bzgl. Modes in den Spezifikationen von AADL, AUTOSAR und MARTE
erarbeitet werden. Durch Modellierung eines Beispiels soll dieses zudem evaluiert werden. Dabei
liegt der Fokus auf Ausdrucksmächtigkeit der Metamodelle, Einschränkungen, statische
Analysierbarkeit und Handhabung der Modes zur Laufzeit.
Einstiegsliteratur:
AUTOSAR (2011), 'Guide to Modemanagement'.
AUTOSAR (2011), 'Requirements on Mode Management'.
Bertrand, D.; Déplanche, A.-M.; Faucou, S. & Roux, O. H. (2008), A study of the aadl mode change
protocol, in 'Engineering of Complex Computer Systems, 2008. ICECCS 2008. 13th IEEE International
Conference on', pp. 288--293.
Faraut, G.; Pietrac, L. & Niel, E. (2008), Identification of incompatible states in mode switching, in
'Emerging Technologies and Factory Automation, 2008. ETFA 2008. IEEE International Conference
on', pp. 121--128.
Faraut, G.; Piétrac, L. & Niel, E. (2009), 'Formal approach to multimodal control design: Application to
mode switching', Industrial Informatics, IEEE Transactions on 5(4), 443--453.
Hirsch, D.; Kramer, J.; Magee, J. & Uchitel, S. (2006), 'Modes for software architectures', Software
Architecture, 113--126.
OMG (2011), 'UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems'.
8.
Modelle für Sicherheit und Zuverlässigkeit
In zahlreichen Systemen, wie beispielsweise im Automobil- und Avionikbereich ist es notwendig, die
Sicherheit und Zuverlässigkeit der entwickelten Systeme zu überprüfen. Da solche Untersuchungen
sehr komplex werden können, wurden spezifische Modelle entwickelt um die Analysen zu
unterstützen. Bei Modellen dieser Art wird häufig abgebildet, wie Fehler(-kombinationen) zum
Ausfall einer Funktionalität oder eines Teilsystems führen können.
Einstiegsliteratur:
Abd-Allah, A. (1997), 'Extending reliability block diagrams to software architectures', System 97(80),
93.
Bozzano, M.; Cimatti, A.; Katoen, J.-P.; Nguyen, V.; Noll, T. & Roveri, M. (2009), 'The COMPASS
approach: Correctness, modelling and performability of aerospace systems', Computer Safety,
Reliability, and Security, 173--186.
Dugan, J. B.; Bavuso, S. J. & Boyd, M. A. (1992), 'Dynamic fault-tree models for fault-tolerant
computer systems', Reliability, IEEE Transactions on 41(3), 363--377.
Höfig, K.; Trapp, M.; Zimmer, B. & Liggesmeyer, P. (2012), Modeling Quality Aspects: Safety, in Klaus
Pohl; Harald Hönninger; Reinhold Achatz & Manfred Broy, ed., 'Model-Based Engineering of
Embedded Systems', Springer Berlin Heidelberg, , pp. 107-118.
Joshi, A. & Heimdahl, M. (2005), 'Model-based safety analysis of Simulink models using SCADE design
verifier', Computer Safety, Reliability, and Security, 122--135.
Kaiser, B.; Gramlich, C. & Fцrster, M. (2007), 'State/event fault trees—A safety analysis model for
software-controlled systems', Reliability Engineering & System Safety 92(11), 1521--1537.
Leveson, N. G. (1986), 'Software safety: Why, what, and how', ACM Computing Surveys (CSUR) 18(2),
125--163.
Leveson, N. G. & Harvey, P. R. (1983), 'Analyzing software safety', Software Engineering, IEEE
Transactions on(5), 569--579.
Papadopoulos, Y. & Maruhn, M. (2001), Model-based synthesis of fault trees from matlab-simulink
models, in 'Dependable Systems and Networks, 2001. DSN 2001. International Conference on', pp.
77--82.
9.
Modellierung von Mechatronik- und Regelsystemen
Bei der Entwicklung von Mechatronik- und Regelsysteme sind typischerweise mehrere Fachdisziplinen involviert, häufig Maschinenbau, Elektrotechnik und Informatik. Mechatronische Systeme
werden oft in einem sicherheitskritischen Umfeld eingesetzt und sollen effizient und zuverlässig sein.
Dies bringt besondere Herausforderungen bzgl. Modellierung und den verwendeten
Abstraktionstechniken mit sich. Auch für Simulation, Implementierungstechniken und Unterstützung
von Verteilung und Vernetzung sind besondere Techniken nötig.
Einstiegsliteratur:
Baheti, R. & Gill, H. (2011), 'Cyber-physical systems', The Impact of Control Technology, 161--166.
Broy, M. (2010), 'Cyber-Physical Systems—Wissenschaftliche Herausforderungen bei der
Entwicklung', Cyber-Physical Systems, 17--31.
Derler, P.; Lee, E. A. & Vincentelli, A. (2012), 'Modeling Cyber–Physical Systems', Proceedings of the
IEEE 100(1), 13--28.
Lee, E. A. & Seshia, S. A. (2011), Introduction to Embedded Systems: A Cyber-Physical Systems
Approach, Lee & Seshia.
10. Modellierung von Realzeitsystemen
Realzeitsysteme sind Systeme, welche nach einem fest definierten Zeitintervall eine Antwort
garantieren sollen. Das Design eines Real-Time Systems muss die Echtzeitanforderungen des Systems
erfüllen, damit soll die Systemleistung richtig und zeitgerecht ist. Eine Herausforderung dabei ist die
Modellierung, Integration und Kontrolle in einen bestimmten technischen Kontext was zu
besonderen Herausforderungen bei der Entwicklung führt.
Einstiegsliteratur:
Herzner, W.; Schlick, R.; Schlager, M.; Leiner, B.; Huber, B.; Balogh, A.; Csertan, G.; LeGuennec, A.;
LeSergent, T.; Suri, N. & others (2007), Model-based development of distributed embedded real-time
systems with the decos tool-chain, in 'proc. of 2007 SAE AeroTech Congress & Exhibition'.
Obermaisser, R.; El-Salloum, C.; Huber, B. & Kopetz, H. (2007), 'Modeling and verification of
distributed real-time systems using periodic finite state machines', Computer Systems Science and
Engineering 22(6), 333.
Obermaisser, R.; El-Salloum, C.; Huber, B. & Kopetz, H. (2007), 'Modeling and verification of
distributed real-time systems using periodic finite state machines', Computer Systems Science and
Engineering 22(6), 333.
Ostroff, J. S. (1992), 'Formal methods for the specification and design of real-time safety critical
systems', Journal of Systems and Software 18(1), 33--60.
11. Systemmodellierungsframeworks
Bei der modellbasierten Entwicklung entsteht im Laufe der Systementwicklung eine Reihe von
verschiedenen Modellen, die unterschiedliche Zwecke Erfüllen. Es existieren Modelle für
Anforderungen, System Design, Hardware Deployment, Sicherheitsüberlegungen, Variabilität,
Echtzeiteigenschaften und viele mehr. In der Praxis stehen diese Modelle oft nebeneinander und
haben keinen festen Bezug zueinander. Systemmodellierungsframeworks haben das Ziel ein
Referenzmodell für die Entwicklung eines Systems zu definieren, indem eine Reihe von Modelltypen
und deren Beziehungen zueinander definiert werden. Um die Komplexität großer Systeme zu
beherrschen definieren diese Frameworks oft auch zusätzliche Konzepte wie Abstraktionsebenen
und Sichten.
Einstiegsliteratur:
Broy, M.; Feilkas, M.; Grünbauer, J.; Gruler, A.; Harhurin, A.; Hartmann, J.; Penzenstadler, B.; Schдtz,
B. & Wild, D. (2008), 'Umfassendes Architekturmodell für das Engineering eingebetteter Softwareintensiver Systeme', Technische Universität München, Tech. Rep. TUM-I0816 6.
Cuenot, P.; Frey, P.; Johansson, R.; Lцnn, H.; Papadopoulos, Y.; Reiser, M.-O.; Sandberg, A.; Servat, D.;
Tavakoli Kolagari, R.; Tцrngren, M. & others (2011), '11 The EAST-ADL Architecture Description
Language for Automotive Embedded Software', Model-Based Engineering of Embedded Real-Time
Systems, 297--307.
12. Agentenbasierte Modellierung
Agentenbasierte Modelle stellen eine Abstraktion zur Beschreibung von verteilten Systemen als
autonome Agenten und ihrer Interaktionen bereit. Die Modelle werden typischerweise verwendet,
um die Effekte des Agentenverhaltens auf das Gesamtsystem und umgekehrt zu analysieren.
Einstiegsliteratur:
Babaoglu, O.; Meling, H. & Montresor, A. (2002), Anthill: A framework for the development of agentbased peer-to-peer systems, in 'Distributed Computing Systems, 2002. Proceedings. 22nd
International Conference on', pp. 15--22.
Bauer, B.; Müller, J. P. & Odell, J. (2001), Agent UML: A formalism for specifying multiagent
interaction, in 'Agent-oriented software engineering', pp. 91--103.
Bonabeau, E. (2002), 'Agent-based modeling: Methods and techniques for simulating human
systems', Proceedings of the National Academy of Sciences of the United States of America 99(Suppl
3), 7280--7287.
Bussmann, S. & Schild, K. (2001), An agent-based approach to the control of flexible production
systems, in 'Emerging Technologies and Factory Automation, 2001. Proceedings. 2001 8th IEEE
International Conference on', pp. 481--488.
Dimeas, A. & Hatziargyriou, N. (2007), Agent based control of virtual power plants, in 'Intelligent
Systems Applications to Power Systems, 2007. ISAP 2007. International Conference on', pp. 1--6.
Grimm, V.; Revilla, E.; Berger, U.; Jeltsch, F.; Mooij, W. M.; Railsback, S. F.; Thulke, H.-H.; Weiner, J.;
Wiegand, T. & DeAngelis, D. L. (2005), 'Pattern-oriented modeling of agent-based complex systems:
lessons from ecology', Science 310(5750), 987--991.
Iglesias, C.; Garijo, M. & González, J. (1999), A Survey of Agent-Oriented Methodologies, in JörgP.
Müller; AnandS. Rao & MunindarP. Singh, ed., 'Intelligent Agents V: Agents Theories, Architectures,
and Languages', Springer Berlin Heidelberg, , pp. 317-330.
Jennings, N. R. (2001), 'An agent-based approach for building complex software systems',
Communications of the ACM 44(4), 35--41.
Jennings, N. R. & Bussmann, S. (2003), 'Agent-based control systems', IEEE control systems 23(3), 61-74.
Marik, V. & McFarlane, D. (2005), 'Industrial adoption of agent-based technologies', Intelligent
Systems, IEEE 20(1), 27--35.
Maturana, F.; Shen, W. & Norrie, D. H. (1999), 'MetaMorph: an adaptive agent-based architecture for
intelligent manufacturing', International Journal of Production Research 37(10), 2159--2173.
Oyarzabal, J.; Jimeno, J.; Ruela, J.; Engler, A. & Hardt, C. (2005), Agent based micro grid management
system, in 'Future Power Systems, 2005 International Conference on', pp. 6--pp.
Petrie, C. (1996), 'Agent-based engineering, the Web, and intelligence', IEEE Expert 11(6), 24 -29.
Ramchurn, S.; Vytelingum, P.; Rogers, A. & Jennings, N. (2011), 'Agent-based control for
decentralised demand side management in the smart grid', .
Tumer, K. & Agogino, A. (2007), Distributed agent-based air traffic flow management, in 'Proceedings
of the 6th international joint conference on Autonomous agents and multiagent systems', pp. 255.
Tveit, A. (2001), 'A survey of Agent-Oriented Software Engineering', .
Wang, F.-Y. (2005), 'Agent-based control for networked traffic management systems', Intelligent
Systems, IEEE 20(5), 92--96.
Wooldridge, M. & Ciancarini, P. (2001), 'Agent-oriented software engineering: the state of the art',
Lecture notes in computer science, 1--28.
Wooldridge, M.; Jennings, N. R. & Kinny, D. (2000), 'The Gaia methodology for agent-oriented
analysis and design', Autonomous Agents and Multi-Agent Systems 3(3), 285--312.
Zambonelli, F.; Jennings, N. R.; Omicini, A. & Wooldridge, M. (2001), 'Agent-oriented software
engineering for internet applications', .
Zambonelli, F. & Omicini, A. (2004), 'Challenges and research directions in agent-oriented software
engineering', Autonomous agents and multi-agent systems 9(3), 253--283.