Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouBruno Alves Alterado mais de 10 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.