820 likes | 945 Views
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
E N D
UML4SPM(Software Process Modeling) DaviJunio S. de Oliveira davi@ufpa.br TópicosAvançadosemEngenharia de Software 3 28/05/2008
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
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;
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;
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];
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;
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;
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?
LINGUAGUEM DE MODELAGEM DE PROCESSO • Semântica Rica • ConstruçõesAvançadas: • Entendível • CódigoouNotação Visual?
LINGUAGUEM DE MODELAGEM DE PROCESSO • Precisão; • DependedaGranulidade • Executável; • Modularização; • Capacidade de combinardiferentes pedaços de processosparaformar um novo processo.
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;
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;
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
LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Ferramentas • Rational Process WorkBench; • Iris Suite; • SPEM Profile;
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;
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;
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;
LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Ferramentas • Eclipse Process Framework; • Rational Method Composer; • PRO3;
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;
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;
LINGUAGUENS DE MODELAGEM DE PROCESSO BASEADAS EM UML • Precisão • Executabilidade • Todososdiagramaspodem ser traduzidosparacódigodesdequecontenhaminformaçõessuficientes; • Modularização??? • Ferramentas
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);
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???;
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
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;
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);
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???
UML4SPM • Baseadaem UML2; • Linguagem de Modelagem e Execuçãode processos de software; • MOF Compliant Metamodelextendendo UML Superstructure;
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;
UML4SPM - Metamodel • UML4SPM_FOUNDATION; • UML4SPM_EXTENSIONS;
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;
Process Element Kind • Descrição: Metaclasseparadefinição de tipos de elementos de processosespecíficos; • Generalização: • Atributos: • name: String; • Associações: • Restrições:
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:
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:
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:
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]
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
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:
Priority Kind • Descrição: Enumeraçãoque define a prioridadeda Software Activity dentro do processo; • Low; • Medium; • High; • Generalização: • Atributos: • Associações: • Restrições:
Complexity Kind • Descrição: Enumeraçãoque define a complexidadeda Software Activity dentro do processo; • Easy; • Medium; • Difficult; • Generalização: • Atributos: • Associações: • Restrições:
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;