• Nenhum resultado encontrado

Modeling Context in Software Reuse Modeling Context in Software Reuse

N/A
N/A
Protected

Academic year: 2022

Share "Modeling Context in Software Reuse Modeling Context in Software Reuse"

Copied!
42
0
0

Texto

(1)

Eduardo Cruz Vaninha Vieira Eduardo Almeida Silvio Meira Ana Carolina Salgado Patrick Brézillon

ecrs@cin.ufpe.br vvs@cin.ufpe.br esa2@cin.ufpe.br srlm@cin.ufpe.br acs@cin.ufpe.br

brezil@poleia.lip6.fr

Modeling Context in Software Reuse Modeling Context in Software Reuse

Roskilde, Denmark August 2007

(2)

Outline

¾Motivation and Problem Statement

¾Our Proposal

¾Context in Software Engineering

¾Modeling Context

¾Final Considerations

(3)

Outline

¾Motivation and Problem Statement

¾Our Proposal

¾Context in Software Engineering

¾Modeling Context

¾Final Considerations

(4)

Software Reuse

¾Main purpose

9No need to write from scratch every time 9Developers can use pre-built components

¾Benefits

developer’s efforts and software costs software quality

¾Example: Security Systems

ƒ Authentication

(5)

Components Repositories

¾A large number of software components are now available in repositories

¾There exists already a component market

(6)

ComponentSource.com

¾ Pioneer of the market for reusable software components (founded in 1995)

¾ Thousand of components can be

assembled in different

contexts

(7)

Koders.com

¾User can have access to 700 million lines of code

(8)

Problem with Components Repositories

¾ More components you have, more difficult to find the right one you need

¾ Not easy to find useful information without the context of the user and the task at hand

¾ Components are stored out of their contexts of use

9 Context of the component developer may be different from context of who will use component

Components must be searched and assembled not only by their content,

(9)

So, the problem is…

¾Too much information available

¾Too few contextual information to define the appropriate

component to

support user’s task

(10)

Outline

¾Motivation and Problem Statement

¾Our Proposal

¾Context in Software Engineering

¾Modeling Context

¾Final Considerations

(11)

Context in Software Engineering

¾In software engineering, context is identified by contextual elements

¾Contextual elements are related to:

9Roles of each user

9Tasks in the software development process 9Asset themselves

9The User Environment

(12)

Focus on the User Role

¾Roles considered to define contextual elements:

9Project manager 9Software Architect 9Software Developer

9Configuration Manager

9Software Quality Engineer 9Software Tester

(13)

Focus on the Task at Hand

¾Tasks considered to define contextual elements:

9Requirements Elicitation 9Software Design

9Software Programming 9Software Testing

9Project Management

9Configuration Management 9Software Quality Assurance

(14)

Focus on the Aset Type

¾Asset types considered to define contextual elements:

9Requirements 9Source Code

9Unit Test Cases 9Project Plan

9Configuration Management Plan 9Quality Assurance Plan

(15)

Focus on the User Environment

¾User Environments types considered to define contextual elements:

9Programming IDE 9Text Processor

9UML Modelling Tool 9Web Interface

(16)

Outline

¾Motivation and Problem Statement

¾Our Proposal

¾Context in Software Engineering

¾Modeling Context

¾Final Considerations

(17)

Modeling Context

¾For our domain (Software Reuse) we

considered context related to: user role,

user environment, user task and the assets themselves

¾There are many ways to model the problem.

Our approach focused on modeling using the user role to define a user centered

model

(18)

Modeling Context – Steps

1. Identification of relevant issues

1. Roles

2. Groups of activities for each role 3. Levels of abstraction for artifacts 4. External knowledge for the domain 5. Contextual Knowledge

2. Group Contextual Elements

3. Define possible focus to groups of contextual elements 4. Use the focus to match the user context

(19)

¾Examples

of contextual attributes

related

to the user role level of abstraction

(20)

Examples

¾Some examples of how to use the modeled context attributes

(21)

EXAMPLE - 1

¾ User Role – Programmer

¾ User Environment – Eclipse IDE

¾ Activity – Debugging Software

¾ Contextual elements identified – Programming language=Java; Project=JContactPhone;

License=GPL; Domain=Mobile

¾Conclusion – A programmer debugging software needs examples of code in java Mobile (J2ME) code with GPL license

(22)

EXAMPLE - 2

¾ User Role – Architect

¾ User Environment – Borland Together

¾ Activity – Modeling a class diagram

¾ Contextual elements identified – UML Diagram=Class;

Project=ChessGame; Domain=Games;

GameType=BoardGame

¾Conclusion – An architect drawing a class diagram for a board game needs examples of diagrams in the same domain and of the same type

(23)

EXAMPLE - 3

¾ User Role – Test Engineer

¾ User Environment – Microsoft Word

¾ Activity – Writing Security Test Project

¾ Contextual elements identified – Domain=Infrastructure/Security;

¾Conclusion – An Test Engineer is writing a test project and needs examples of test

cases related to test security properties of a system

(24)

Outline

¾Motivation and Problem Statement

¾Our Proposal

¾Context in Software Engineering

¾Modeling Context

¾Final Considerations

(25)

Our Goals

¾Make Context Explicit

¾Change the paradigm {problem,solution} for {problem, context, solution}

¾Apply context to improve software reuse

(26)

Our Proposal

¾Apply the concepts of context-management to improve software reuse in the software development cycle.

¾Integrate a context manager (CEManTIKA) with a software component manager (BART)

(27)

B.A.R.T. Search Engine

¾ B.A.RT. - Basic Asset Retrieval Tool

¾ Asset is any reusable software artifact

9 Components, framework, documents, source code, tests

¾ Currently do not consider the context of use

¾ Multiple Search Clients

9 Eclipse IDE (Java Source Code) 9 Microsoft Word (Word Documents) 9 Microsoft Visual Studio (C#)

9 Web (java, pdf, doc, ppt, xls, c#)

(28)

SOME EXAMPLES OF OUR SEARCH CLIENTS

(29)

Contextual Elements

Management Through

Incremental Knowledge Acquisition

Context Context Manager Manager Methodology

Methodology

Context Context

Model Model

Context Context Aware Aware System System B.A.R.T.

B.A.R.T.

System System B.A.R.T. + CEManTIKA

(30)

Knowledge relevant to the focus but not directly considered in it

Stored in a CKB, supports PC building but it’s not used in the task

Part of context that has no relation with the current focus

It’s not considered by the context manager Part of CK that is invoked, organized, structured and situated according to a focus. Used to support the task at hand.

Built and managed by the context manager

“Context is always related to a focus”

Refers to what the user is doing Ex. task, step in a problem solving

Conceptual View of Context

(Brézillon and Pomerol, 1999)

Focus

Proceduralized Context

Contextual Knowledge

Software

Development

Expertise: Java; UML

Team: Carlos and André

Presence: on; off

schedule expertise

experience

reputation

ability team

presence

availability

Marital State

External Knowledge

(31)

Proposed Architecture

¾Create Software Components

Software Component Repository

COMPONENT X

COMPONENT Y

(32)

Proposed Architecture

¾Create Contextual Elements

Context

LANGUAGE

AUTHOR

LICENSE

(33)

Proposed Architecture

¾ Define Focus and Group Contextual Elements

Context Manager

LANGUAGE

AUTHOR

LICENSE

Focus: Artifacts by Language and

Author

(34)

Proposed Architecture

¾Apply Context Elements to Software Components

COMPONENT X

COMPONENT Y

LANGUAGE: FRENCH AUTHOR: PIERRE

LICENSE: GPL

(35)

Proposed Architecture

¾Select Artifacts by Focus

Software Component Repository

COMPONENT X

COMPONENT Y

LANGUAGE: FRENCH AUTHOR: PIERRE

LICENSE: GPL

Context Manager

LANGUAGE

AUTHOR

LICENSE

Artifacts by Language

and Author

?

(36)

Contextual elements are

stored apart and

related to software

assets

depending on the focus

Architecture

(37)

Outline

¾Motivation and Problem Statement

¾Our Proposal

¾Context in Software Engineering

¾Modeling Context

¾Final Considerations

(38)

Some Lessons Learned

¾ Information might be implicitly extracted by the system

9 i.e.: User environment, programming language

¾ Information might also be explicitly asked for the user

9 i.e.: The User Role

¾ It is easier to model and identify attributes

¾ It is harder to model and identify activities. The user activity history should be considered.

(39)

Main Points

¾Contextual elements might be:

9The User task. (Write a Program or Write a Document)

9The User Role. (Project Manager or Programmer)

9Asset Attributes. (Author or Language)

9User Environment. (Programming IDE or Text Editor)

¾With explicit context we can improve the semantic interaction between the user and the system

(40)

Perspectives / Future Work

¾Model the contextual elements according to CEManTIKA’s generic context model

¾Define rules for context conflict resolution

¾Two parts in the context:

9a domain-dependent part represented by the contextual elements

9a domain-independent part with the context manager and all its mechanisms

(41)

Eduardo Cruz Vaninha Vieira Eduardo Almeida Silvio Meira Ana Carolina Salgado Patrick Brézillon

ecrs@cin.ufpe.br vvs@cin.ufpe.br esa2@cin.ufpe.br srlm@cin.ufpe.br acs@cin.ufpe.br

brezil@poleia.lip6.fr

Modeling Context in Software Reuse Modeling Context in Software Reuse

Roskilde, Denmark August 2007

(42)

Acknowledgments

¾LIP6 - Laboratoire d'informatique de Paris 6, France

¾CESAR – Recife Center for advanced Studies, Brazil

Referências

Documentos relacionados

Outro fator que contribuiu para a permanência das famílias no assentamento foram os programas sociais, como o programa um milhão de cisternas (P1MC), que atendeu às

Adicionalmente, as estratégias do Estado uma vez mais não têm conseguido terminar com a guerra e a violência, mas têm alterado as dinâmicas do conflito

A caracterização dos diferentes tipos celulares no ovário quanto a replicação de DNA, evidenciaram uma intensa atividade proliferativa das células foliculares para envolver

• Trazendo a recursividade para o nosso cotidiano um ótimo exemplo está na ação de contar um saco de moedas, onde a cada ato de retirar uma moeda do saco precisa-se “contar

BAC004-Informática-Teórica-Fabiana C Guedes 4 Comandos de Seleção - Simples  Forma Geral if (expressão) comando1;.. Expressão da Condição deve estar

Portanto, percebe-se o interesse expressivo do Estado, primeiramente através da representação criada por meio do Núcleo Estadual de Apoio ao Desenvolvimento dos Arranjos

Entre os fatores que contribuem para o regresso da amamentação, destacamse os seguintes: - A ampliação numérica desestimulando a amamentação, conjugando o seio exclusivamente

Outras medidas se referem à parte direcionada diretamente ao trabalhador, como a execução periódica de treinamentos sobre temas pertinentes a saúde auditiva; encaminhar os