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

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

1/22 Introdução aos Processos de Software © Alexandre Vasconcelos Centro de Informática da UFPE/ Qualiti Software.

Apresentações semelhantes


Apresentação em tema: "1/22 Introdução aos Processos de Software © Alexandre Vasconcelos Centro de Informática da UFPE/ Qualiti Software."— Transcrição da apresentação:

1 1/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software Processes

2 2/22 Processo n Uma ação regular e contínua (ou sucessão de ações) realizada de forma bem definida, levando a um resultado [Oxford English Dictionary] n Um conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivo [Feiler & Humphrey] n Define quem está fazendo o quê, quando e como para atingir um certo objetivo [Jacobson, Booch, Rumbaugh] n O termo ciclo de vida evoluiu para processo n Software processes are software too [Osterweil]

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

4 4/22 Padronização de processos n Ajuda a reduzir problemas de treinamento, revisões e ferramentas de apoio. n Com métodos padrões, cada experiência de projeto pode contribuir com a melhoria do processo como um todo. n Processos padronizados fornecem a base para medições de qualidade entre os projetos.

5 5/22 Modelo de processo n Uma representação de um processo, usualmente envolvendo u atividades a serem realizadas u agentes que realizam as atividades u artefatos (produtos) gerados u recursos necessários (consumidos)

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

7 7/22 Modelo de processo n O formalismo utilizado para representar o processo é o ingrediente mais importante da modelagem n Não parece haver consenso sobre um formalismo ideal u Terminologias distintas F Fase (Fusion), workflow (RUP), disciplina (RUP), atividade (conceito diferente no OPEN e no RUP) u Mas há um esforço de padronização (SPEM – OMG)

8 8/22 Modelo de processo n Formalismos podem ser classificados de várias formas u Diagramáticos u Orientados a linguagens u...

9 9/22 Modelo de processo n Alguns exemplos de formalismos diagramáticos u Diagramas de transição de estados F Máquina de estados finitos, statecharts u Técnicas de análise e projeto estruturados (SADT) u UML profiles e conceitos de OO F SPEM – Software Process Engineering Metamodel (padrão OMG) u Petri nets

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

11 11/22 Engenharia de Processos x Engenharia de Software x Gerência de Projetos n Engenharia de processos u definição e evolução de modelos de processos (em geral independentes de projetos específicos) n Engenharia de software u desenvolvimento e evolução de produtos de software n Gerência de projetos u criação de processos específicos para um projeto, coordenação e monitoramento das atividades de desenvolvimento (assegura que o processo é seguido)

12 12/22 Engenharia de Processos x Engenharia de Software x Gerência de Projetos 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,...

13 13/22 Engenharia de Processos x Engenharia de Software x Gerência de Projetos 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

14 14/22 Exemplos de processos n Processos tradicionais (pesados) u RUP, OPEN, Catalysis n Processos ágeis (leves) u XP, Agile modeling, Crystal

15 15/22 Exemplos de processos n Consenso em torno de u Iteratividade u Participação de usuários u Flexibilidade de configuração para projetos específicos u Comunicação entre membros da equipe

16 16/22 Exemplos de processos n Divergências u Detalhamento de atividades a serem seguidas u Ordem de execução das atividades F Arquitetura robusta (RUP) F Arquitetura para o contexto da iteração atual (agile modeling) u Rigor na atribuição de tarefas a responsáveis F workers (RUP) F alocação sob demanda e interesse (XP) u Artefatos (documentação) gerados u Grau de automação u (im)pessoalidade

17 17/22 Exemplos de processos n A polêmica... u Se a tendência é ter processos mais leves, afinal o desenvolvimento de software é u Arte+Sociologia+Psicologia+... ou u Lógica+Modelos+Engenharia+...??? u E todo o esforço de consolidação da Engenharia de Software como uma ciência exata???

18 18/22 Institucionalização de processos: pontos críticos n Comprometimento da alta administração n O processo precisa ajudar e não burocratizar u procedimentos adequados u ferramentas para facilitarem o trabalho. n Envolvimento de todos n Treinamento e orientação de pessoas envolvidas nos padrões e técnicas n Disponibilização da infra-estrutura necessária n Disciplina e motivação n Revisão e melhoria contínua

19 19/22 Institucionalização de processos: planejamento, estruturação e implantação n Alocar um líder exclusivo para o projeto de institucionalização n Treinar o líder do projeto n Efetuar diagnóstico da situação atual n Selecionar o processo a ser adotado n Definir recursos necessários n Definir cronograma de atividades / tempo n Constituir uma equipe de implantação n Treinar a equipe no processo selecionado

20 20/22 Institucionalização de processos: planejamento, estruturação e implantação n Estabelecer um sistema de controle de documentos n Definir/adequar procedimentos/atividades n Avaliar ferramentas que possam automatizar os procedimentos n Treinar nos procedimentos n Implantar os procedimentos n Formar auditores/avaliadores internos n Realizar auditorias/avaliações internas n Promover ações corretivas n Avaliar e melhorar continuamente

21 21/22 Algumas referências n Process-Centered Software Engineering Environments. P. K. Garg & M. Jazayeri. IEEE Computer Society Press n The OPEN Process Specification. I. Graham, B. Henderson-Sellers & H. Younessi n The Unified Software Development Process. I, Jacobson, G. Booch & J. Rumbaugh n http://www.rational.com/products/rup/ http://www.rational.com/products/rup/ n http://www.catalysis.org/ http://www.catalysis.org/ n http://www.extremeprogramming.org/ http://www.extremeprogramming.org/ n http://www.agilemodeling.com/ http://www.agilemodeling.com/ n http://www.crystalmethodologies.org/ http://www.crystalmethodologies.org/

22 22/22 Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin.ufpe.br alexandre@qualiti.com.br Centro de Informática da UFPE/ Qualiti Software Processes


Carregar ppt "1/22 Introdução aos Processos de Software © Alexandre Vasconcelos Centro de Informática da UFPE/ Qualiti Software."

Apresentações semelhantes


Anúncios Google