artigo - ufesmestradoanabringuente

advertisement
Using a Foundational Ontology for Reengineering a
Software Process Ontology
Ana Christina Bringuente, Ricardo de Almeida Falbo, Giancarlo Guizzardi
Ontology and Conceptual Modeling Research Group (NEMO), Federal University of
Espírito Santo – Brazil
{acobringuente, falbo, gguizzardi}@inf.ufes.br
Abstract: During software development, knowledge about software processes
is considerably relevant in several situations. During the project planning, the
software process should be defined, people should be allocated to its activities,
and these activities should be scheduled. During project execution, activities are
performed and people accomplish their tasks. In this context, standard software
processes can be used as basis for defining project processes, and tools are used
to support team allocation, scheduling and so on. Ideally, people and tools
should share a common conceptualization regarding the domain of software
processes for allowing knowledge reuse, interoperability between tools, and
correct use of them by the developers, among others. A domain ontology can be
used to define an explicit representation of this shared conceptualization.
Moreover, in order for a domain ontology to be able to adequately serve as a
reference model, it should be constructed using an approach that explicitly takes
foundational concepts into account. This paper discusses the reengineering of
the part of a Software Process Ontology based on the Unified Foundational
Ontology (UFO). The part reengineered concerns the concepts of standard
processes, project processes, and activities, which are analyzed at the light of
UFO concepts of events, commitments, intentions and normative descriptions,
among others.
Keywords: Software Process, Domain Ontology, Foundational Ontology,
Ontology Reengineering, Unified Foundational Ontology.
1. Introduction
Managing a project is to apply knowledge, skills, tools and techniques to project
activities to meet their requirements. Such application of knowledge requires the
effective management of suitable processes [1]. Among these processes we can
highlight those responsible for project process and its activities definition, the
development schedule and human resources allocation for each planned activity. This
also applies to software projects, where its management is one of its most critical
points [2].
Generally, different tools are used to support such tasks. Considering those tasks
are iterative and interrelated, ideally the tools that support it should work integrated.
However, this is not always possible, either by organizational culture, or simply that
because don’t have a single tool that can meet all needs. This scenario leads us to an
important requirement: interoperability between tools.
The integration between systems can occur at different levels: hardware, platform,
syntactic and semantic. At the semantic level, the intended meaning of the concepts
involved are connected to the same [3]. One way to add semantics is through the
use of domain ontologies. According to Guarino [4], an ontology defines aspecific
vocabulary used to describe a portion of the reality and a set of explicit decisions, so
as to establish accurately the intended meaning to the vocabulary. It captures the
concepts and relationships in a given domain and a set of axioms that constrain its
interpretation. Ideally, domain ontologies must be based on foundatioal ontologies
[4]. This maximizes the capture of key aspects of the domain and explict the
underlying ontological commitments [5].
In this article we will proceed with the process of reengineering the Software
Process Ontology, initiated in [8]. As done in [8], will align the concepts of
the Ontology Process with a foundational ontology , the UFO (Unified Foundational
Ontology) [6]. The Process Ontology, despite covering the needed concepts to
discuss about software
project
planning,
the
domain that
guides this
work, had problems as implicit ontological commitments. And, although of has been
done in [8], not all important concepts in the domain have been covered. Besides
that, presents some problems, as we Will discuss later. Thus, the goal of this work is
to present the progress in the reengineering or Software Process Ontology based in
UFO.
This paper is organized as follows: section 2 presents a brief description about
Project Planning. The section 3 presents the concepts of Unified Foundational
Ontology (UFO) relevants to this work. The section presents the Software Process
Ontology
and its partial reengineering. Section
4 presents the continuation
of
the process of reengineering of Software Process Ontology, focusing on concepts
related to project planning. The section 5 presents related work and, finally, the
section 7 presents our conclusions and future work.
2. Project Planning
According to Pressman[9], the software project management involves planning,
monitoring and control of the peopele, processeses and events that occur as software
evolves from a preliminary concept to an operational implementation. The taken
actions during a process, generally, affect the related processes. This is especially
observed in the triad: scope, schedule and cost. When one of these itens is changed,
reflects on the others. For example, if the scope increases, consequently the cost of the
project will also increase and, probably, the time of its duration will change too. Thus,
managers must always align the management of these three items.
The objective of the planning it is define a scope to the Project, refine the goals and
develop the necessary action curse to achieve them [1]. Among the processes of
planning, we can highlight the definition of the software project process and the
elaboration of the project schedule.
Thus, when starting a Project, it is necessary define its scope, ie, a documented
description of a project and their goals or results, their approach and content. With the
scope in hand, starts the definition of the project process. To define the process,
should be indicate the set of activities that will execute, the necessary resources, the
artifacts and the procedures to be adopted to perform each activity [11].
Still in the planning phase [12], it is necessary to define how long each activity will
last, ie, planning the project schedule. The project schedule is a timetable for the
project process. It is estimated the duration of each activity, the start and end date of
the project, when each activity should begin and finish and identify the critical path
for the activities. However, such tasks are not trivial, because they are influenced by
several factors such as availability of human resource that will eventually be
allocated, the level of expertise, previous experience, interest in working on the
project and its cost reference. Although the allocation of human resources is part of
the development phase of the project, it is easy to see how that activity interacts with
the planning schedule.
As previously mentioned, the triad, scope, schedule and cost, are tasks with a
strong connection. When the scope changes, have a cascading effect, since the design
process will be changed, therefore the planning schedule will be affected, and finally
we will have changes in the allocation of human resources.
3. UFO – A Foundational Ontology
UFO is a foundational ontology that has been developed based on a number of
theories from Formal Ontology, Philosophical Logics, Philosophy of Language,
Linguistics and Cognitive Psychology. It is composed by three main parts, the UFOA, UFO-B and UFO-C. The UFO-A is an ontology of endurants. A fundamental
distinction in UFO-A is between Individuals and Universals. Individuals are entities
that exist in reality possessing a unique identity, while Universals are patterns of
features, which can be realized in a number of different individuals [6]. UFO-B is an
ontology of perdurants (events) [14]. And the UFO-C, finally, is an ontology of social
entities (both endurants and perdurants) built on the top of UFO-A and UFO-B. One
of its main distinctions is between agents and objects [14].
A complete description of UFO falls outside the scope of this paper. However, in
the sequel we give a brief explanation of its concepts that are important for this paper.
This description is based on [6], [14], [8] e [15].
3.1 UFO A
The UFO-A is ontology of endurants or, more intuitively, ordinary objects that
persist over time, like a person, a hole, a sand pile. In the UFO-A, an entity can be
divided into the categories / types, Universal and Individual. Thus, Universal is the
general type or category which represents the patterns of features present in different
individuals. For example, Man and Dog are patterns of features that can be
instantiated in a number of different individuals. On the other hand, individuals are
single entities that exist in reality, like John and Rex. Furthermore, an individual must
instantiate at least one universal.
Substantials are not existentially dependent on other endurants. A Person it’s a
example of substantial. While a Moment it’s existentially dependent of others
individuals. An Intrinsic Moment is a moment existentially dependent on one single
individual. We can think about the headache of John. In this case, the headache it’s
existentially dependent of John. Meanwhile, a Relator is a moment existentially
dependent on more than one individual, like a marriage between John and Mary.
Fig. 1. Conceitos básicos da UFO
A Relation is a type whose instances are tuples of connected elements. For
instance, John ‘works at’ UFES. The concept Relation is specialized into Formal
Relation and Material Relation. A Formal Relation holds between two or more
entities directly, without any further intervening individual. Examples of formal
relation include John ’is older than’ Mary. Moreover, this relation between John and
Mary exists without the need for any real connection between the two. Unlike formal
relations, material relations are founded on the existence of a relator. Thus, John
‘works at’ UFES because there is an employment relator connecting the two.
3.1 UFO-B
UFO-B makes an explicit distinction between Endurants and Perdurants.
Classically, this distinction can be understood in terms of their behavior with regard
to time. Endurants are said to be wholly present whenever they are present, i.e., they
are in time, in the sense that if we say that in circumstance c1 an endurant e’ has a
property P1 and in circumstance c2 the property P2 (possibly incompatible with P1),
it is the very same endurant e’ that we refer to in each of these situations. For
instance, we can say that an individual Mary weights 60kg at c1 but 54kg at c2.
Nonetheless, we are in these two cases referring to the same particular Mary.
Perdurants are individuals composed of temporal parts, they happen in time in the
sense that they extend in time accumulating temporal parts. Examples of perdurants
are a conversation, a symphony execution, the Second World War and a business
process. Whenever a perdurant is present, it is not the case that all its temporal parts
are present. As a consequence, perdurants cannot exhibit change in time in a genuine
sense since none of its temporal parts retain their identity through time.
Fig. 2. UFO-B: Perdurants
A perdurant is specialized into situation and event. Events are possible
transformations from a portion of reality to another, i.e., they may change reality by
changing the state of affairs from one (pre-state) situation to a (post-state) situation.
Events are ontologically dependent entities in the sense that they existentially depend
on their participants in order to exist. Take for instance the event e: the stabbing of
Caesar by Brutus. In this event we have the participation of Caesar himself, of Brutus
and of the knife. In this case, e is composed of the individual participation of each of
these entities. Each of these participations is itself an event that can be complex or
atomic but which existentially depends on a single substantial.
Considera-se nesta ontologia que o espaço conceitual de tempo é uma estrutura
composta de intervalos temporais (time intervals).
3.2 UFO-C
In UFO-C, the concept of substantial of UFO-A is specialized in agent and nonagentive object. An agent is a substantial that creates actions, perceives events and to
which we can ascribe mental states (intentional moments). An agent can be, for
example, a person, organization or a robot. In turn, a non-agentive object is a
substantial unable to perceive events or have intentional moments, like a knife, a
chair or a book. The agent concept can be specialized in human agent and social
agent, it allows us, for example, distinguish a human from an organization.
Fig. 3. Fragmento da UFO-C: Ações, Agentes e Substanciais Inanimados
A normative description is a type of social non-agentive object that defines one or
more rules/norms recognized by at least one social agent and that can define nominal
universals such as social moment universals (eg types of social commitments), social
objects (the crown of the king of Spain) and social roles such as president or
department head. Examples of normative descriptions include the Brazilian
Constitution or a set of directives on how to perform some actions within an
organization (a description of a plan).
An action is an intentional event, i.e., have the specific purpose of satisfying some
intention, for example, writing a dissertation. As events, actions can be atomic or
complex. A complex action is composed of two or more participations. An intentional
action is called Contribution Action. An atomic action is specialized into
comunicative act.
Intentional modes can be social modes or mental moments. Intentions (or internal
commitments) are mental moments that represent an internal commitment of the agent
to act towards that will. The proposition content of an intention is a goal. A situation
can satisfy a proposition representing the propositional content of an intentional
mode.
Fig. 4. Fragmento da UFO-C: Modos mentais, modos sociais e objetivos
Communicative Acts can be used to create Social Moments. Thus, social moments
are types of intentional moments that are created by the exchange of communicative
acts and the consequences of these exchanges (e.g., goal adoption, delegation). For
instance, suppose that I rent a car at a car rental service. When signing a business
agreement, I perform a communicative act (a promise). This act creates a Social
Commitment towards that organization: a commitment to return the car in a certain
state, etc (the propositional content). Moreover, it also creates a Social Claim of that
organization towards me w.r.t. that particular propositional content.
Commitments/Claims always form a pair that refers to a unique propositional content.
A Social Relator is an example of a relator composed of two or more pairs of
associated commitments/claims (social moments). Finally, a commitment (internal or
social) is fulfilled by an agent A if this agent performs an action x such that the poststate of that action is a situation that satisfies that commitment.
A Social Commitment C is a commitment of an agent A towards another agent B.
Thus, as an externally dependent moment, we state that C inheres in A and is
externally dependent on B. Differently from an internal commitment, in this case, C
can only be dismissed by B. Internal commitments cause the agent to perform actions.
Thus, following [14], we have that social commitments necessarily cause the creation
of internal commitments, i.e., if I promise to bring you a specific book by tomorrow,
asides from the commitment with you, I must also create the intention (internal
commitment) of bringing the book by tomorrow.
A special type of Commitment is an Appointment. An appointment is a
commitment whose propositional content explicitly refers to a time interval. For
instance, while “I will return the book to you” is a social commitment, “I will return
the book between now and the end of this working week” is an appointment. An
appointment can be either Internal (Self-Appointment) or a Social Appointment.
When the agent must fulfil the commitment by executing a specific action, we
state then that a closed commitment C is based on an Action Universal (Plan) P such
that C is fulfilled by agent A iff A brings about a situation that satisfies the
propositional content of C by executing an action a which is an instance of P.
Fig. 5. – UFO-C fragment: Commitments and Appointments types.
An agent A can delegate to an agent B the goal accomplishment. A delegation
consists of a material relation, following the definitions of UFO-A, which connects
two physical agents, the delegator and the delegatee for this task.
Fig. 6. – Fragmento da UFO-C: Delegação de Plano
4. Software Process Ontology
The Software Process Ontology was developed in [7] for establishing a common
conceptualization for software organizations to talk about software process. The
figure below show a fragment of this ontology:
Fig. 7. Software Process Ontology Fragment.
A software process can be decomposed into activities or other processes, called
subProcesses. An activity is a piece of work that requires resources to be performed.
An activity can be decomposed into sub-activities, and can depend on the
accomplishment of other activities, said pre-activities. Resources are used during, or
to support, the execution of activities. These resources can be grouped into three main
categories: (i) human resource are the roles that human agents is required to perform
in an activity, such as requirement analyst, project manager and so on; (ii) hardware
resources include any hardware equipment required to perform an activity, such as
computers and printers; (iii) software resources concern any software product that is
used in the accomplishment of an activity, such as a data base management system.
A standard process refers to a generic process institutionalized in a organization,
establishing basic requirements for processes to be performed in that organization. A
project process refers to the process defined for a specific project, considering the
particularities of that project.
4.1 The partial reengineering
In the version published at [8], the notion of resource in the original ontology was
mapped to the notion of Non-Agentive Object in UFO. This was done
to distinguish an action contribution of a resource participation. In this way, a human
resource is a Agent, de acordo com a UFO, because he is capable of intentionally
contribute at an event.
Besides, progress was made toward differentiating the software process occurrence
from its planning, the software process. The same was made with activity, represented
by the concept Activity and Activity Occurrence.
Fig. 8. Fragmento remodelado da ontologia de processo de software
Others changes was made, but is out of the scope of this article.
5 Reengineering a Software Process Ontology based on UFO.
In the first phase of reengineering the Software Process Ontology was not addressed
the distinctions between types of software process - important concept within the
domain of planning a software project. Thus, as presented in this article, we expand
the concepts covered by reengineering, to encompass the relevant concepts to the
domain to align them with the UFO and review what has been done.
Because the Software Process Ontology uses many concepts of organization
domain, we adopt an ontology that addresses this area. Ontology Software Enterprise
Ontology (SEO) [17] is an ontology of software organizations aligned with the
concepts of UFO. Thus, we import the necessary concepts for the process ontology.
All the concepts presented in the diagrams that are preceded by SEO:: are the
concepts of this ontology.
5.1 Standard Process Definition
Although the original ontology to distinguish between software processes, the
reengineering performed in [8] did not contemplate it. A software process can be, as
shown in Fig. 7, a Standard Process or a Project Process. A standard process refers
to a generic process institutionalized in an organization, establishing basic
requirements for processes to be performed in that organization. According to the
UFO, a standard process is a normative description, as it establishes the rules for
project realization and is recognized by an organization. The same happens for the
standard activities that compose it.
Fig. 9. Standard Process Definition
A General Standard Process is composed of Specific Standard Process, as shown
in Fig. 9. Thus, an organization can define the specific processes (subprocesses) that
will compose the standard process, for example, the subprocesses of Software
Development and Project Management. Each subprocess is composed of activities,
the standard activity. These activities can be complex, Standard Activity Complex, ie
composed of other activities, or simple, simple standard activity. For each simple
standard activity, we can say what are the roles are required for their achievement, the
Human Resource Role from SEO ontology [17].
5.2 Project Process Definition
Fig. 10. Definição de Processo de Projeto.
In contrast with the standard process, a project process refers to the process defined
for a specific project, considering the particularities of that project. The project
process definition starts with the choice of a standard process to be followed. Desta
forma, ao definir o processo padrão para o projeto, estamos executando uma ato
comunicativo que cria o comprometimento social: o comprometimento do time de
seguir o processo padrão (o conteúdo proposicional). Por outro lado, a organização
passa a ter o direito de reivindicar que aquele processo padrão seja seguido.
Desta forma, o processo de projeto é o comprometimento do time do projeto de em
algum momento executar tal processo () com o intuito de atingir um determinado
objetivo, o Objetivo do Processo, que pode ser, por exemplo desenvolver software
com qualidade. Uma vez que para cumprir esse comprometimento interno, a
organização deve executar um conjunto de ações específicas, o Processo de Projeto é
um comprometimento interno e fechado. O mesmo ocorre com atividade de projeto,
que é intenção da organização de executar uma Atividade padrão. Cada atividade de
projeto tem um objetivo, o Objetivo da Atividade, que pode ser, por exemplo, analisar
o domínio da aplicação que será desenvolvida.
5.3 Schedule Definition
Fig. 11. Definição do cronograma do Processo de Projeto e das Atividades
No planejamento de um processo de projeto, ao finalizar a definição das atividades
de projeto, a etapa seguinte, como discutido anteriormente, pode ser a definição do
cronograma do projeto ou a alocação dos recursos necessários. A ontologia de
processo até então, não era capaz de capturar a semântica por trás desses fatos. Na
definição de cronograma é determinado uma data de início e uma data de fim para a
execução de cada processo/atividade, ou seja, é definido o Intervalo Temporal no qual
os processos e atividades de projeto deverão ocorrer. A partir do momento que o
processo/atividade tem uma data definida ela deixa de simplesmente ser uma
comprometimento interno e fechado da organização e passa a ser um compromisso
fechado que a organização tem com si mesma, ou seja, um compromisso interno e
fechado de acordo com a UFO.
5.4 Human Resource Allocation
Fig. 12. Human Resource Allocation
Ao alocar um recurso humano em uma atividade para desempenhar um papel,
estamos determinando a estratégia que o recurso humano deverá adotar para atingir os
objetivos delegado a ele. Quando isto ocorre, cria-se o compromisso do recurso
humano em alcançar tais objetivos e a organização passa a ter o direito de reivindicar
do recurso humano que aquele objetivo seja alcançado. Ao compromisso social e
fechado do recurso humano chamamos de human resource commitment. Este par de
commitment/claim compõe a human resource allocation.
5. Trabalhos Relacionados
Nos últimos anos, alguns trabalhos que lidam com a avaliação e melhoria de modelos
conceituais baseados em ontologias fundacionais foram desenvolvidos. O trabalho
utilizado nesse artigo para importar os conceitos de uma ontologia de organização
[17] é um exemplo disso. Nele, é feita uma reengenharia da Ontologia de Organização
de Software baseada na UFO. Ainda baseada na UFO, Falbo e Nardi [18]
desenvolveram uma Ontologia de Requisitos de Software. Em ambos os casos, os
problemas ontológicos foram identificados e resolvidos usando UFO, como neste
trabalho.
Em Guarino e Welty [19] foi desenvolvida a metodogia OntoClean. OntoClean é
uma metodologia para modelagem conceitual baseado em ontologia, independente de
domínio que tem como objetivo prover orientações sobre quais tipos de decisões de
ordem ontológica precisam ser feitas, e de como essas decisões podem ser avaliadas.
6. Considerações Finais
Neste artigo apresentamos a continuação do processo de reengenharia de um
fragmento da ontologia de processo. A ontologia de processo foi definida em [7] e o
processo de reengenharia teve início em [8]. A versão aqui apresentada da ontologia
foi obtida pelo alinhamento dos conceitos de sua versão original com os conceitos da
Ontologia Fundamental Unificada (UFO) e pela correção de alguns erros conceituais
da versão [8] com o intuito de cobrir os conceitos referentes ao planejamento de
projeto de software. O uso de UFO permitiu identificar diversos problemas e conduzir
a reengenharia da ontologia, explicitando os compromissos ontológicos que estavam
implícitos e elucidar erros conceituais.
Tal processo explicitou a diferença entre os diversos tipos de processo que existem
ao longo do planejamento de um projeto de software. Ficou claro que um processo
padrão é uma descrição normativa reconhecida pela organização. Enquanto que na
definição do processo de projeto, foi possível perceber as diferenças do processo de
projeto enquanto um compromisso interno da organização e como isso é afetado
quando se define um cronograma para o processo do projeto ou quando um recurso é
alocado para uma atividade.
O processo de reengenharia da ontologia de processo fez-se necessário para que ela
seja utilizada como base para a integração de ferramentas que apóiam o planejamento
de projeto de software. Desta forma, como continuação deste trabalho, a ontologia
apresentada neste artigo será utilizada como a ontologia compartilhada durante a
integração de ferramentas.
Referencias
[1] PMI, A guide to the project management body of knowledge, 4 ed. Newtown Square Pa.:
Project Management Institute, 2008.
[2] A. R. C. Rocha, J. C. Maldonado and K. C. Weber Qualidade de Software – Teoria e
Prática.1st ed. São Paulo: Prentice Hall, 2001, pp 95-101.
[3] Izza, S. Integration of industrial information systems: from syntactic to semantic
integration approaches. Enterprise Information Systems, v. 3, n. 1, p. 1-57, fev. 2009.
[4] Guarino, N. Formal ontology in information systems. In: Formal Ontology in Information
Systems: Proceedings of the First International Conference (FOIS'98), June 6-8, Trento,
Italy. Anais... . p.3, 1998.
[5] Guizzardi, G., Theoretical Foundations and Engineering Tools for Building Ontologies as
Reference Conceptual Models, Semantic Web Journal, Editors-in-Chief: Pascal Hitzler and
Krzysztof Janowicz, IOS Press, Amsterdam (Forthcoming).
[6] Guizzardi, G., Ontological Foundations for Structural Conceptual Models, Telematica
Intutuut Fundamental Researcj Series no. 15, The Netherlands, 2005, ISBN 90-75176-813.
[7] Falbo, R.; Bertollo, G., Establishing a Common Vocabulary for Helping Organizations to
Understand Software Processes, Proceedings of the 1st Workshop on Vocabularies,
Ontologies and Rules for The Enterprise (VORTE), Enschede, The Netherlands, ISSN
1574-0846, 2005. 1.
[8] Guizzardi, G., Falbo, R.A., Guizzardi, R.S.S., "Grounding software domain ontologies in
the Unified Foundational Ontology (UFO): the case of the ODE software process
ontology", In Proceedings of the XI Iberoamerican Workshop on Requirements
Engineering and Software Environments, 244-251, 2008.
[9] Pressman,
[10] Fuggeta
[11] Falbo, R. A., Integração de Conhecimento em um Ambiente de Desenvolvimento de
Software, 1998. Tese de Doutorado. Programa de Engenharia de Sistemas e Computação
da COPPE, Universidade Federal do Rio de Janeiro.
[12] Gido, J., Clements, J. P., Successful Project Management, 3rd Ed Mason OH:
Thomson/South-Western, 2006.
[13] Bartié, A. Garantia da Qualidade de Software. Ed Campus, 2002.
[14] Guizzardi, R., Guizzardi, G., Ontology-based Transformation Framework from Tropos to
AORML In Social Modeling for Requirements Engineering, P. Giorgini, N. Maiden, J.
Mylopoulos, E. Yu (eds.), Cooperative Information Systems Series, MIT Press, Boston,
2011 (forthcoming).
[15] Zamborline, V. C., Estudo de Alternativas de Mapeamentos de Ontologias de Linguagem
OntoUML para OWL: Abordagens para Representação de Informação Tempora, 2011.
[16] Barcelos, M.P., Falbo, R.A., Dalmoro, R., "A well-founded software measurement
ontology", In Proceedings of the 6th International Conference on Formal Ontology in
Information Systems (FOIS 2010), Toronto - Canadá, 2010.
[17] Barcellos, M.P., Falbo, R.A., Using a Foundational Ontology for Reengineering a
Software Enterprise Ontology In: The Joint International Workshop on Metamodels,
Ontologies, Semantic Technologies and Information Systems for the Semantic Web,
Gramado, Brazil. Advances in Conceptual Modeling - Challenging Perspectives, Lecture
Notes in Computer Science 5833, 2009. p. 179-188.
[18] Falbo, R. A., Nardi, J. C.: Evolving a Software Requirements Ontology. XXXIV
Conferencia Latinoamericana de Informática, Santa Fe, Argentina, pp 300-309 (2008).
[19] Guarino, N., Welty, C.: Evaluating Ontological Decisions with OntoClean.
Communications of the ACM, 45(2): 61-65 (2002).
Download