Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio.

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto Orientado a Objetos
Advertisements

Engenharia de Software
O Processo Praxis 3.0 Processos de Software 25/03/2017
(Unified Modeling Language)
Identificando requisitos
Processos de Software Introdução
Projeto de Sistemas de Software
Metodologia de Desenvolvimento de Software
RUP Rational Unified Process (Processo Unificado de Desenvolvimento da Rational) 1.
MO409 / Engenharia de Software I - 1º Semestre / Prof. Eliane 1 1ª Apresentação (A1) Modelos de Processos de Software RA: / Edson Amorina.
Metodologias Orientadas a Agentes
Processo Desenvolvimento de Software Tradicional
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Análise e Projeto de Sistemas
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Como Desenvolver Sistemas de Informação
Engenharia de Software Respostas do Questionário 01
1/22 Introdução aos Processos de Software © Alexandre Vasconcelos Centro de Informática da UFPE/ Qualiti Software.
Rational Unified Process
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
RUPinho Qualidade de Software
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Visão Geral PRO.NET.
Visão Geral do RUP.
Projeto de Sistemas de Software
Processos de Desenvolvimento de Software – Parte 2
Processos de Software Prof. Alexandre Vasconcelos
Introdução aos Processos de Software. Processo n Uma ação regular e contínua (ou sucessão de ações) realizada de forma bem definida, levando a um resultado.
Heron Vieira Aguiar “Seminário da disciplina MDA” Julho de 2006
PSBD II Projeto de Sistemas de Banco de Dados II
Especificação em Projeto de Sistemas
Abr-17 Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto Fluxo de análise e projeto.
Bruno Silva Desenvolvido a partir de
RUP - Cap. 4 – Processo Centrado na Arquitetura
SPEM / EPF Composer Audrey Bezerra de Vasconcelos Qualidade de Software Prof. Alexandre Vasconcelos.
METODOLOGIA, MÉTODOS E FERRAMENTAS
Processos de Software.
Visão Geral sobre Ciclo de Vida de Software, Processos e RUP
Ferramentas de Suporte a MDD: Um Quadro Comparativo
Desenvolvimento de Software Dirigido a Modelos
UML e a Ferramenta Astah
CIn-UFPE1 © 2003, Alexandre Vasconcelos Visão Geral do RUP.
Engenharia de Software
CIn - UFPE 1 OPEN Tiago Massoni 03/06/2003. CIn - UFPE2 Agenda Terminologia OPEN Modelagem de Processo Atividades, Tarefas e Técnicas Adaptação (Tailoring)
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
Engenharia de Software e Sistemas
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
SISTEMA DE MONITORAMENTO DA TECNOLOGIA DA INFORMAÇÃO.
Engenharia de Software
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Fábricas de Software Momentos de Reflexão
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
PSDS com CMMI Nível 2 Dimitri de Almeida Malheiros Barbosa 27/03/2006.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Estudo Comparativo Entre Metodologias Ágeis e Tradicionais Aluno: Márcia Seabra Cabral Professor: Augusto Sampaio Disciplina: Tópicos Avançados em Engenharia.
2005 Rodrigo Cavalcante Mendes Modelagem e Avaliação do CMMI no SPEM para Definição de um Meta- Processo de Software Graduando: Rodrigo.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
PROJETO SPICE ISO Integrantes: Erickson Balzaneli
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
/ de Abril de UFPE - Universidade Federal de Pernambuco Centro de Informática Pós-Graduação em Ciência da Computação Dissertação de Mestrado.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Atividades, Artefatos e Responsáveis da Disciplina de Análise e Projeto.
DEFINIÇÃO DE PROCESSO NO PROMODELLER Conceitos Introdutórios Fernando Bione
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

Processos conceitos, modelos, ciclo de vida, ambientes (PSEE), exemplos Augusto Sampaio

Processo Um processo é 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 que, quando e como para atingir um certo objetivo [Jacobson, Booch, Rumbaugh]

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 O termo ciclo de vida evoluiu para processo Exemplos de ciclos de vida e processos: cascata, espiral, incremental, RUP, Open, Catalysis, XP, ...

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

Modelo de Processo Um 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)

Modelo de Processo Um modelo é usado para entendimento e comunicação do processo, e como base para análise, execução (enactment), 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

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 Fase, workflow, domínio, disciplina, Atividade Mas há esforço de padronização (SPEM e BPMN – OMG)

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

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

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

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

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

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

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

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

PSEE Alguns ambientes comerciais Ambos fornecem 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

PSEE Alguns ambientes acadêmicos Prism Smart Articulator Dynamite Spade ...

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]

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

Exemplos de processos Processos tradicionais (pesados) RUP, OPEN, Catalysis Processos ágeis (leves) XP, Agile modeling, Crystal, pragmatic programming, Internet Speed, Scrum, ...

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

Exemplos de processos Divergências em torno de Esforço para absorção e efetivo uso Detalhamento de atividades a serem seguidas Artefatos (documentação) gerados Exemplo: Arquitetura robusta (RUP) Arquitetura para o contexto da iteração atual (agile modeling) Ordem de execução das atividades Rigor na atribuição de tarefas a responsáveis workers (RUP) alocação sob demanda e interesse (XP) People as non-linear components (crystal) Automação (im)pessoalidade

Exemplos de processos A polêmica ... Compromisso 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

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)

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, ...) ...

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. http://www.rational.com/products/rup/ http://www.catalysis.org/ http://www.extremeprogramming.org/ http://www.agilemodeling.com/ http://www.crystalmethodologies.org/