Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Requisitos Processo de Software Aula 2 Josiane Brietzke Porto josibrietzke@unisinos.br Agenda • Introdução • Etapas genéricas • Atividades de apoio • Ferramentas de apoio • Modelos genéricos • Modelos de mercado • Modelos de melhoria Introdução • Processo de software? conjunto de ferramentas, métodos e práticas utilizadas para produzir e manter software. conjunto de atividades relacionadas que levam à produção e manutenção de um produto de software (SOMMERVILLE, 2011). Introdução • Objetivos? Cumprir o prazo do projeto Cumprir o custo do projeto Entregar um sistema de qualidade. Introdução • Principais condições? Pessoas treinadas e motivadas Ferramentas adequadas Processos definidos e seguidos Agenda • Introdução • Etapas genéricas • Atividades de apoio • Ferramentas de apoio • Modelos genéricos • Modelos de mercado • Modelos de melhoria Etapas genéricas • Na Engenharia de Software existem quatro atividades fundamentais (SOMMERVILLE, 2011): Especificação de software • Definição das funcionalidades e das restrições Projeto e implementação de software • Produção do software para atender às especificações Validação de software • Validação do software a fim de garantir que atende às demandas do cliente Evolução de software • Evolução para atender às necessidades de mudança dos clientes Etapas genéricas • Essas atividades fundamentais incluem subatividades, além atividades de apoio ao processo de desenvolvimento de software (Sommerville, 2011). Etapas genéricas Análise Projeto Implementação Testes Implantação Manutenção Etapas genéricas - Análise • Quem faz? • Analista de Sistemas • O que faz? • Descobre o que o cliente precisa através de entrevistas, reuniões, leitura de documentos, entre outras técnicas • Quando? • No início, principalmente, podendo se estender por todo o projeto ou até a descontinuidade do produto • Qual o resultado? • Especificação do sistema Etapas genéricas - Projeto • Quem faz? • Projetista, Arquiteto ou Engenheiro de Software • O que faz? • Projeta a melhor forma de criar um software, que atenda as necessidades do cliente e usuário • Quando? • Logo após a etapa de análise ou parte da análise • Qual o resultado? • Projeto e diagramas Etapas genéricas - Implementação • Quem faz? • Programador ou Desenvolvedor • O que faz? • Codifica ou implementa o software, de acordo com o projeto e especificação • Quando? • Logo após o projeto do software ou parte do projeto • Qual o resultado? • Código-fonte Etapas genéricas - Testes • Quem faz? • Analista de Testes, Testador ou Engenheiro de Testes • O que faz? • Planeja e executa os testes no software, registrando os defeitos e problemas encontrados • Quando? • Logo após a implementação do software ou parte da implementação • Qual o resultado? • Registro dos defeitos Etapas genéricas - Implantação • Quem faz? • Analista de Suporte • O que faz? • Planeja a implantação, instala e configura o software para o uso no ambiente de produção do cliente • Quando? • Após todo o software ou parte dele ser aprovada nos testes • Qual o resultado? • Software ou parte dele pronto para uso em ambiente de produção Etapas genéricas - Manutenção • Quem faz? • Equipe de desenvolvimento e de suporte • O que faz? • Corrige, adapta ou cria novas funcionalidades no software • Quando? • Sempre que necessário ou de acordo com planejamento • Qual o resultado? • Nova versão do software Agenda • Introdução • Etapas genéricas • Atividades de apoio • Ferramentas de apoio • Modelos genéricos • Modelos de mercado • Modelos de melhoria Atividades de apoio Gerência de Projeto Gerência da Configuração Garantia da Qualidade Entre outras ... Atividades de Apoio – Gerência de Projeto • Quem faz? • Líder de projeto, Analista de projeto ou Gerente de projeto • O que faz? • Planeja e monitora a execução do projeto • Quando? • Desde o início até o final do projeto ou produto • Qual o resultado? • Planos e registros de acompanhamento do projeto Atividades de Apoio – Gerência de Configuração • Quem faz? • Analista de Configuração, Integrador, Auditor de Configuração Gerente de Configuração • O que faz? • Planeja, armazena e controla mudanças e versões dos produtos de trabalho ao longo do projeto ou produto e audita baselines • Quando? • Desde o início até o final do projeto ou produto • Qual o resultado? • Versões dos produtos de trabalho devidamente armazenadas e controladas Atividades de Apoio – Garantia da Qualidade • Quem faz? • Analista de qualidade, Auditor de qualidade ou Gerente de qualidade • O que faz? • Melhoria de processos de software e executa auditorias nos projetos • Quando? • Periodicamente e antes de entregas e marcos • Qual o resultado? • Relatórios e registros de não conformidades, novas versões do processo Agenda • Introdução • Etapas genéricas • Atividades de apoio • Ferramentas de apoio • Modelos genéricos • Modelos de mercado • Modelos de melhoria Ferramentas de Apoio • Softwares cujo objetivo é apoiar o desenvolvimento de software e o processo de evolução. Ferramentas de Apoio Tipos Ferramentas Planejamento Ferramentas de cronograma, estimativas, planilhas eletrônicas Edição Editores de texto, de imagem, de diagramas, processadores de texto Gestão de mudança Gerenciamento de requisitos e de mudanças Gestão da configuração Sistemas de controle de versão, ferramentas de desenvolvimento de software Prototipação Geradores de interface de usuário, simuladores Apoio ao método Geradores automáticos de código, dicionário de dados, editores de projeto Processamento de linguagem Compiladores, interpretadores Testes Geradores de massa de dados, de testes automatizados, comparadores de arquivos .... .... Agenda • Introdução • Etapas genéricas • Atividades de apoio • Ferramentas de apoio • Modelos genéricos • Modelos de mercado • Modelos de melhoria Modelos genéricos • Modelo de processo de software (SOMMERVILLE, 2011): • representação abstrata e simplificada de um processo de software; • representa uma perspectiva específica de um processo, modelos de ciclo de vida; • diferentes abordagens de desenvolvimento de software; • Frameworks de processo que podem ser ampliados e adaptados para criar processos de Engenharia de Software mais específicos. Modelos genéricos • Modelo em Cascata (SOMMERVILLE, 2011): • desenvolvimento linear e sequencial, sendo que uma nova etapa só inicia quanto a anterior estiver completamente encerrada. Modelos genéricos • Modelo em Cascata (SOMMERVILLE, 2011): Modelos genéricos • Modelo Formal: • modelo matemático do sistema é transformado formalmente em uma implementação; • adequado a sistemas com exigências rigorosas de segurança, confiança e garantia. Modelos genéricos • Modelo Incremental (SOMMERVILLE, 2011): • desenvolvimento particionado, a partir dos requisitos prioritários para o cliente, com entregas parciais; • sistema desenvolvido como uma série de versões (incrementos). Modelos genéricos • Modelo Incremental (SOMMERVILLE, 2011): Modelos genéricos • Baseado em Reuso (SOMMERVILLE, 2011): • sistema construído, a partir de componentes reusáveis já existentes; • Processode desenvolvimento concentra-se na integração desses componentes em um sistema. Modelos genéricos • Baseado em Reuso (SOMMERVILLE, 2011): Especificação de requisitos Análise de componentes Alterações nos requisitos Projeto de sistema com reuso Desenvolvimento e integração Validação de sistema Modelos genéricos • Prototipação (SOMMERVILLE, 2011): • possibilita que o desenvolvedor crie um modelo do software que deve ser construído; • o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software; Modelos genéricos • Prototipação (SOMMERVILLE, 2011): • apropriado quando o cliente define um conjunto de objetivos gerais para o software, mas não identifica requisitos de entrada, processamento e saída com detalhes. Modelos genéricos • Prototipação: fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos Modelos genéricos • Espiral (SOMMERVILLE, 2011): • processo representado como uma espiral e não como uma sequência de atividades com alguns retornos de uma para outra; • Cada volta na espiral representa uma fase no processo. Modelos genéricos • Espiral (SOMMERVILLE, 2011): Agenda • Introdução • Etapas genéricas • Atividades de apoio • Ferramentas de apoio • Modelos genéricos • Modelos de mercado • Modelos de melhoria Modelos de mercado • RUP – Rational Unified Process (SOMMERVILLE, 2011): • para desenvolvimento de software orientado a objeto através da UML; • constitui-se de quatro fases estreitamente relacionadas ao negócio. Modelos de mercado • RUP – Rational Unified Process Modelos de mercado • Métodos ágeis (SOMMERVILLE, 2011): • nasceram na década de 90 e possuem foco no software em si; • baseados na abordagem incremental para especificação, desenvolvimento e entrega do software; • adequados para requisitos que mudam rapidamente durante o processo. Modelos de mercado Modelos de mercado • XP - Extreme Programming (SOMMERVILLE, 2011): • método para pequenas e médias equipes; • desenvolvimento de software com requisitos vagos e em constante mudança. Modelos de mercado Modelos de mercado • Ciclo de um release em XP (SOMMERVILLE, 2011): Selecionar histórias do usuário Dividir histórias em tarefas Planejar release Desenvolver, integrar ou testar software Liberar software Avaliar sistema Modelos de mercado • SCRUM (SOMMERVILLE, 2011): • método para gerenciamento ágil de projetos; • pode ser aplicado em qualquer contexto no qual um grupo de pessoas necessitem trabalhar juntas para atingir um objetivo comum. Modelos de mercado • SCRUM: Fonte: http://www.scrumalliance.org Agenda • Introdução • Etapas genéricas • Atividades de apoio • Ferramentas de apoio • Modelos genéricos • Modelos de mercado • Modelos de melhoria Modelos de melhoria • Todo processo pode e deve ser melhorado continuamente; • Uma norma ou modelo de melhoria não diz exatamente como fazer, mas sim o que deve ser feito; • Apresentam melhores práticas. Modelos de melhoria Engenharia de Requisitos • Referências • Sommerville, Ian. Engenharia de Software. São Paulo: Pearson Prentice Hall, 2011. • Lâminas Prof. Vinicius Costa de Souza.
Compartilhar