Processos de Software



Documentos relacionados
Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Engenharia de Software I: Análise e Projeto de Software Usando UML

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Fase 1: Engenharia de Produto

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

MODELAGEM DE PROCESSOS

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

ENGENHARIA DE SOFTWARE I

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Professor: Rômulo César BPMN

V Simpósio Internacional de Recife, PE - Brasil 3-5/11/2003. V Simpósio Internacional de Melhoria de Processo de Software

Processos de Desenvolvimento de Software

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Qualidade de Software

UML - Unified Modeling Language

Engenharia de Software

Professor: Curso: Disciplina:

PLANO DE ENSINO. CURSO: Sistemas de Informação PERÍODO LETIVO: SEMESTRE: 4º. C/H SEMANAL Análise, Projeto e Implementação de Sistemas I

Processo de Desenvolvimento Unificado

PROJETO DE FÁBRICA DE SOFTWARE

Engenharia de Software

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Profa. Celia Corigliano. Unidade IV GERENCIAMENTO DE PROJETOS DE TI

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Engenharia de Software

Apresentação do Curso Prof. Gilberto Braga de Oliveira

Engenharia de Software

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

Universidade Paulista

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

Modelagem de Processos. Prof.: Fernando Ascani

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini christianezapelini@nwk.edu.br

Tópicos Especiais em Engenharia de Software

Introdução à Engenharia de Software

Engenharia de Software II

Processo de Desenvolvimento de Software

O que é um processo de software?

Wilson Moraes Góes. Novatec

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Requisitos de Software

Notas de Aula 04: Casos de uso de um sistema

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

GTI Governança de TI

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

Arquitetura de Software

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Sistemas de Informação I

Modelagem do Processo de Gerenciamento da Configuração de Software para um Ambiente Integrado

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

O ciclo de BPM. Prof. Roquemar Baldam Perguntas clássicas em eventos, cursos, etc... Ciclos de BPM.

Projeto de curso / ação de capacitação

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

Padrões de projeto 1

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Desenvolvimento de software orientado a características e dirigido por modelos

ENG1000 Introdução à Engenharia

Definição de Processos

Tarciane Andrade.

Spider-PM: Uma Ferramenta de Apoio à Modelagem de Processos de Software

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Requisitos de Software

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

O modelo unificado de processo. O Rational Unified Process, RUP.

Engenharia de Software na Prática Hélio Engholm Jr.

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Treinamento BPM e BPMN Apresentação Executiva

RiskFree Uma ferramenta de apoio à gerência de riscos em projetos de software

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

**Docentes do Centro Universitário Filadélfia- Unifil.

Desenvolvimento de um Ambiente de Engenharia de Software Baseado em Processos utilizando Workflow

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

Engenharia de Software Processo de Desenvolvimento de Software

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Planejamento da disciplina: Modelagem de processos de negócio

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

Metodologias Ágeis. Aécio Costa

1 UML (UNIFIED MODELING LANGUAGE)

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Um relato dos desafios encontrados e dos benefícios conseguidos com a implantação das práticas propostas pelo nível F do modelo de referência de

Processos de Software

1 Introdução 1.1. Motivação

Transcrição:

Processos de Software Prof. Sandro Bezerra (srbo@ufpa.br) Adaptado a partir de slides produzidos pelo Prof. Dr. Alexandre Vasconcelos 1/27

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

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

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

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 5/45

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 6/45

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

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

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

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

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

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

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

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

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

Ciclo de vida de processos 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] 16/27

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

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

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

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

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

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

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

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

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

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

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