A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Processos de Software Prof. Alexandre Vasconcelos Adaptado a partir de slides produzidos por Augusto Sampaio 1/27.

Apresentações semelhantes


Apresentação em tema: "Processos de Software Prof. Alexandre Vasconcelos Adaptado a partir de slides produzidos por Augusto Sampaio 1/27."— Transcrição da apresentação:

1 Processos de Software Prof. Alexandre Vasconcelos Adaptado a partir de slides produzidos por Augusto Sampaio 1/27

2 Processo Ação regular e contínua (ou sucessão de ações) realizada de forma bem definida, levando a um resultado [Oxford English Dictionary] Conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivo [Feiler & Humphrey] Define quem está fazendo o que, quando e como para atingir um certo objetivo [Jacobson, Booch, Rumbaugh] 2/27

3 Processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento de um sistema de software –Exemplo de Atividades: Especificação, Projeto, Validação, Evolução Processos tradicionais –RUP, OPEN, Catalysis Processos ágeis (mais leves) –XP, Agile modeling, Crystal, FDD, Scrum,... Processo híbrido: OPENUP 3/27

4 Processo de software: pontos de consenso Iteratividade Participação de usuários Flexibilidade de configuração para projetos específicos Comunicação entre membros da equipe 4/27

5 5/27 Processo de software: pontos de divergência Nível de detalhamento de atividades a serem seguidas Critério de conclusão da execução das atividades Arquitetura robusta (RUP) Arquitetura para o contexto da iteração atual (agile modeling) Rigor na atribuição de tarefas a responsáveis workers (RUP) alocação sob demanda e interesse (XP) Artefatos (documentação) gerados Nível de Automação Nível de (im)pessoalidade

6 6/27 Processo de software: polêmica Se a tendência é processos leves, afinal o desenvolvimento de software é Arte+Sociologia+Psicologia+... –ou Lógica+Modelos+Engenharia+...??? E todo o esforço de consolidação da Engenharia de Software como uma ciência exata??? Compromisso Balancing agility and discipline

7 Processo versus metodologia Alguns autores consideram que processos incluem –uma metodologia –pessoas –tecnologia (suporte de ferramentas) Outros consideram que uma metodologia é a especialização de um processo com um conjunto de métodos 7/27

8 Modelo de Processo É uma representação de um processo, usualmente envolvendo –atividades a serem realizadas –agentes que realizam as atividades –artefatos (produtos) gerados –recursos necessários (consumidos) 8/27

9 Modelo de Processo Um modelo é usado para entendimento e comunicação do processo, e como base para análise, execução, gerência e melhoria do processo A descrição deve ser apresentada em diferentes níveis de abstração Idealmente a descrição deve ser formal e completa para permitir, por exemplo, automação 9/27

10 Modelo de Processo O formalismo utilizado para representar o processo é o ingrediente mais importante da modelagem Não parece haver consenso sobre um formalismo ideal –Terminologias distintas – ex: Fase, workflow, disciplina, atividade –Mas há esforço de padronização (SPEM e BPMN – OMG) 10/27

11 Modelo de Processo Formalismos podem ser classificados de várias formas –Orientado a produto ou à atividade –Diagramáticos ou Orientados a linguagens –... 11/27

12 Modelo de Processo Alguns exemplos de formalismos diagramáticos –Diagramas de transição de estados Máquina de estados finitos, statecharts –Técnicas de análise e projeto estruturados (SADT) –UML profiles e conceitos de OO SPEM – Software Process Engineering Metamodel (padrão OMG) –BPMN Business Process Modeling Notation (padrão OMG) –Petri nets 12/27

13 Modelo de Processo Alguns exemplos de formalismos orientados a linguagens –Linguagens de programação de processos Estendem uma linguagem de programação usual APPL/A é um exemplo (extensão de Ada) –Notações baseadas em regras e fatos Exemplo: extensões de Prolog –Notações que usam conceitos de OO Exemplo: uso de herança para relacionar um modelo de processo com instâncias 13/27

14 Modelos genéricos de processo de software Representação abstrata e simplificada do processo de desenvolvimento de software Exemplos:  Modelo cascata  Fases separadas e distintas de especificação e desenvolvimento.  Engenharia de software baseada em componentes  O sistema é montado a partir de componentes existentes.  Desenvolvimento iterativo  O sistema desenvolvido através de várias etapas (iterações) 14/27

15 Engenharia de Processo Em engenharia de software, o objetivo é o desenvolvimento de um produto de software Em engenharia de processos, o objetivo é desenvolvimento de um (modelo de) processo 15/27

16 Ciclo de vida de processos 16/27 Análise de requisitos Projeto (modelo) Instanciação Exemplo de ciclo de vida (meta-modelo) de processos AvaliaçãoExecuçãoSimulação Software processes are software too [Osterweil]

17 PSEE Um PSEE (Process-centred Software Engineering Environment) é um ambiente de desenvolvimento de software no qual os processos utilizados são definidos explicitamente pelo usuário e modelados no ambiente –Apóia a atividade de definir, monitorar e avaliar um processo para um projeto específico –Usualmente automatizam parte do processo e guiam o desenvolvedor –Alguns (poucos) ambientes suportam modificações dinâmicas no processo durante execução 17/27

18 PSEE PSEEs suportam e relacionam três disciplinas importantes –Engenharia de processos definição e evolução de modelos de processos (em geral independentes de projetos específicos) –Gerência de projetos criação de processos específicos para um projeto, coordenação e monitoramento das atividades de desenvolvimento (assegura que o processo é seguido) –Engenharia de software desenvolvimento e evolução de produtos de software 18/27

19 PSEE 19/27 Engenharia de software Gerência de projetos Engenharia de processos guia (ou enforcement) automação status, instanciação monitoramento mudanças (dinâmicas) status,... definição simulação métricas melhorias,... P S E E

20 PSEE 20/27 Visão geral do fluxo de dados Engenharia de processos Gerência de projetos Engenharia de software Requisitos do processo Requisitos do projeto e do produto Modelo do processo Processo de desenvolvimento software

21 PSEE Alguns ambientes comerciais –Process WEAVER (Cap Gemini) –SynerVision for SoftBench (HP) Ambos fornecem –Um formalismo apropriado para modelar processos –Especificação de atividades e ferramentas para execução automática –Mecanismo de agenda orientada a processos para os agentes 21/27

22 PSEE Alguns ambientes acadêmicos –Prism –Smart –Articulator –Dynamite –Spade –... 22/27

23 PSEE Esforço nacional –ExPSEE [Itana Gimenes-UEM] –Estação TABA [Guilherme Travassos- COPPE] –APSEE [Carla Reis-UFRGS] (no contexto do projeto ProSoft) – Imppros [Sandro Oliveira e Alexandre Vasconcelos-UFPE] 23/27

24 PSEE Pesquisa relacionada –CSCW (Computer-supported cooperative work) Como PSSE, natureza multidisciplinar: organizacional, humano, construção de sistemas Sistemas de CSCW podem prover parte da infra-estrutura de um PSEE –Sistemas de gerenciamento de Workflow Suportam processos organizacionais Semelhantes a PSSEs em vários aspectos –Tecnologia de banco de dados PSEE manipulam processos e relacionamentos que requerem padrões de acesso elaborados 24/27

25 Alguns Desafios Organizações oferecem forte resistência à implantação (ou modificação) de processos PSEEs exigem mudanças organizacionais ainda mais significativas (principalmente quando exigem aderência ao processo) –Resistência também por receio de avaliação individual como resultado dos dados coletados em PSEEs –Ainda não parece existir consenso sobre uma arquitetura para PSEEs (exemplo, projeto do repositório); mas há modelos de referência (NIST- ECMA) –Modelos de processos têm impacto direto em interface com usuário, granularidade e automação de atividades Modificações dinâmicas oferecem flexibilidade e podem ser uma solução (tópico atual de pesquisa) 25/27

26 Alguns temas de pesquisa Uso ou análise comparativa de notações para modelagem (representação) de processos Modelagem de processos (exemplo, RUP) em PSEE Projeto e implementação de PSEE Integração de processos (como RUP, XP,...) com modelos de qualidade (como CMMI) Análise comparativa entre processos ágeis e tradicionais Integração entre processos ágeis e tradicionais Adaptação de processos para novos paradigmas (exemplo: aspectos, agentes,...)... 26/27

27 Algumas referências Process-Centered Software Engineering Environments. P. K. Garg & M. Jazayeri. IEEE Computer Society Press The OPEN Process Specification. I. Graham, B. Henderson- Sellers & H. Younessi The Unified Software Development Process. I, Jacobson, G. Booch & J. Rumbaugh New Directions on Agile Methods: A Comparative Analysis. P. Abrahamsson, et al. ICSE´03. IEEE Press /27


Carregar ppt "Processos de Software Prof. Alexandre Vasconcelos Adaptado a partir de slides produzidos por Augusto Sampaio 1/27."

Apresentações semelhantes


Anúncios Google