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).