44 research outputs found
A Model-Driven Approach for the Design, Implementation, and Execution of Software Development Methods
[EN] Software development projects are diverse in nature. For this reason, software companies are often forced to define their methods in-house. In order to define methods efficiently and effectively, software companies require systematic solutions that are built upon sound methodical foundations. Providing these solutions is the main goal of the Method Engineering discipline.
Method Engineering is the discipline to design, construct, and adapt methods, techniques, and tools for the development of information systems. Over the last two decades, a lot of research work has been performed in this area. However, despite its potential benefits, Method Engineering is not widely used in industrial settings. Some of the causes of this reality are the high theoretical complexity of Method Engineering and the lack of adequate software support.
In this thesis, we aim to mitigate some of the problems that affect Method Engineering by providing a novel methodological approach that is built upon Model-Driven Engineering (MDE) foundations. The use of MDE enables a rise in abstraction, automation, and reuse that allows us to alleviate the complexity of our Method Engineering approach. Furthermore, by leveraging MDE techniques (such
as metamodeling, model transformations, and models at runtime), our approach supports three phases of the Method Engineering lifecycle: design, implementation, and execution. This is unlike traditional Method Engineering approaches, which, in general, only support one of these phases.
In order to provide software support for our proposal, we developed a Computer-Aided Method Engineering (CAME) environment that is called MOSKitt4ME. To ensure that MOSKitt4ME offered the necessary functionality, we identified a set of functional requirements prior to developing the tool. Then, after these requirements were identified, we defined the architecture of our CAME environment, and, finally, we implemented the architecture in the context of Eclipse.
The thesis work was evaluated by means of a study that involved the participation of end users. In this study, MOSKitt4ME was assessed by means of the Technology Acceptance Model (TAM) and the Think Aloud method. While the TAM allowed us to measure usefulness and ease of use in a subjective manner, the Think Aloud method allowed us to analyze these measures objectively. Overall, the results were favorable. MOSKitt4ME was highly rated in perceived usefulness and ease of use; we also obtained positive results with respect to the users' actual performance and the difficulty experienced.[ES] Los proyectos de desarrollo de software son diversos por naturaleza. Por este motivo, las compañías de software se ven forzadas frecuentemente a definir sus métodos de manera interna. Para poder definir métodos de forma efectiva y eficiente, las compañías necesitan soluciones sistemáticas que estén definidas sobre unos fundamentos metodológicos sólidos. Proporcionar estas soluciones es el principal objetivo de la Ingeniería de Métodos.
La Ingeniería de Métodos es la disciplina que aborda el diseño, la construcción y la adaptación de métodos, técnicas y herramientas para el desarrollo de sistemas de información. Durante las dos últimas décadas, se ha llevado a cabo mucho trabajo de investigación en esta área. Sin embargo, pese a sus potenciales beneficios, la Ingeniería de Métodos no se aplica ampliamente en contextos
industriales. Algunas de las principales causas de esta situación son la alta complejidad teórica de la Ingeniería de Métodos y la falta de un apropiado soporte software.
En esta tesis, pretendemos mitigar algunos de los problemas que afectan a la Ingeniería de Métodos proporcionando una propuesta metodológica innovadora que está basada en la Ingeniería Dirigida por Modelos (MDE). El uso de MDE permite elevar el nivel de abstracción, automatización y reuso, lo que posibilita una reducción de la complejidad de nuestra propuesta. Además, aprovechando técnicas de MDE (como por ejemplo el metamodelado, las transformaciones de modelos y los
modelos en tiempo de ejecución), nuestra aproximación da soporte a tres fases del ciclo de vida de la Ingeniería de Métodos: diseño, implementación y ejecución. Esto es a diferencia de las propuestas existentes, las cuales, por lo general, sólo dan soporte a una de estas fases.
Con el objetivo de proporcionar soporte software para nuestra propuesta, implementamos una herramienta CAME (Computer-Aided Method Engineering) llamada MOSKitt4ME. Para garantizar que MOSKitt4ME proporcionaba la funcionalidad necesaria, definimos un conjunto de requisitos funcionales como paso previo al desarrollo de la herramienta. Tras la definción de estos requisitos, definimos la arquitectura de la herramienta CAME y, finalmente, implementamos la arquitectura en el contexto de Eclipse.
El trabajo desarrollado en esta tesis se evaluó por medio de un estudio donde participaron usuarios finales. En este estudio, MOSKitt4ME se evaluó por medio del Technology Acceptance Model (TAM) y del método Think Aloud. Mientras que el TAM permitió medir utilidad y facilidad de uso de forma subjetiva, el método Think Aloud permitió analizar estas medidas objetivamente. En general, los
resultados obtenidos fueron favorables. MOSKitt4ME fue valorado de forma positiva en cuanto a utilidad y facilidad de uso percibida; además, obtuvimos resultados positivos en cuanto al rendimiento objetivo de los usuarios y la dificultad experimentada.[CA] Els projectes de desenvolupament de programari són diversos per naturalesa. Per aquest motiu, les companyies es veuen forçades freqüenment a definir els seus mètodes de manera interna. Per poder definir mètodes de forma efectiva i eficient, les companyies necessiten solucions sistemàtiques que estiguin definides sobre uns fundaments metodològics sòlids. Proporcionar aquestes solucions és el principal objectiu de l'Enginyeria de Mètodes.
L'Enginyeria de Mètodes és la disciplina que aborda el diseny, la construcció i l'adaptació de mètodes, tècniques i eines per al desenvolupament de sistemes d'informació. Durant les dues últimes dècades, s'ha dut a terme molt de treball de recerca en aquesta àrea. No obstant, malgrat els seus potencials beneficis, l'Enginyeria de Mètodes no s'aplica àmpliament en contextes industrials. Algunes de les principals causes d'aquesta situació són l'alta complexitat
teòrica de l'Enginyeria de Mètodes i la falta d'un apropiat suport de programari.
En aquesta tesi, pretenem mitigar alguns dels problemes que afecten a l'Enginyeria de Mètodes proporcionant una proposta metodològica innovadora que està basada en l'Enginyeria Dirigida per Models (MDE). L'ús de MDE ens permet elevar el nivell d'abstracció, automatització i reutilització, possibilitant una reducció de la complexitat de la nostra proposta. A més a més, aprofitant
tècniques de MDE (com per exemple el metamodelat, les transformacions de models i els models en temps d'execució), la nostra aproximació suporta tres fases del cicle de vida de l'Enginyeria de Mètodes: diseny, implementació i execució. Açò és a diferència de les propostes existents, les quals, en general, només suporten una d'aquestes fases.
Amb l'objectiu de proporcionar suport de programari per a la nostra proposta, implementàrem una eina CAME (Computer-Aided Method Engineering) anomenada MOSKitt4ME. Per garantir que MOSKitt4ME oferia la funcionalitat necessària, definírem un conjunt de requisits funcionals com a pas previ al desenvolupament de l'eina. Després de la definició d'aquests requisits, definírem la
arquitectura de l'eina CAME i, finalment, implementàrem l'arquitectura en el contexte d'Eclipse.
El treball desenvolupat en aquesta tesi es va avaluar per mitjà d'un estudi on van participar usuaris finals. En aquest estudi, MOSKitt4ME es va avaluar per mitjà del Technology Acceptance Model (TAM) i el mètode Think Aloud. Mentre que el TAM va permetre mesurar utilitat i facilitat d'ús de manera subjectiva, el mètode Think Aloud va permetre analitzar aquestes mesures objectivament. En general, els resultats obtinguts van ser favorables. MOSKitt4ME va ser valorat de forma positiva pel que fa a utilitat i facilitat d'ús percebuda; a més a més, vam obtenir resultats positius pel que fa al rendiment objectiu dels usuaris i a la dificultat experimentada.Cervera Úbeda, M. (2015). A Model-Driven Approach for the Design, Implementation, and Execution of Software Development Methods [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/53931TESI
Software Development Process Modeling. Developers Perspective to Contemporary Modeling Techniques
Formal software development processes and well-defined development methodologies
are nowadays seen as the definite way to produce high-quality software within
time-limits and budgets. The variety of such high-level methodologies is huge
ranging from rigorous process frameworks like CMMI and RUP to more lightweight
agile methodologies. The need for managing this variety and the fact that
practically every software development organization has its own unique set of development
processes and methods have created a profession of software process
engineers. Different kinds of informal and formal software process modeling languages
are essential tools for process engineers. These are used to define processes
in a way which allows easy management of processes, for example process dissemination,
process tailoring and process enactment.
The process modeling languages are usually used as a tool for process engineering
where the main focus is on the processes themselves. This dissertation
has a different emphasis. The dissertation analyses modern software development
process modeling from the software developers’ point of view. The goal of the
dissertation is to investigate whether the software process modeling and the software
process models aid software developers in their day-to-day work and what are
the main mechanisms for this. The focus of the work is on the Software Process
Engineering Metamodel (SPEM) framework which is currently one of the most
influential process modeling notations in software engineering.
The research theme is elaborated through six scientific articles which represent
the dissertation research done with process modeling during an approximately
five year period. The research follows the classical engineering research discipline
where the current situation is analyzed, a potentially better solution is developed
and finally its implications are analyzed. The research applies a variety of different
research techniques ranging from literature surveys to qualitative studies done
amongst software practitioners.
The key finding of the dissertation is that software process modeling notations
and techniques are usually developed in process engineering terms. As a consequence
the connection between the process models and actual development work
is loose. In addition, the modeling standards like SPEM are partially incomplete
when it comes to pragmatic process modeling needs, like light-weight modeling
and combining pre-defined process components. This leads to a situation, where
the full potential of process modeling techniques for aiding the daily development
activities can not be achieved.
Despite these difficulties the dissertation shows that it is possible to use modeling
standards like SPEM to aid software developers in their work. The dissertation
presents a light-weight modeling technique, which software development teams
can use to quickly analyze their work practices in a more objective manner. The
dissertation also shows how process modeling can be used to more easily compare
different software development situations and to analyze their differences in a
systematic way. Models also help to share this knowledge with others.
A qualitative study done amongst Finnish software practitioners verifies the
conclusions of other studies in the dissertation. Although processes and development
methodologies are seen as an essential part of software development, the
process modeling techniques are rarely used during the daily development work.
However, the potential of these techniques intrigues the practitioners.
As a conclusion the dissertation shows that process modeling techniques, most
commonly used as tools for process engineers, can also be used as tools for organizing
the daily software development work. This work presents theoretical solutions
for bringing the process modeling closer to the ground-level software development
activities. These theories are proven feasible by presenting several case studies
where the modeling techniques are used e.g. to find differences in the work methods
of the members of a software team and to share the process knowledge to a
wider audience.Siirretty Doriast
BPMNt : a proposal for flexible process tailoring representation in BPMN /
Business Process Model and Notation (BPMN) is a de-facto standard for business process modeling, which focuses on the representation of the process behavior. However, it can also succeed in representing the behavior of software processes, since they are a type of business process. Although BPMN has been extensively used for modeling processes in different domains, its standard specification does not have any mechanism to support users in activities related to process adaptation (tailoring). Moreover, researches extending BPMN are based on complex consolidated models, which hamper the analysis and maintenance of individual variant process models and are not appropriate for application domains in which process variations are difficult to predict, such as in software development processes. Thus, our objective was to provide a BPMN-compliant extension and associated mechanisms for specifying flexible process tailoring on models produced with this language while ensuring the correctness of adapted process models and explicitly capturing change traces. We have focused our research on the domains of Software Process Engineering (SPE) and Business Process Management (BPM). At last, we evaluated the applicability of the proposal for representing realistic tailoring scenarios in both domains.BPMN (Business Process Model and Notation) é um padrão para modelagem de processos de negócio, que tem seu foco na representação do comportamento de processos. No entanto, ele pode também ser usado para representar o comportamento de processos de software, já que eles são um tipo de processo de negócio. Embora BPMN tem sido extensivamente usado para modelar processos em diferentes domínios, sua especificação padrão não possui nenhum mecanismo para apoiar usuários em atividades relacionadas à adaptação de processos. Pesquisas que estendem o padrão são baseadas em modelos complexos, que dificultam a análise e manutenção de modelos variantes, e não são apropriadas para domínios de aplicação onde variações de processo são difíceis de predizer, como em processos de desenvolvimento de software. Assim, nosso objetivo foi fornecer uma extensão para BPMN, chamada BPMNt, e mecanismos de suporte para especificar, de modo flexível, adaptações em processos modelados com esta linguagem. BPMNt deve também garantir a corretude de modelos adaptados e explicitamente capturar rastros de mudanças realizadas. Essa pesquisa teve como foco os domínios de Engenharia de Processos de Software e Gerenciamento de Processos de Negócio. Por fim, nós avaliamos a aplicabilidade da proposta para representar cenários de adaptação reais em ambos os domínios
OpenUP/MDRE: A Model-Driven Requirements Engineering Approach for Health-Care Systems
The domains and problems for which it would be desirable to introduce information systems are currently very complex and the software development process is thus of the same complexity. One of these domains is health-care. Model-Driven Development (MDD) and Service-Oriented Architecture (SOA) are software development approaches that raise to deal with complexity, to reduce time and cost of development, augmenting flexibility and interoperability. However, many techniques and approaches that have been introduced are of little use when not provided under a formalized and well-documented methodological umbrella. A methodology gives the process a well-defined structure that helps in fast and efficient analysis and design, trouble-free implementation, and finally results in the software product improved quality.
While MDD and SOA are gaining their momentum toward the adoption in the software industry, there is one critical issue yet to be addressed before its power is fully realized. It is beyond dispute that requirements engineering (RE) has become a critical task within the software development process. Errors made during this process may have negative effects on subsequent development steps, and on the quality of the resulting software. For this reason, the MDD and SOA development approaches should not only be taken into consideration during design and implementation as usually occurs, but also during the RE process.
The contribution of this dissertation aims at improving the development process of health-care applications by proposing OpenUP/MDRE methodology. The main goal of this methodology is to enrich the development process of SOA-based health-care systems by focusing on the requirements engineering processes in the model-driven context. I believe that the integration of those two highly important areas of software engineering, gathered in one consistent process, will provide practitioners with many benets. It is noteworthy that the approach presented here was designed for SOA-based health-care applications, however, it also provides means to adapt it to other architectural paradigms or domains. The OpenUP/MDRE approach is an extension of the lightweight OpenUP methodology for iterative, architecture-oriented and model-driven software development. The motivation for this research comes from the experience I gained as a computer science professional working on the health-care systems. This thesis also presents a comprehensive study about: i) the requirements engineering methods and techniques that are being used in the context of the model-driven development, ii) known generic but flexible and extensible methodologies, as well as approaches for service-oriented systems development, iii) requirements engineering techniques used in the health-care industry. Finally, OpenUP/MDRE was applied to a concrete industrial health-care project in order to show the feasibility and accuracy of this methodological approach.Loniewski, G. (2010). OpenUP/MDRE: A Model-Driven Requirements Engineering Approach for Health-Care Systems. http://hdl.handle.net/10251/11652Archivo delegad
SP2MN: a Software Process Meta-Modeling Language
In the last two decades, software process modeling has been an area of interest within both academia and industry. Software process modeling aims at defining and representing software processes in the form of models. A software process model represents the medium that allows better understanding, management and control of the software process. Software process metamodeling rather, provides standard metamodels which enable the defining of customized software process models for a specific project in hand by instantiation. Several software process modeling/meta-modeling languages have been introduced to formalize software process models.
Nonetheless, none of them has managed to introduce a compatible yet precise language to include all necessary concepts and information for software process modeling. This paper presents Software Process Meta-Modeling and Notation (SP2MN); a meta-modeling language that
provides simple and expressive graphical notations for the aim of software process modeling. SP2MN has been evaluated based upon the well-known ISPW-6 process example, a standard benchmark problem for software process modeling. SP2MN has proved that it presents a valid and expressive software process modeling language
DSL4SPM: Domain-specific language for software process modeling
This paper presents a novel formal approach to software process modeling based on the
Software Process Engineering Metamodel (SPEM) for the syntactic aspect of a process model and a
domain-specific language (DSL) for the semantic aspect of the model. This approach provides a
conceptual framework for designing processes in a more abstract way and to enable process
implementation on various platforms. A Process-Centered Software Environment (PCSE) called
DSL4SPM (Domain-Specific Language for Software Process Modeling) is a plug-in tool which
satisfies the meta-requirements for Process Modeling Languages (PMLs). The key concept of the
DSL4SPM is the use of a toolbox, containing SPEM elements, to instantiate objects in a graphical
scene. The process model designer links these elements with relations, and defines the values of the
attributes required for both these and the objects, with the aim of arriving at a consolidated view of
the problem. An overview of the advantages of the approach is presented. With it, the process
manager is able to quickly and easily model a process from innovative perspectives, with the aim of
better understanding the risks associated with software development
Software development in the post-PC era : towards software development as a service
PhD ThesisEngineering software systems is a complex task which involves various stakeholders
and requires planning and management to succeed. As the role of software in our daily
life is increasing, the complexity of software systems is increasing. Throughout the
short history of software engineering as a discipline, the development practises and
methods have rapidly evolved to seize opportunities enabled by new technologies
(e.g., the Internet) and to overcome economical challenges (e.g., the need for cheaper
and faster development).
Today, we are witnessing the Post-PC era. An era which is characterised by mobility and
services. An era which removes organisational and geographical boundaries. An era
which changes the functionality of software systems and requires alternative methods
for conceiving them.
In this thesis, we envision to execute software development processes in the cloud.
Software processes have a software production aspect and a management aspect. To
the best of our knowledge, there are no academic nor industrial solutions supporting the
entire software development process life-cycle(from both production and management
aspects and its tool-chain execution in the cloud.
Our vision is to use the cloud economies of scale and leverage Model-Driven Engineering
(MDE) to integrate production and management aspects into the development
process. Since software processes are seen as workflows, we investigate using existing
Workflow Management Systems to execute software processes and we find that these
systems are not suitable. Therefore, we propose a reference architecture for Software
Development as a Service (SDaaS). The SDaaS reference architecture is the first proposal
which fully supports development of complex software systems in the cloud.
In addition to the reference architecture, we investigate three specific related challenges
and propose novel solutions addressing them. These challenges are:
Modelling & enacting cloud-based executable software processes. Executing
software processes in the cloud can bring several benefits to software develop
ment. In this thesis, we discuss the benefits and considerations of cloud-based
software processes and introduce a modelling language for modelling such processes.
We refer to this language as EXE-SPEM. It extends the Software and Systems
Process Engineering (SPEM2.0) OMG standard to support creating cloudbased
executable software process models. Since EXE-SPEM is a visual modelling
language, we introduce an XML notation to represent EXE-SPEM models
in a machine-readable format and provide mapping rules from EXE-SPEM to
this notation. We demonstrate this approach by modelling an example software
process using EXE-SPEM and mapping it to the XML notation. Software process
models expressed in this XML format can then be enacted in the proposed SDaaS
architecture.
Cost-e cient scheduling of software processes execution in the cloud. Software
process models are enacted in the SDaaS architecture as workflows. We
refer to them sometimes as Software Workflows. Once we have executable software
process models, we need to schedule them for execution. In a setting where
multiple software workflows (and their activities) compete for shared computational
resources (workflow engines), scheduling workflow execution becomes
important. Workflow scheduling is an NP-hard problem which refers to the allocation
of su cient resources (human or computational) to workflow activities.
The schedule impacts the workflow makespan (execution time) and cost as well as
the computational resources utilisation. The target of the scheduling is to reduce
the process execution cost in the cloud without significantly a ecting the process
makespan while satisfying the special requirements of each process activity (e.g.,
executing on a private cloud). We adapt three workflow scheduling algorithms
to fit for SDaaS and propose a fourth one; the Proportional Adaptive Task Schedule.
The algorithms are then evaluated through simulation. The simulation results
show that the our proposed algorithm saves between 19.74% and 45.78% of the
execution cost, provides best resource (VM) utilisation and provides the second
best makespan compared to the other presented algorithms.
Evaluating the SDaaS architecture using a case study from the safety-critical
systems domain. To evaluate the proposed SDaaS reference architecture, we
instantiate a proof-of-concept implementation of the architecture. This imple
mentation is then used to enact safety-critical processes as a case study.
Engineering safety-critical systems is a complex task which involves multiple
stakeholders. It requires shared and scalable computation to systematically involve
geographically distributed teams. In this case study, we use EXE-SPEM to
model a portion of a process (namely; the Preliminary System Safety Assessment
- PSSA) adapted from the ARP4761 [2] aerospace standard. Then, we enact this
process model in the proof-of-concept SDaaS implementation.
By using the SDaaS architecture, we demonstrate the feasibility of our approach
and its applicability to di erent domains and to customised processes. We also
demonstrate the capability of EXE-SPEM to model cloud-based executable processes.
Furthermore, we demonstrate the added value of the process models and
the process execution provenance data recorded by the SDaaS architecture. This
data is used to automate the generation of safety cases argument fragments. Thus,
reducing the development cost and time. Finally, the case study shows that we
can integrate some existing tools and create new ones as activities used in process
models.
The proposed SDaaS reference architecture (combined with its modelling, scheduling
and enactment capabilities) brings the benefits of the cloud to software development. It
can potentially save software production cost and provide an accessible platform that
supports collaborating teams (potentially across di erent locations). The executable
process models support unified interpretation and execution of processes across team(s)
members. In addition, the use of models provide managers with global awareness and
can be utilised for quality assurance and process metrics analysis and improvement.
We see the contributions provided in this thesis as a first step towards an alternative
development method that uses the benefits of cloud and Model-Driven Engineering to
overcome existing challenges and open new opportunities. However, there are several
challenges that are outside the scope of this study which need to be addressed to allow
full support of the SDaaS vision (e.g., supporting interactive workflows). The solutions
provided in this thesis address only part of a bigger vision. There is also a need for
empirical and usability studies to study the impact of the SDaaS architecture on both
the produced products (in terms of quality, cost, time, etc.) and the participating
stakeholders
Refinement and variability techniques in model transformation of software requirements
Tese de Doutoramento em Tecnologias e Sistemas de InformaçãoThis thesis begins with analyzing user functional requirements (as use cases) from the
perspective of detail. In that sense, it investigates the applicability of the UML (Unified
Modeling Language) «include» relationship to the representation of use case refinement and
proposes another relationship for that purpose. It also clarifies the process of modeling use
cases with UML when refinement is involved and provides for some guidelines in order to
conduct that process. Afterwards, the work of this thesis on use case modeling is expanded to
the field of SPLs (Software Product Lines) by means of exploring the UML «extend»
relationship. It talks about alternative, specialization and option use cases as the
representation of the three variability types this thesis proposes to be translated into
stereotypes to mark use cases. Then, this thesis incorporates the refinement of logical
architectures with variability support from use cases also with variability support in the 4SRS
(Four Step Rule Set) transition method for model transformation of analysis artifacts (use
cases) into design artifacts (logical architectures represented as UML component diagrams).
The model transformation the 4SRS guides in a stepwise way, from use cases into
logical architectures, is based on a software development pattern that addresses architecture.
This thesis yields a multilevel and multistage pattern classification that grounds the use of
that pattern to generate system functional requirements (as logical architectures).
Lastly, the 4SRS transition method is modeled with the SPEM (Software & Systems
Process Engineering Metamodel) and formalized as a small software development process
dedicated at transitioning from the analysis to the design of software. After that, this thesis
presents a case study on the automation of the 4SRS and thoroughly elaborates on the
transformation rules that support the model transformations of the 4SRS.Esta tese começa por analisar requisitos funcionais de utilizador (enquanto casos de
utilização) sob a perspectiva do detalhe. Nesse sentido, esta tese investiga a aplicabilidade da
relação UML (Unified Modeling Language) «include» para a representação do refinamento
de casos de utilização e propõe outra relação para esse fim. Esta tese também clarifica o
processo de modelação de casos de utilização com a UML quando esse processo envolve
refinamento e fornece algumas diretrizes para a condução desse processo. De seguida, o
trabalho desta tese em modelação de casos de utilização é expandido para o campo das linhas
de produtos de software através da exploração da relação UML «extend». Esse trabalho fala
de casos de utilização alternativos, de especialização e opcionais como a representação dos
três tipos de variabilidade que esta tese propõe que sejam traduzidos em estereótipos para a
marcação de casos de utilização. Depois, esta tese incorpora o refinamento de arquitecturas
lógicas com suporte à variabilidade a partir de casos de utilização também com suporte à
variabilidade no método de transição 4SRS (Four Step Rule Set) para a tranformação de
modelos de artefatos de análise (casos de utilização) em modelos de artefatos de design
(arquitecturas lógicas representadas como diagramas de components UML).
A transformação de modelos que o 4SRS guia por passos, de casos de utilização em
arquitecturas lógicas, baseia-se num padrão de desenvolvimento de software que visa
arquitetura. Esta tese produz uma classificação multinível e multietapa de padrões, que
sustenta a utilização desse padrão na geração de requisitos funcionais de sistema (enquanto
arquitecturas lógicas).
Por fim, o método de transição 4SRS é modelado com o SPEM (Software & Systems
Process Engineering Metamodel) e formalizado como um pequeno processo de
desenvolvimento de software dedicado a transitar da análise para o design the software.
Depois disso, esta tese apresenta um estudo de caso sobre a automatização do 4SRS e elabora
minuciosamente acerca das regras de transformação que apoiam as transformações de
modelos do 4SRS
Requirements Modeling for Multi-Agent Systems
Different approaches for building modern software systems in complex and open environments have been proposed in the last few years. Some efforts try to take
advantage of the agent-oriented paradigm to model/engineer complex information systems in terms of independent agents. These agents may collaborate in a computational organization (Multi-Agent Systems, MAS) by playing some specific roles having to interact with others in order to reach a global or individual goal. In addition, due to the complex nature of this type of systems, dealing with the classical functional and structural perspectives of software systems are not enough. The organizational perspective, that describes the context where these agents need to collaborate, and the social behavior perspective, that describes the different "intelligent" manners in which these agents can collaborate, need to be identified and properly specified.
Several methodologies have been proposed to drive the development of MAS (e.g., Ingenias, Gaia, Tropos) although most of them mainly focus on the design and implementation phases and do not provide adequate mechanisms for capturing, defining, and specifying software requirements.
Poor requirements engineering is recognized as the root of most errors in current software development projects, and as a means for improving the quality of current practices in the development of MAS, the main objective of this work is to propose a requirements modeling process to deal with software requirements covering the functional, structural, organizational, and social behavior perspectives of MAS.
The requirements modeling proposed is developed within the model-driven engineering context defining the corresponding metamodel and its graphical syntax. In addition, a MAS requirements modeling process is specified using the Object Management Group's (OMG) Software Process Engineering Metamodel (SPEM). Finally, in order to illustrate the feasibility of our approach, we specified the software requirements of a strategic board game (the Diplomacy game).Rodríguez Viruel, ML. (2011). Requirements Modeling for Multi-Agent Systems. http://hdl.handle.net/10251/11416Archivo delegad