Introduo aos Processos de Software Alexandre Vasconcelos amlvcin

  • Slides: 22
Download presentation
Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin. ufpe. br alexandre@qualiti. com. br

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 1/22

Processo n n n Uma ação regular e contínua (ou sucessão de ações) realizada

Processo n n 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] Um conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivo [Feiler & Humphrey] Define quem está fazendo o quê, quando e como para atingir um certo objetivo [Jacobson, Booch, Rumbaugh] O termo ciclo de vida evoluiu para processo Software processes are software too [Osterweil] 2/22

Processo versus metodologia n Alguns autores consideram que processos incluem u uma metodologia u

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 3/22

Padronização de processos n n n Ajuda a reduzir problemas de treinamento, revisões e

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

Modelo de processo n Uma representação de um processo, usualmente envolvendo u atividades a

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) 5/22

Modelo de processo n n n Um modelo é usado para entendimento e comunicação

Modelo de processo n n 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 Idealmente a descrição deve ser formal e completa para permitir, por exemplo, automação A descrição deve ser apresentada em diferentes níveis de abstração 6/22

Modelo de processo n n O formalismo utilizado para representar o processo é o

Modelo de processo n n O formalismo utilizado para representar o processo é o ingrediente mais importante da modelagem 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) 7/22

Modelo de processo n Formalismos podem ser classificados de várias formas u Diagramáticos u

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

Modelo de processo n Alguns exemplos de formalismos diagramáticos u Diagramas F Máquina u

Modelo de processo n Alguns exemplos de formalismos diagramáticos u Diagramas F Máquina u Técnicas de transição de estados finitos, statecharts 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 9/22

Modelo de processo n Alguns exemplos de formalismos orientados a linguagens u Linguagens de

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: u Notações extensões de Prolog que usam conceitos de OO F Exemplo: uso de herança para relacionar um modelo de processo com instâncias 10/22

Engenharia de Processos x Engenharia de Software x Gerência de Projetos n Engenharia de

Engenharia de Processos x Engenharia de Software x Gerência de Projetos n Engenharia de processos u n Engenharia de software u n definição e evolução de modelos de processos (em geral independentes de projetos específicos) desenvolvimento e evolução de produtos de software 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) 11/22

Engenharia de Processos x Engenharia de Software x Gerência de Projetos Engenharia de processos

Engenharia de Processos x Engenharia de Software x Gerência de Projetos Engenharia de processos • definição • simulação • métricas • melhorias, . . . Engenharia de software • guia (ou enforcement) • automação • status, . . . • instanciação • monitoramento • mudanças (dinâmicas) • status, . . . Gerência de projetos 12/22

Engenharia de Processos x Engenharia de Software x Gerência de Projetos Requisitos do processo

Engenharia de Processos x Engenharia de Software x Gerência de Projetos Requisitos do processo Requisitos do projeto e do produto Engenharia de processos Gerência de projetos Modelo do processo Engenharia de software Processo de desenvolvimento software 13/22

Exemplos de processos n Processos tradicionais (pesados) u RUP, n OPEN, Catalysis Processos ágeis

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

Exemplos de processos n Consenso em torno de u Iteratividade u Participação de usuários

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 15/22

Exemplos de processos n Divergências Detalhamento de atividades a serem seguidas u Ordem de

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

Exemplos de processos n A polêmica. . . u Se a tendência é ter

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? ? ? 17/22

Institucionalização de processos: pontos críticos n n Comprometimento da alta administração O processo precisa

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

Institucionalização de processos: planejamento, estruturação e implantação n n n n Alocar um líder

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

Institucionalização de processos: planejamento, estruturação e implantação n n n n n Estabelecer um

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

Algumas referências n n n n Process-Centered Software Engineering Environments. P. K. Garg &

Algumas referências n n n n 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 http: //www. rational. com/products/rup/ http: //www. catalysis. org/ http: //www. extremeprogramming. org/ http: //www. agilemodeling. com/ http: //www. crystalmethodologies. org/ 21/22

Introdução aos Processos de Software © Alexandre Vasconcelos amlv@cin. ufpe. br alexandre@qualiti. com. br

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 22/22