1 / 82

UML4SPM (Software Process Modeling)

UML4SPM (Software Process Modeling). Davi Junio S. de Oliveira davi@ufpa.br. Tópicos Avançados em Engenharia de Software 3. 28/05/2008. AGENDA. Motivação Processo de Software e Meta- Processo de Software Modelo de Processo de Software Conceito Objetivos

cara
Download Presentation

UML4SPM (Software Process Modeling)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UML4SPM(Software Process Modeling) DaviJunio S. de Oliveira davi@ufpa.br TópicosAvançadosemEngenharia de Software 3 28/05/2008

  2. AGENDA • Motivação • Processo de Software e Meta-Processo de Software • Modelo de Processo de Software • Conceito • Objetivos • Linguagem de Modelagem de Processo • Linguagens de Modelagem de Processo baseadas em UML • Spem1.1 • Spem2 • Di Nitto • PROMENADE • Shih-ChienChous • UML4SPM • Metamodelo • Process Structure Package • Element Process Package • Foundation Package • Notação UML4SPM • Avaliaçãoda UML4SPM • Avaliaçãoda UML4SPM com ISPW-6

  3. MOTIVAÇÃO • Preocupaçãoemadministrar a complexidadegeradapelasatividades do Ciclo de Vida de Desenvolvimento de Software; • Os modelos de CVDS (SDLC) tem um granularidadegrossa; • Criarpequenasatividades com um nível de detalhamentomaisexplícito e preciso;

  4. PROCESSO E META-PROCESSO • Processo de Desenvolvimento de Software: O conjunto total de atividades de Engenharia de Software necessáriasparatransformarrequisitos de usuárioem software[Humphrey]; • Meta-Processo: Consisteematividades de modelagem do processo, administração do processo, suporteparaexecução e melhoramentodeste;

  5. MODELO DE PROCESSO SOFTWARE - CONCEITO • Um Modelo de Processo é umadescriçãoabstrata de um processopropostoquerepresentaelementos do processoselecionadoquesãoconsideradosimportantespara a finalidade do modelo e podem ser executadospor um humanoouporumamáquina [Curtis 92]; • Representaumasequência de atividades, objetos etransformaçõesquecompõe a estratégiapara a execução do desenvolvimento do software [Scacchi];

  6. MODELO DE PROCESSO SOFTWARE - OBJETIVOS • Facilitar e Suportar o desenvolvimento de software de altaqualidade e baixocusto; • Facilidade de Comunicação e Entendimentohumano; • Facilidade de reuso do processo; • Suporte a melhorias no processo; • Suporte a administração do processo; • Automatização do andamento do processo;

  7. LINGUAGUEM DE MODELAGEM DE PROCESSO - CONCEITO • É umalinguagemusadaparaexpressarmodelos de processos [Zamli]; • Uma LMP pode ser vista comoumalinguagem de modelagemoucomoumalinguagem de programação; • A abrangênciadalinguagemdepende dos seusobjetivos e metas do modeloresultante; • O nível de entendimento, precisão e usabilidade de um modelo de processodependemdiretamenteda LMP usadaparadescrevé-lo;

  8. LINGUAGUEM DE MODELAGEM DE PROCESSO • Semântica Rica • Elementos do Processo: Agentes, Regras, Atividades (Passos) , Artefatos e Ferramentas; • Coordenação das Ações e Atividades: • ControlesProativos : Control Flow e Object Flow; • ControlesReativos: Exception, Event Handling; • Tratadores de Exceção; • Isso é modelagem de processo oudesenvolvimento de software?

  9. LINGUAGUEM DE MODELAGEM DE PROCESSO • Semântica Rica • ConstruçõesAvançadas: • Entendível • CódigoouNotação Visual?

  10. LINGUAGUEM DE MODELAGEM DE PROCESSO • Precisão; • DependedaGranulidade • Executável; • Modularização; • Capacidade de combinardiferentes pedaços de processosparaformar um novo processo.

  11. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • SPEM 1.1 (Software Process Engineering Metamodel - OMG) • UML 1.4 Profile; • MOF 1.3 Compliant; • SPEM_FOUNDATION E SPEM_EXTENSIONS • Process Structure Package;

  12. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML

  13. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Semântica Rica • Elementos do Processo • Activity; • Work Product ; • Process Role; • Human, Agent, Tool??? • Coordenação de Atividades e Ações; • ControlesProativos: start-start, finish-start, finish-finish; • ControlesReativos??? • Tratadores de Exceções???; • ConstrutoresAvançados; • Loops e Condicionais??? • Phase e iteration;

  14. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Entendível • Precisão • Phase, Lifecycle, Iteration, WorkDefinition, Step; • Executabilidade • O conceito de passo é impreciso… • Modularização • ProcessComponent

  15. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML

  16. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Ferramentas • Rational Process WorkBench; • Iris Suite; • SPEM Profile;

  17. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • SPEM 2 (Software Process Engineering Metamodel - OMG) • UML 2 Superstructure Profile ; • MOF 2 Compliant extendendo UML Infrastructure; • Nãodefinirestrições OCL;

  18. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML

  19. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Semântica Rica • Elementos do Processo • Role Uses, Activities, Work Product Uses, etc; • Agent e Tool; • Coordenação de Atividades e Ações; • ControlesProativos; • ContolesReativos: WorkSequenceKind; • Tratadores de Exceções????; • ConstrutoresAvançados; • Extensible Element;

  20. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Entendível • Muitocomplexo; • Precisão • Executabilidade • O padrãonãoespecificauma forma; • Process Behavior Package; • Modularização • Activity Use Kind; • Process Component;

  21. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Ferramentas • Eclipse Process Framework; • Rational Method Composer; • PRO3;

  22. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Di Nitto (International Conference of Software Engineering 2002) • Subconjunto de UML 1.3 comouma LMP executável; • Duasfases, primeirafase é realizadaatravésdadescrição do processousandodiagramas UML, nasegundafaseosdiagramassãotraduzidosemcódigo;

  23. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML

  24. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Semântica Rica • Elementos do Processo • Tool, Role???? • Coordenação de Atividades e Ações; • Active Controls; • Reactive Controls???; • Tratadores de Exceções???; • ConstrutoresAvançados???; • Entendível • Nãoexistemmecanismos de ligação de doisdiagramas; • Nãoexiste o conceito de composição no diagrama de atividades; • O uso de diagramas de estadosdificultam a leitura de pessoasquenãoestãoacostumadas a eles;

  25. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Precisão • Executabilidade • Todososdiagramaspodem ser traduzidosparacódigodesdequecontenhaminformaçõessuficientes; • Modularização??? • Ferramentas

  26. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • PROMENADE (PROcess-oriented Modelling and Enactement of Software DEvelopment) • ComProLab Project; • UML 1.3; • Duaspartes, primeirafase é estática, realiza a descrição do processousandodiagramas UML, a segundafase é dinânmica, estabelece a sequência das atividades a seremexecutadas (Gráfico de Precendência);

  27. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML

  28. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Semântica Rica • Elementos do Processo • Coordenação de Atividades e Ações; • Strong; • Weak; • Synchronizing; • Tratadores de Exceções; • CompleteUnsucc (Diagrama de Estados); • ConstrutoresAvançados???;

  29. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Entendível • Processo simples, usa o diagrama de classepararepresentaroselementos do processo e o diagrama de precedênciapararepresentar a ordem de execução das tarefas; • Como integrar??? • Precisão • Únicaunidade de trabalho, Task; • Executabilidade??? • Modularização

  30. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Shih-ChienChous • National Science Council of Taiwan; • UML 1.4; • Duaspartes, representar a descrição do processousandodiagramas UML, mapear a descriçãopara um linguagememformatolegívelpormáquina;

  31. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML

  32. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Semântica Rica • Elementos do Processo • Activity, Role, Tool; • Agent??? • Coordenação de Atividades e Ações; • Active Controls; • Reactive Controls??? • Tratadores de Exceções; • Representado no P-activity comoumaatividade; • ConstrutoresAvançados???; • Branch e Loop (Gramática BNF);

  33. LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Entendível • Nãoexisteligação entre osdoisdiagramaspropostos; • Precisão • Activity • Executabilidade • Nãoexisteferramentaparageraçãoautomática de um programa do processo; • Modularização???

  34. UML4SPM • Baseadaem UML2; • Linguagem de Modelagem e Execuçãode processos de software; • MOF Compliant Metamodelextendendo UML Superstructure;

  35. UML4SPM • Aumentar o nível de abstração, e porconsequênciaelevar o nível de entendimentodalinguagem, possibilitandoassim a compreensãodesteporprofissionaisquenãosão de ciênciadacomputação; • Usar um formalismobemconhecido e padrão; • Modelo de ProcessoExecutável;

  36. UML4SPM - Metamodel • UML4SPM_FOUNDATION; • UML4SPM_EXTENSIONS;

  37. UML4SPM – Process Structure Package

  38. Process Element • Descrição: Metaclassepara Software Activities, Responsible Role e Work Products; • Generalização: • UML Superstructure::Kernel::Classifier; • Atributos: • description: String; • name: String (herdado de Classifier); • Associações: • Kind: Process Element Kind [0..1] • Restrições: Um process element kind nãopode ser reusadopordiferentes subclasses de process element;

  39. UML4SPM – Process Element

  40. Process Element Kind • Descrição: Metaclasseparadefinição de tipos de elementos de processosespecíficos; • Generalização: • Atributos: • name: String; • Associações: • Restrições:

  41. Software Activity Kind • Descrição: Metaclasseparadefinição de tipos de atividades de software específicos; • Generalização: Process Element Kind; • Atributos: • name: String (Process Element Kind); • Associações: • Restrições:

  42. Work Product Kind • Descrição: Metaclasseparadefinição de tipos de produtos de trabalhoespecíficos; • Generalização: Process Element Kind; • Atributos: • name: String (Process Element Kind); • Associações: • Restrições:

  43. Responsible Role Kind • Descrição: Metaclasseparadefinição de tipos de responsabilidadesespecíficos; • Generalização: Process Element Kind; • Atributos: • name: String (Process Element Kind); • Associações: • Restrições:

  44. Software Activity • Descrição: Descreve o esforçooupedaço de trabalhoquedeve ser executadodurante o processo de desenvolvimento de software; • Generalização: • Process Element • UML Superstructure::Activities::Activity; • Atributos: • name: String (Classifier); • description: String (Process Element); • executionKind: ActivityExecutionKind; • priority: PriorityKind; • complexity: ComplexityKind; • isInitial: Boolean; • duration: String; • Associações: • responsibleRoles: ResponsibleRole [1..N]; • softwareActivityKind: SoftwareActivityKind [0..1]

  45. Software Activity • Associações: • requires: Guidance [0..N]; • startAt: TimeLimit [0..1] • endAt: TimeLimit [0..1] • Restrições: Somenteuma Software Activity pode ser isInitial=true contextModelinv: self.allOwnedElement()->select(oclIsKindOf(SoftwareActivity))->select(sa | sa.isInitial)->size()=1

  46. Software Activity

  47. Activity Execution Kind • Descrição: Enumeraçãoque define ostipos de execução de uma Software Activity • machineExecution; • humanExecution; • Generalização: • Atributos: • Associações: • Restrições:

  48. Priority Kind • Descrição: Enumeraçãoque define a prioridadeda Software Activity dentro do processo; • Low; • Medium; • High; • Generalização: • Atributos: • Associações: • Restrições:

  49. Complexity Kind • Descrição: Enumeraçãoque define a complexidadeda Software Activity dentro do processo; • Easy; • Medium; • Difficult; • Generalização: • Atributos: • Associações: • Restrições:

  50. Responsible Role • Descrição: Define responsabilidades e habilidadesnecessáriasparaexecutaruma Software Activity. Também é responsávelpelarealização do Work Product; • Generalização: • Process Element; • Atributos: • name: String (Classifier); • description: String (Process Element); • responsibility: String; • qualification: String; • rights: String;

More Related