180 likes | 289 Views
Metamodelo de Artefatos de Software. Toacy Oliveira 2 toacy@acm.org. Ricardo Bastos 3 bastos@pucrs.br. Marcos Silva 1 mtsilva@inf.puc-rio.br. 1 Pontifícia Universidade Católica do Rio de Janeiro ( PUC-Rio ) 2 School of Computer Science – University of Waterloo
E N D
Metamodelo de Artefatos de Software Toacy Oliveira2 toacy@acm.org Ricardo Bastos3 bastos@pucrs.br Marcos Silva1 mtsilva@inf.puc-rio.br 1Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) 2School ofComputerScience – Universityof Waterloo 3Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) 14 de outubro de 2014
Visão Geral • Processo de Desenvolvimento de Software Papéis Atividades Artefatos I. Sommerville, Software Engineering (7th Edition). Pearson Addison Wesley, 2004. Informações Pessoas
Problema • Após algum tempo, como descobrir: Mas isso é ruim? Por que? O que? Quando? Quem? Artefato Como? Onde?
Motivação • Realidade: Artefatos são aglomerados de informações • Objetivo: Elaborar uma representação que permita enxergar os Artefatos de Software como entidades “estruturadas”. + Dificuldades: D1: Inconsistência da Informação D2:Reutilização de Informações D3:Versionamento MetamodeloMOF Repository + UML + SPEM Informações Artefatos
Solução 1 <<reflect>> Class (from MOF) Extent (from MOF) VersionedExtent (from MOF Versioning) M3 meta meta-model <<instanceOf>> <<instanceOf>> <<instanceOf>> WorkProduct (from SPEM) 3 Image List Text Definition Layer 2 M2 meta-model Artifact Information * 1..* <<instanceOf>> <<instanceOf>> <<instanceOf>> M1 model Use Layer 1..* Vision Requirement Stakeholder 1..* <<instanceOf>> <<instanceOf>> <<instanceOf>> <<instanceOf>> <<instanceOf>> M0 real instances Marcos S. Vision Project Layer Toacy O. PrintReceipt PaywithDebitCard
D1: Inconsistência da Informação WorkProductDefinition (from SPEM) Extensão SPEM ArtifactDefinition * 1..* isExternal:Boolean Akind:ArtifactKind Fragment_Relationship FragmentDefinition /fragment * ContainerFragment_Relationship ArtifactFragment_Relationship * . . * * 1..* Relacionamentos ArtifactContainer_Relationship ContainerDefinition /parent /children * * * WorkProductDefinitionRelationship (from SPEM) ContainerDefinition_Relationship
D2: Reutilização de Informações Composição de Informações • Metamodelo para estruturar a informação Tipos de informação mais comuns Ponto de extensão parent internalContents * SimpleInformationElement Group contents * * children Text List value:String isLabeled: String isOrdered: String isEnumerated:String Image caption: String Path: String Label:String ComplexInformationElement orderByAZ() orderByZA() * Diagram SpecificInformationElement
Exemplo a) Concept b) Structure c) Model <<defines>> <<realizes>> I) Vision 1. Introduction 1.1 Purpose 1.2 Scope ... 4. Stakeholders 4.1 Stakeholder 1 2.2 Problema II)UC-Spec. 1.Description 2.Flow of Events ... 4.Preconditions 4.1 Precondition 1 ... III) Glossary ... 2. Terms, Abbreviations Vision name purpose Artifacts scope Glossary Containers Commons Descriptors Use-Case Definition Text Referenced Artifacts Informations List Group Types D1 Associations D2 D3
D 2,5: Rastreabilidade • Quem? O que? Quando? Como? Onde? Papéis Atividades Pessoas Artefatos D1 D2 D2,5 D3 Informações
D3: Versionamento Revisions Revision: 0 1st Commit Revision: 1 Modifications at M2, M1, M0 Revision: 2 Modifications at M1 and M0 Text Artifact Artifact Artifact name: String Metamodel v1.0 Metamodel v2.0 value: String name: String mandatory: Boolean name: String mandatory: Boolean Tool Vendor M2 meta-model Process Engineer Software Engineer Process v1.0 Process v2.0 Process v3.0 UseCase Specification UseCase Specification Glossary UseCase Specification Terms Glossary M1 model <<content>> mandatory=true <<content>> Glossary Login CRUD mandatory=false mandatory=true mandatory=true Logoff Project A Project B Project C Use-Case Specification Use-Case Specification Use-Case ... Glossary M0 real instances Glossary (notcreated) Terms Glossary D1 D2 D2,5 D3
Avaliação: Procedimento 3 – Enactment(Instância de Processo) Modelagem de Artefatos RUP e Scrum 2 – Tailoring(Família) 1 – Authoring(Processo) MethodContent ProcessStructure Project Library File SVN Ferramenta + MethodContent, ProcessStructure
Avaliação: Comparações • Exame analítico em relação a: • Estruturação • Organização • Rastreabilidade • Reutilização • Redundância • Versionamento
Contribuição • No contexto de uma solução com artefatos de software bem estruturados: • Metamodelo que define como modelar Processos de Desenvolvimento de Software • Eclipse plugin “apoiar a modelagem desses processos (SwAT)” • http://code.google.com/p/spemarti • - Guia de Modelagem • - Regras para Boa Estruturação e Reutilização • - Metamodelo SPEM2xt • - UML Profile • - SwAT (Software ArtifactSpecificationTool) • - Exemplos de Utilização
Conclusão O paradigma atual não se preocupa com essa situação. Entretanto, a solução obteve sucesso nos objetivos, alterando o paradigma de utilização das informações em PDSs. • + avaliação (estudo de caso, experimentos) • Observar Variabilidades na modelagem Processos • Fazer análise comportamental dos Artefatos
Obrigado! zero.ufal@gmail.com
Software Artifact Metamodel Toacy Oliveira2 toacy@acm.org Ricardo Bastos3 bastos@pucrs.br Marcos Silva1 mtsilva@inf.puc-rio.br 1Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) 2School ofComputerScience – Universityof Waterloo 3Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) 14 de outubro de 2014