AULAS 02 e 03: Noções sobre processo de desenvolvimento de software e Papéis e Responsabilidades em Projetos de Software

Tamanho: px
Começar a partir da página:

Download "AULAS 02 e 03: Noções sobre processo de desenvolvimento de software e Papéis e Responsabilidades em Projetos de Software"

Transcrição

1 AULAS 02 e 03: Noções sobre processo de desenvolvimento de software e Papéis e Responsabilidades em Projetos de Software SUMÁRIO PÁGINA Análise e Projeto de Software 1 Implementação, testes e implantação 13 Papéis e responsabilidades em projetos de software 19 Metodologias ágeis 24 Exercícios 32 Gabarito 40 Exercícios Comentados 41 Simulado 54 ANÁLISE E PROJETO DE SOFTWARE O levantamento de requisitos, a análise de requisitos e o projeto do software não são fases isoladas entre si. Ao elaborar diagramas e confeccionar documentos para buscar a melhor compreensão e entendimento dos requisitos de um sistema, já começa ali a fase de análise de requisitos. Tal imiscuidade entre fases também ocorrerá entre a análise e o projeto. O modelo de requisitos: entre a descrição do sistema e o projeto. Fonte: Pressman, de 55

2 ANÁLISE A fase de análise de requisitos, no contexto do desenvolvimento de um sistema, é aquela na qual são construídos modelos para representar o sistema a ser construído. Esta fase tem como característica não levar com conta o ambiente tecnológico a ser utilizado. Nesta atividade, o foco de interesse é tentar construir uma estratégia de solução sem se preocupar com a maneira como essa estratégia será realizada. Em resumo, a prioridade é saber o que o sistema proposto deve fazer, para, posteriormente (no projeto), definir como o sistema irá fazê-lo. A modelagem de requisitos possui duas visões clássicas: a análise estruturada e a análise orientada a objetos. A análise estruturada considera os dados e os processos que transformam os dados em entidades separadas. Esta técnica descreve o fluxo de informação e transformações que são aplicadas à medida que os dados se movimentam da entrada para a saída. O diagrama que melhor ilustra a análise estruturada é o Diagrama de Fluxo de Dados (DFD), que será visto adiante. A análise orientada a objetos, por sua vez, lança mão da abstração para representar coisas do mundo real, sob a forma de objetos. Os objetos podem ser uma entidade externa, uma coisa, uma ocorrência, um evento, uma unidade organizacional, um local, enfim, qualquer elemento que possa ser representado por um conjunto de atributos. Por exemplo, uma pessoa pode ser definida por um nome, endereço, telefone, número de CPF. Um pedido, por sua vez, pode ser definido pelo seu número, comprador, produtos, quantidade e preço total. Objetos serão exemplificados no diagrama de classes, visto adiante. PRINCIPAIS DIAGRAMAS DA FASE DE ANÁLISE Modelos baseados em cenários São os casos de usos e histórias de usuários, já detalhados na Engenharia de Requisitos. 2 de 55

3 Modelos de Fluxo A modelagem orientada a fluxos considera os dados e os processos que os transformam entidades distintas. É a representação da análise estruturada, e seu principal diagrama é o Diagrama de Fluxo de Dados, ou DFD. Em um DFD, representam-se entidades externas por caixas, processos (ou tarefas) por circunferências (também podem ser elipses ou elipses achatadas), o fluxo dos dados por setas e depósitos de dados por traços duplos. Veja abaixo: Diagrama de Fluxo de Dados: meramente ilustrativo. Diagrama de Fluxos de Dados: meramente ilustrativo. 3 de 55

4 Modelos de Comportamento Os modelos comportamentais indicam como o software irá responder a estímulos ou eventos externos. Os diagramas de estado e de sequência representam este tipo de modelo. Diagrama de estados: um exemplo. Diagrama de sequência: um exemplo. 4 de 55

5 Modelos de classe A modelagem baseada em classes representa os objetos que o sistema irá manipular, as operações (também denominada métodos ou serviços) que serão aplicados aos objetos para efetuar a manipulação, alguns relacionamentos entre os objetos e as colaborações que ocorrem entre as classes definidas. Os elementos de um modelo baseado em classes são: classes e objetos, atributos, operações, modelos CRC (classe-responsabilidade-colaborador), diagramas de colaboração e pacotes. Diagrama de classes: exemplo Como dito anteriormente, não existe uma fronteira clara entre o término da fase de análise e o início da fase de projeto. Teoricamente, ao término da análise, os requisitos estão suficientemente detalhados para que modelagens mais refinadas possam ser empregadas. 5 de 55

6 PROJETO O foco principal da análise são os aspectos lógicos e independentes de implementação de um sistema, ou seja, os requisitos. Na fase de projeto, determina-se o como o sistema funcionará, para atender aos requisitos. Os modelos de requisitos, apresentados por elementos baseados em cenários, baseados em classes, orientado a fluxos e comportamentais, alimentam a tarefa de projeto. A atividade de projeto engloba o conjunto de princípios, conceitos e práticas que conduzem ao desenvolvimento de um sistema ou produto com alta qualidade. Lembro que, lato sensu, este também é o objetivo de todo o processo de desenvolvimento de software. Para buscar a qualidade do software, o projeto deve possuir algumas características: O projeto deve implementar todos os requisitos explícitos contidos no modelo de requisitos e deve acomodar todos os requisitos implícitos desejados pelos interessados; O projeto deve ser um guia legível, compreensível para aqueles que geram código e para aqueles que testam, e, subsequentemente, dão suporte ao software; O projeto deve dar uma visão completa do software, trabalhando os domínios de dados, funcional e comportamental sob a perspectiva de implementação. Ainda, cabe destacar alguns conceitos que devem ser ponderados quando da elaboração de um projeto: Abstração: À medida que o nível de abstração migra de um nível mais alto para um nível mais baixo, a solução deixa de ser expressa na linguagem do domínio do problema para ser expressa em uma terminologia técnica. Arquitetura: Uma meta do projeto de software é derivar um quadro da arquitetura de um sistema, que representará a organização a partir da qual atividades mais detalhadas do projeto são conduzidas. 6 de 55

7 Padrões: Os padrões de projeto são soluções comprovadamente eficazes que podem ser aproveitados em projetos de problemática recorrente. Por exemplo, um sistema de vendas online provavelmente possuirá um padrão de projeto consolidado. P.S.: não confundir o aproveitamento de um padrão de projeto com o aproveitamento de código (reuso de software). Separação por interesses (por afinidades): Esse conceito afirma que qualquer problema complexo pode ser tratado mais facilmente se decomposto em trechos a ser resolvidos e ou otimizados independentemente. Esse conceito aparece em outros conceitos, como modularidade, aspectos, independência funcional e refinamento. Modularidade: Dividir um software em poucos módulos o torna fácil de integrar, mas difícil de desenvolver e manutenir. Dividir demais o torna difícil de integrar, embora o custo do módulo seja baixo. O desafio do projeto é modularizar o problema da melhor forma possível, minimizando custos. Diagrama de classes ilustrando a modularidade. Modularizar na medida certa traz uma série de benefícios ao projeto e ao software. Encapsulamento de informações: O princípio do encapsulamento diz que os módulos devem ser capazes de ocultar suas características uns dos outros, disponibilizando apenas os itens que interessam aos outros módulos. Independência funcional: A independência funcional é atingida desenvolvendo-se módulos com função única e que pouco interagem com outros módulos. É medida qualitativamente pela coesão e pelo acoplamento. Um 7 de 55

8 módulo coeso realiza poucas tarefas, interagindo o mínimo necessário com outros módulos. Quanto ao acoplamento, é desejável que ele seja fraco, ou seja, que cada módulo se comunique o mínimo possível com os demais. Refinamento: O refinamento gradual é uma estratégia top-down. Um programa é desenvolvido refinando-se níveis procedurais sucessivamente. Refatoração: Técnica de reorganização que simplifica o projeto ou código, sem mudar sua função ou comportamento. Em projetos de refabricação de software, deve-se examinar o projeto antigo, eliminar redundâncias, corrigir algoritmos eficientes ou desnecessários. Refatoração: um exemplo. Um atributo que estava mal esclarecido, nome2, agora passa a se chamar mae, explicitando a sua funcionalidade. Usando a notação, princípios e métodos adequados, o projeto produz um projeto de dados/classes, um projeto de arquitetura, um projeto de interfaces e um projeto de componentes. 8 de 55

9 Projeto de dados/classes O projeto de dados/classes transforma os modelos de classes em realizações de classes de projeto e nas estruturas de dados dos requisitos necessários para implementar o software. Projeto de dados: um exemplo. 9 de 55

10 Projeto de arquitetura O projeto arquitetural define os relacionamentos entre os principais elementos estruturais do software, os estilos arquiteturais e os padrões de projeto que podem ser usados para satisfazer os requisitos definidos para o sistema e as restrições que o afetam. Diagramas de implantação podem mostrar os componentes físicos de um sistema, assim como diagramas de componentes pode mostrar os principais componentes de um software. Diagrama de Implantação, materializando a arquitetura de um sistema Diagrama de Componentes, materializando a arquitetura de um sistema 10 de 55

11 Projeto de componentes O projeto de componentes destrincha elementos estruturais da arquitetura, em uma descrição procedural dos componentes de software. Diagrama de classes, detalhando cada componente de um software Projeto de interface de usuário Conjunto de desenhos detalhados que representa fluxos de informação que entram em saem do sistema, como o sistema de comunica com sistemas externos e com as pessoas que o utilizam. Devem ser buscadas algumas características como: Familiaridade usar termos e conceitos obtidos da experiência de pessoas que farão uso do sistema. Consistência sempre que possível, operações similares devem ser ativadas da mesma maneira. 11 de 55

12 Surpresa mínima os usuários nunca devem ser surpreendidos pelo comportamento de um sistema. Deixar o usuário no comando o usuário deve ser capaz de interromper o que está fazendo para fazer outra coisa, sem perder o trabalho já feito. Reduzir a memória do usuário o sistema deve ser capaz de guiar o usuário, não precisando ele armazenar procedimentos na memória. Projeto de interface com o usuário: um exemplo. Em resumo, o projeto de interface com o usuário será a proposta de tela, ou telas, por meio das quais os usuários do sistema realização sua interação com o mesmo. Inevitavelmente o projeto de interface com o usuário será submetido à aprovação do cliente, podendo sofrer modificações antes da codificação. 12 de 55

13 IMPLEMENTAÇÃO, TESTES E IMPLANTAÇÃO IMPLEMENTAÇÃO Na implementação, o sistema é codificado, ou seja, ocorre a tradução da descrição computacional obtida na fase de projeto em código executável, mediante o uso de uma ou mais linguagens de programação. Código de programa: ilustração Ao codificar um software, um programador poderá escrever código novo, ou reaproveitar código já existente. Esse reaproveitamento de código é chamado de reuso de software. O reuso de software pode trazer vários benefícios, como ganho de tempo (o código já está escrito), confiança, redução de risco (o código já foi utilizado com sucesso anteriormente), dentre outros fatores. Por fim, é interessante destacar que a maioria das bibliografias prevê que o teste de unidade acontece na etapa da implementação. O teste de unidade é o teste pontual, realizado pelo programador, que verifica que aquele componente 13 de 55

14 ou módulo que ele desenvolveu realmente faz o que deveria fazer, atendendo às especificações do projeto. Uma vez que o sistema esteja codificado (e com seus módulos testados, a nível unidade), os códigos desenvolvidos pelos diversos programadores é integrado, e poderá ser submetido a uma bateria maior e mais complexa de testes. TESTES Teste de software é uma atividade realizada para descobrir erros que foram produzidos inadvertidamente no momento em que o software foi projetado e construído. Pode ser planejado antecipadamente e conduzido sistematicamente. Ainda, podem ser testes de baixo nível, no qual são verificados se pequenos segmentos de código-fonte foram corretamente implementados, bem como testes de alto nível, que validam as principais funções do sistema com base nos requisitos do cliente. Estratégias de teste de software As estratégias de teste de software fornecem um roteiro que descreve os passos a serem executados como parte do teste. Em um contexto macro, o teste de software é um elemento de um aspecto mais amplo, que é frequentemente referido como Verificação e Validação (V&V). Verificação se refere ao conjunto de atividades que garante que o software implementa corretamente uma função específica (estamos construindo o produto corretamente?), enquanto a Validação se certifica que o software construído corresponde aos requisitos do cliente (estamos construindo o produto certo?). O teste proporciona o último elemento a partir do qual a qualidade pode ser estimada, e, mais pragmaticamente, os erros podem ser descobertos. Conforme afirmado desde o início, a qualidade é incorporada ao software ao longo do processo de engenharia de software. Portanto, a motivação, por trás do teste, é a confirmação da qualidade. Se a qualidade não estiver lá antes do teste, não estará lá após a realização dele. 14 de 55

15 Quanto à responsabilidade pela execução dos testes, cabe aos próprios desenvolvedores a realização dos testes de unidade e, em muitos casos, também os testes de integração. Os mais complexos, por sua vez, serão realizados por um grupo independente de teste. Este grupo também faz parte da equipe de desenvolvimento do software. Quanto à estratégia em si, a espiral da figura abaixo ilustra o processo. Estratégia de teste de software. Fonte: Pressman, Teste de unidade se concentra em cada unidade: componente, classe ou módulo. Usa intensamente técnicas de teste com caminhos distintos, com o objetivo de descobrir erros dentro do módulo testado. Teste de integração técnica sistemática para construir a arquitetura do software ao mesmo tempo que conduz testes para descobrir erros associados com as interfaces (comunicação entre os módulos, não confundir com interface com o usuário). A integração pode ocorrer de forma descendente (top-down) ou ascendente (bottom-up). Integração de módulos. No exemplo, M4 e M7 serão incorporados à arquitetura, e o sistema deverá ser testado com a presença desses dois novos módulos. 15 de 55

16 Teste de validação a validação de software é conseguida por meio de uma série de testes que demonstram conformidade com os requisitos. Um plano de testes poderá definir casos de teste específicos que atestem que os requisitos funcionais sejam satisfeitos, que os requisitos de desempenho sejam atendidos, que a documentação esteja correta, dentre outros. Desvios ou erros descobertos nesse estágio raramente podem ser corrigidos antes do prazo de entrega programado. Se um software é desenvolvido como um produto para ser usado por muitos clientes, é impraticável que todos eles realizem testes formais de aceitação. Muitos construtores de software, então, usam um processo chamado de teste alfa e beta para descobrir erros que apenas o usuário final é capaz de encontrar. O teste alfa é conduzido na instalação do desenvolvedor por um grupo representativo de usuários finais. Nele, o desenvolvedor monitora os usuários, registrando os erros e os problemas de uso. O teste beta é conduzido nas instalações dos usuários finais. Via de regra, o desenvolvedor não está presente, e os erros e problemas encontrados são reportados pelos usuários. Teste de sistema o teste de sistema extrapola os limites da engenharia de software. Uma vez validado, o software deverá ser combinado com outros elementos do sistemas (como hardware, pessoas, base de dados). Ele verifica se todos os elementos se combinam corretamente e se a função/desempenho global do sistema é conseguida. Podem ser: Teste de recuperação: força o sistema a falhar de várias formas e verifica se a recuperação é executada corretamente; Teste de segurança: verifica se os mecanismos de proteção incorporados ao sistema protegem contra acesso indevido; Teste de esforço: coloca o programa em condições anormais. Até onde podemos forçar o sistema até que ele falhe? Teste de desempenho: testar o desempenho, em tempo de execução, do software em um contexto de sistema integrado. Pode ser feito em conjunto com testes de esforço; Teste de disponibilização: exercitar o software em cada ambiente no qual ele deve operar, como em vários sistemas operacionais, vários navegadores web, ou várias plataformas (PC, smartphone...). Depuração Quando um erro é encontrado, o código deverá ser futucado para encontrar o pedaço de código que está escrito de maneira incorreta, para então ser corrigido. A esta etapa é dada o nome de depuração. Depurar o código não é testar o código, mas são processos que se relacionam. 16 de 55

17 Técnicas de teste de software Realizar testes em software é um paradoxo de raciocínio. Os desenvolvedores devem deixar de construir o software e passar a trabalhar em casos de teste para quebrá-lo. O objetivo do teste é encontrar erros, e um bom este é aquele que tem alta probabilidade de encontrar um erro. Os testes devem ter uma série de características que permitam atingir o objetivo de encontrar o maior número de erros com um mínimo de esforço. São atributos desejáveis em um teste: Alta probabilidade de encontrar erros; Não ser redundante; O melhor de uma categoria (o mais completo de um grupo similar de testes);e Nem muito simples, nem muito complexo. Vejamos algumas técnicas de teste: Caixa-Branca - Também chamada de teste estrutural ou orientado à lógica, a técnica de caixa-branca avalia o comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de caminho básico, teste de ciclos, teste de caminhos lógicos, códigos nunca executados, teste de estrutura de controle. Os aspectos avaliados nesta técnica de teste dependerão da complexidade e da tecnologia que determinarem a construção do componente de software, cabendo portanto avaliação de mais aspectos que os citados anteriormente. O testador tem acesso ao código fonte da aplicação e pode construir códigos para efetuar a ligação de bibliotecas e componentes. Este tipo de teste é desenvolvido analisando o código fonte e elaborando casos de teste que cubram todas as possibilidades do componente de software. Dessa maneira, todas as variações relevantes originadas por estruturas de condições são testadas. A técnica de teste de caixa-branca é recomendada para as fases de teste de unidade e teste de integração, cuja responsabilidade principal fica a cargo dos desenvolvedores do software, que por sua vez conhecem bem o código fonte produzido. Caixa-Preta - Também chamada de teste funcional, teste comportamental, orientado a dado ou orientado a entrada e saída, a técnica de caixa-preta avalia o comportamento externo do componente de software, sem se considerar o comportamento interno do mesmo. Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado 17 de 55

18 esperado previamente conhecido. Como detalhes de implementação não são considerados, os casos de teste são todos derivados da especificação. Quanto mais entradas são fornecidas, mais rico será o teste. Numa situação ideal todas as entradas possíveis seriam testadas, mas na ampla maioria dos casos isso é impossível. Outro problema é que a especificação pode estar ambígua em relação ao sistema produzido, e como resultado as entradas especificadas podem não ser as mesmas aceitas para o teste. Uma abordagem mais realista para o teste de caixa-preta é escolher um subconjunto de entradas que maximize a riqueza do teste. Pode-se agrupar subconjuntos de entradas possíveis que são processadas similarmente, de forma que testar somente um elemento desse subconjunto serve para averiguar a qualidade de todo o subconjunto. Por exemplo, em um sistema que aceita um inteiro como entrada, testar todos os casos possíveis pode gerar pelo menos dezenas de milhares de casos de testes distintos. Entretanto, a partir da especificação do sistema, podese encontrar um subconjunto de inteiros que maximizem a qualidade do teste. Depende do propósito do sistema, mas casos possíveis incluem inteiros pares, inteiros ímpares, zero, inteiros positivos, inteiros negativos, o maior inteiro, o menor inteiro. A aplicação de técnicas de teste leva o testador a produzir um conjunto de casos de teste (ou situações de teste). A aplicação combinada de outra técnica técnica de particionamento de equivalência (ou uso de classes de equivalência) permite avaliar se a quantidade de casos de teste produzida é coerente. A partir das classes de equivalência identificadas, o testador construirá casos de teste que atuem nos limites superiores e inferiores destas classes, de forma que um número mínimo de casos de teste permita a maior cobertura de teste possível. Uma outra variação é a Análise do Valor Limite na qual são testados valores nas fronteiras de um domínio. Por exemplo: se determinado campo só permite o preenchimento com números de 1 a 100, aplicam-se nos testes os valores 0,1,100 e 101. As técnicas caixa-preta podem ser aplicadas em todos as etapas de teste, embora mais apropriadas a partir dos testes de integração até a implantação. IMPLANTAÇÃO Na implantação, o sistema é empacotado, distribuído e instalado no ambiente do usuário. Os manuais do sistema são escritos, os arquivos são carregados, os dados são importados para o sistema, e os usuários são treinados para utilizar o sistema corretamente. Dependendo da situação, pode ocorrer também a migração de sistemas de do software e de dados preexistentes. 18 de 55

19 PAPÉIS E RESPONSABILIDADES EM PROJETOS DE SOFTWARE Como você deve ter observado, o estudo do processo de desenvolvimento de software é orientado a processos, ou seja, preocupa-se com o avançar do processo em si. Para avaliar os papéis e responsabilidades em projetos de software é necessário realizar um estudo transversal, extraindo as participações dos diversos personagens ao longo do projeto de software. Vejamos: Patrocinador O patrocinador do projeto, via de regra, é alguém do alto escalão de uma organização, que compra a idéia do software. Em virtude de sua posição, é capaz de atribuir recursos e dinheiro ao projeto. Entretanto, além de financiar o projeto, os patrocinadores têm outras funções muito importantes para o sucesso dos projetos. Durante o ciclo de vida do projeto, o patrocinador atua como um decisor acima do gerente de projeto, podendo tomar decisões fora da alçada do gerente do projeto. Além disso, o patrocinador funciona como um ponto focal para a alta administração e também para outros stakeholders, eventualmente. À primeira vista, pode parecer que o patrocinador do projeto duplica os esforços do gerente de projeto. No entanto, um patrocinador do projeto experiente pode melhorar a comunicação e coordenação em questões além das responsabilidades do gerente de projeto. O papel do patrocinador está diretamente ligado à gerência sênior e inclui, mas não se limita a: Participar na seleção de projetos, categorização e priorização; Participar no estabelecimento de prioridades e alocação de recursos; Estabelecer objetivos estratégicos para o projeto; Alinhar os objetivos do projeto aos objetivos de negócio; Realizar acompanhamento e relatórios sobre o andamento do projeto para a alta administração; Auxilia a fixação da autoridade do gerente de projeto; Participa do comitê de controle de mudanças. 19 de 55

20 Em geral, patrocinadores devem ter sólidos conhecimentos de negócio e boa capacidade de comunicação. Ele irá atuar mais como um líder visionário para o projeto, enquanto o gerente de projeto irá desempenhar funções de gestão e técnica a maioria dos o tempo. Especialmente em projetos complexos de grande porte, os gerentes de projetos precisam de muita ajuda de executivos de nível sênior. Sem patrocínio, a chance de fracasso é muito grande. Sendo o patrocinador um gerente sênior, ele possui autoridade e poder para tomar decisões que trazem grande agilidade e flexibilidade aos projetos, permitindo responder a riscos mais rapidamente e controlar mudanças. Desta forma, o patrocinador assegura, de uma maneira indireta, que a alta administração apoia o projeto. Um bom patrocinador é a ligação entre o gerente de projeto e gerentes seniores e executa diferentes funções durante o ciclo de vida do projeto, promover e proteger o projeto. Durante o início de um projeto, o patrocinador deve ser responsável pelo Termo de Abertura do Projeto e seu Business Case, alinhando os objetivos do projeto à estratégia corporativa. O patrocinador irá designar um gerente para o projeto, que pode ajudar neste planejamento inicial. O planejamento do projeto será responsabilidade do gerente de projeto designado e sua equipe, mas o patrocinador deve tomar conhecimento e aprovar planos de projeto. Ao longo da execução, o patrocinador irá monitorar o progresso e status do projeto, informando à gerência sênior. O patrocinador deve ter reuniões regulares com o gerente do projeto para reforçar a confiança e obter informações atualizadas. Finalmente, é o patrocinador o responsável pelo projeto perante a organização e à alta administração. Ele deve assegurar que os benefícios do projeto estão sendo entregues. Gerente de Projetos O gerente de projetos é o responsável pela gerência ou coordenação das atividades necessárias à construção do sistema. Deve fazer o orçamento do projeto de desenvolvimento, estimar o tempo necessário para o desenvolvimento do sistema, definir qual o processo de desenvolvimento, o cronograma de execução das atividades, a equipe de desenvolvimento, os recursos de hardware e software, etc. 20 de 55

21 O monitoramento e controle das atividades realizadas também é de responsabilidade do gerente do projeto, bem como a realização dos ajustes necessários para a adequação dos recursos e gastos. O gerente deverá ser meticuloso em seus estudos, quando realizar o estudo de viabilidade, escolher a equipe de desenvolvimento e o processo de desenvolvimento de software. O gerente de projeto, por sua vez, presta contas ao patrocinador do projeto. Segundo Pressman, o gerente de projeto, ao gerenciar efetivamente o projeto de software, deve focar em 4Ps, e nessa sequência: Pessoas, Produto, Processo e Projeto. Pessoas O gerente de projeto deve ater-se a algumas práticas-chaves, como: formar a equipe, liderar sua equipe, estabelecer boa comunicação com a equipe e com os interessados no projeto. Produto O gerente de projeto também deve analisar detalhadamente os requisitos (junto com os analistas de requisitos), para estabelecer e delimitar o escopo, de modo a poder estimar recursos e prazo. Processo A equipe de software deve ser flexível ao escolher o processo de software mais adequado ao projeto e às tarefas de engenharia de software que fazem parte do modelo selecionado. Projeto É a abordagem de cuidar do projeto como um projeto em si, entendendo fatores críticos de sucesso, planejando, monitorando e controlando o projeto, por meio de métricas e ferramentas. 21 de 55

22 Área de Negócio A área de negócio é o conjunto de stakeholders que será o principal beneficiado pelo projeto de software. Cabe a ela colaborar com a elicitação de requisitos, participar dos testes finais do software, e fornecer o feedback após a sua implantação. Pode-se destacar um personagem nesse contexto, o Especialista de Domínio. O especialista do domínio interage com o analista de requisitos para levantar os requisitos do sistema. Analista de Requisitos O analista de requisitos é o profissional que precisa ter conhecimento do domínio do negócio. Ele precisa compreender tal domínio para definir os requisitos do sistema a ser desenvolvido. Analistas devem estar aptos a se comunicar com especialistas do domínio para obter conhecimento acerca dos problemas e das necessidades envolvidas na empresa que necessita do sistema. Se, por um lado, ele não precisa ser um especialista, por outro, deve ter suficiente domínio do vocabulário da área de conhecimento na qual o sistema será implantado. Preferencialmente, este nível de domínio deve ser suficiente para que o especialista de domínio não precise, a todo momento, explicar conceitos básicos da área. O analista de requisitos precisará captar as necessidades dos clientes e repassar esse entendimento aos demais desenvolvedores do sistema, fazendo uma ponte entre os profissionais da computação e os profissionais do negócio. Em suma, os analistas de requisitos realizam o levantamento e a análise de requisitos. Inclusive, enxerga-se como uma progressão natural na carreira dos analistas de requisitos a gerência de projetos, uma vez que os analistas de requisitos adquirem experiência com a participação em diversos projetos. Equipe de desenvolvimento A equipe de desenvolvimento é fortemente atuante nas fases de projeto e implementação da solução de software. Destaque para: Projetistas: avaliam as alternativas de solução do problema resultante da análise e geram a especificação de uma solução computacional detalhada. Podem ser especializados em interface, redes, bancos de dados, etc; 22 de 55

23 Arquitetos de software: especialista em elaborar a arquitetura do sistema como um todo; Programadores: codificação do sistema e testes; Equipe de sustentação A sustentação consiste no suporte e atendimento ao cliente, responsável por manter o produto. Logo, a equipe de sustentação é aquela responsável pela manutenção do sistema após a sua entrega. Via de regra, equipes de desenvolvimento de software são montadas sob medida, em virtude do talento de seus integrantes, e desfeitas após o término do projeto. Inclusive, pode ocorrer, por questões contratuais, que uma empresa diferente da que desenvolveu o sistema seja responsável por sua manutenção. A equipe de sustentação pode realizar suporte técnico e prestar consultoria aos cliente, se for o caso. A manutenção prestada por essa equipe pode ser corretiva, aquela que corrige defeitos no sistema, adaptativa, adaptando alguns aspectos do sistema, como hardware, plataforma de sistema operacional, etc, desde que não sejam muito complexas, ou evolutiva, que adiciona novas funcionalidades ao software. Destaco, ainda, que esse acréscimo de funcionalidade é pontual. Evolução significativa de software é tratada à parte, como um outro projeto de software. Dentre os integrantes da equipe de sustentação, destaca-se o analista de suporte, profissional capaz de interpretar a solicitação do cliente e analisar se o problema relatado é um defeito a ser corrigido no sistema ou não. 23 de 55

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com http://www.luizleao.com Processo de Desenvolvimento de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático desta aula Modelo Cascata (Waterfall) ou TOP DOWN. Modelo Iterativo. Metodologia Ágil.

Leia mais

Tecnologia da Informação para EPPGG 2013. Victor Dalton

Tecnologia da Informação para EPPGG 2013. Victor Dalton Tecnologia da Informação para EPPGG 2013 Victor Dalton Edital TECNOLOGIA DA INFORMAÇÃO: 1. Noções sobre processo de desenvolvimento de software: modelos organizacionais, stakeholders, modelagem de negócio,

Leia mais

Metodologias Ágeis. Aécio Costa

Metodologias Ágeis. Aécio Costa Metodologias Ágeis Aécio Costa Metodologias Ágeis Problema: Processo de desenvolvimento de Software Imprevisível e complicado. Empírico: Aceita imprevisibilidade, porém tem mecanismos de ação corretiva.

Leia mais

Guia Projectlab para Métodos Agéis

Guia Projectlab para Métodos Agéis Guia Projectlab para Métodos Agéis GUIA PROJECTLAB PARA MÉTODOS ÁGEIS 2 Índice Introdução O que são métodos ágeis Breve histórico sobre métodos ágeis 03 04 04 Tipos de projetos que se beneficiam com métodos

Leia mais

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê? Significado de XP? Extreme Programming (Programação Extrema). Ideal para que tipo de empresa (equipe): pequena, média, grande? Pequenas e Médias. Em software onde os requisitos não são conhecidos é recomendado

Leia mais

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br

SCRUM. Fabrício Sousa fabbricio7@yahoo.com.br SCRUM Fabrício Sousa fabbricio7@yahoo.com.br Introdução 2 2001 Encontro onde profissionais e acadêmicos da área de desenvolvimento de software de mostraram seu descontentamento com a maneira com que os

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO Santa Maria, 27 de Setembro de 2013. Revisão aula anterior Desenvolvimento Ágil de Software Desenvolvimento e entrega

Leia mais

MÉTODO ÁGIL XP (EXTREME PROGRAMMING)

MÉTODO ÁGIL XP (EXTREME PROGRAMMING) MÉTODO ÁGIL XP (EXTREME PROGRAMMING) Luciano Malaquias de Souza* * RESUMO: Como o emprego dos métodos para desenvolvimento de software tem se tornado mais popular, existe uma grande demanda, pela industria,

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

Scrum. Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE

Scrum. Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE Scrum Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE scrum Ken Schwaber - Jeff Sutherland http://www.scrumalliance.org/ Scrum Uma forma ágil de gerenciar projetos. Uma abordagem baseada em equipes autoorganizadas.

Leia mais

Metodologias Ágeis de Desenvolvimento de Software

Metodologias Ágeis de Desenvolvimento de Software "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software de Desenvolvimento de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha

Leia mais

Desenvolvimento Ágil de Software

Desenvolvimento Ágil de Software Desenvolvimento Ágil de Software Métodos ágeis (Sommerville) As empresas operam em um ambiente global, com mudanças rápidas. Softwares fazem parte de quase todas as operações de negócios. O desenvolvimento

Leia mais

Sistemas de Informação e Programação II Odorico Machado Mendizabal

Sistemas de Informação e Programação II Odorico Machado Mendizabal Sistemas de Informação e Programação II Odorico Machado Mendizabal Universidade Federal do Rio Grande FURG C3 Engenharia de Computação 16 e 23 de março de 2011 Processo de Desenvolvimento de Software Objetivos

Leia mais

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 Extreme Programming (XP); DAS (Desenvolvimento Adaptativo de Software)

Leia mais

Guia do Nexus. O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado. Desenvolvido e mantido por Ken Schwaber e Scrum.

Guia do Nexus. O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado. Desenvolvido e mantido por Ken Schwaber e Scrum. Guia do Nexus O Guia Definitivo para o Nexus: O exoesqueleto do desenvolvimento Scrum escalado Desenvolvido e mantido por Ken Schwaber e Scrum.org Tabela de Conteúdo Visão Geral do Nexus... 2 O Propósito

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Organização da Informação Projeto Final. extreme Programming

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Organização da Informação Projeto Final. extreme Programming UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Organização da Informação Projeto Final extreme Programming Afonso Carvalho Felipe de Souza Rômulo de Brito Wesley Boaes Professora: Adriana Vivacqua NOVEMBRO 2011

Leia mais

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Programação Extrema Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM) Prof. Mauro Lopes Programação Extrema Prof. Mauro Lopes 1-31 45 Manifesto Ágil Formação da Aliança Ágil Manifesto Ágil: Propósito

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DAI 2015 Desenvolvimento Rápido de Software 2 1 Para quê o Desenvolvimento Rápido de Software? Os negócios

Leia mais

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1

METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO. Bruno Edgar Fuhr 1 METODOLOGIA DE GERENCIAMENTO DE PROJETOS SCRUM: ESTUDO DE REVISÃO Bruno Edgar Fuhr 1 Resumo: O atual mercado de sistemas informatizados exige das empresas de desenvolvimento, um produto que tenha ao mesmo

Leia mais

RESUMO PARA O EXAME PSM I

RESUMO PARA O EXAME PSM I RESUMO PARA O EXAME PSM I Escrito por: Larah Vidotti Blog técnico: Linkedin: http://br.linkedin.com/in/larahvidotti MSN: larah_bit@hotmail.com Referências:... 2 O Scrum... 2 Papéis... 3 Product Owner (PO)...

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO

SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO SCRUM: UMA DAS METODOLOGIAS ÁGEIS MAIS USADAS DO MUNDO RESUMO Eleandro Lopes de Lima 1 Nielsen Alves dos Santos 2 Rodrigo Vitorino Moravia 3 Maria Renata Furtado 4 Ao propor uma alternativa para o gerenciamento

Leia mais

METODOLOGIA ÁGIL. Lílian Simão Oliveira

METODOLOGIA ÁGIL. Lílian Simão Oliveira METODOLOGIA ÁGIL Lílian Simão Oliveira Fonte: Pressman, 2004 Aulas Prof. Auxiliadora Freire e Sabrina Schürhaus Alexandre Amorin Por quê???? Principais Causas Uso das Funcionalidades Processos empírico

Leia mais

Introdução ao OpenUP (Open Unified Process)

Introdução ao OpenUP (Open Unified Process) Introdução ao OpenUP (Open Unified Process) Diferentes projetos têm diferentes necessidades de processos. Fatores típicos ditam as necessidades de um processo mais formal ou ágil, como o tamanho da equipe

Leia mais

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

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas. Métodos Ágeis Edes Garcia da Costa Filho edes_filho@dc.ufscar.br 1 Tópicos Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Extreme Programming (XP). Referências Bibliográficas. 2 Histórico

Leia mais

LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013

LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013 LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013 Disciplina: Professor: Engenharia de Software Edison Andrade Martins Morais http://www.edison.eti.br prof@edison.eti.br Área: Metodologias

Leia mais

Processo de Desenvolvimento de Software Scrum. Prof. Antonio Almeida de Barros Jr.

Processo de Desenvolvimento de Software Scrum. Prof. Antonio Almeida de Barros Jr. Processo de Desenvolvimento de Software Scrum Manifesto da Agilidade Quatro princípios Indivíduos e interações mais que processos e ferramentas Software funcionando mais que documentação compreensiva Colaboração

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO Santa Maria, 24 de Setembro de 2013. Revisão aula anterior Processos de Software Engenharia de Requisitos, Projeto,

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1141 Processo e qualidade de software I Prof. Me. Elias Ferreira Sala: 210 F Quarta-Feira:

Leia mais

Modelos de processos de desenvolvimento de software

Modelos de processos de desenvolvimento de software Definição Um modelo de processo de software é uma representação abstrata de um processo. Os modelos de processo podem ser desenvolvidos a partir de várias perspectivas e podem mostrar as atividades envolvidas

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com)

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro (cleviton@gmail.com) SCRUM: UM MÉTODO ÁGIL Cleviton Monteiro (cleviton@gmail.com) Roteiro Motivação Manifesto Ágil Princípios Ciclo Papeis, cerimônias, eventos, artefatos Comunicação Product Backlog Desperdício 64% das features

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades Objetivos da Aula 1 Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades Entendimento sobre os processos essenciais do

Leia mais

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira SCRUM Gerência de Projetos Ágil Prof. Elias Ferreira Métodos Ágeis + SCRUM + Introdução ao extreme Programming (XP) Manifesto Ágil Estamos descobrindo maneiras melhores de desenvolver software fazendo-o

Leia mais

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática Disciplina: INF5008 Prof.: (monalessa@inf.ufes.br) Conteúdo 8. Metodologias

Leia mais

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto.

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto. SCRUM SCRUM É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto. Ken Schwaber e Jeff Sutherland Transparência A transparência garante que

Leia mais

Capítulo 1. Extreme Programming: visão geral

Capítulo 1. Extreme Programming: visão geral Capítulo 1 Extreme Programming: visão geral Extreme Programming, ou XP, é um processo de desenvolvimento de software voltado para: Projetos cujos requisitos são vagos e mudam com freqüência; Desenvolvimento

Leia mais

Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF

Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF 1. Identificação de um problema a ser implementado 2. Análise

Leia mais

EXIN Agile Scrum Fundamentos

EXIN Agile Scrum Fundamentos Exame Simulado EXIN Agile Scrum Fundamentos Edição Fevereiro 2015 Copyright 2015 EXIN Todos os direitos reservados. Nenhuma parte desta publicação pode ser publicado, reproduzido, copiado ou armazenada

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 8 http://www.ic.uff.br/~bianca/engsoft2/ Aula 8-17/05/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software (Caps. 13 e 14 do

Leia mais

05/05/2010. Década de 60: a chamada Crise do Software

05/05/2010. Década de 60: a chamada Crise do Software Pressman, Roger S. Software Engineering: A Practiotioner s Approach. Editora: McGraw- Hill. Ano: 2001. Edição: 5 Introdução Sommerville, Ian. SW Engineering. Editora: Addison Wesley. Ano: 2003. Edição:

Leia mais

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br Introdução Criada por Kent Baeck em 1996 durante o projeto Daimler Chrysler. O sucesso

Leia mais

Por que o Scrum? o Foco na Gerência de Projetos; o Participação efetiva do Cliente.

Por que o Scrum? o Foco na Gerência de Projetos; o Participação efetiva do Cliente. Por que o Scrum? o Foco na Gerência de Projetos; o Participação efetiva do Cliente. Desenvolvido por Jeff SUTHERLAND e Ken SCHWABER ; Bastante objetivo, com papéis bem definidos; Curva de Aprendizado é

Leia mais

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP

extreme Programming extreme Programming (XP) Metodologia Ágil Partes do XP Communication (comunicação) 1. Valores do XP extreme Programming extreme Programming (XP) Metodologia ágil para equipes pequenas a médias desenvolvendo software com requesitos vagos ou que mudam freqüentemente. [Beck 2000] Em XP, codificação é principal

Leia mais

FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas. OpenUp. Arquitetura de software

FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas. OpenUp. Arquitetura de software FIC Faculdade Integrada do Ceará Curso em tecnologia em analise e desenvolvimento de sistemas OpenUp Arquitetura de software Fortaleza/2010 OpenUP Alguns anos atrás, vários funcionários da IBM começaram

Leia mais

Manifesto Ágil - Princípios

Manifesto Ágil - Princípios Manifesto Ágil - Princípios Indivíduos e interações são mais importantes que processos e ferramentas. Software funcionando é mais importante do que documentação completa e detalhada. Colaboração com o

Leia mais

Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum

Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum Análise comparativa entre a engenharia de requisitos e o método de desenvolvimento ágil: Scrum Patrícia Bastos Girardi, Sulimar Prado, Andreia Sampaio Resumo Este trabalho tem como objetivo prover uma

Leia mais

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

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011 O Processo Unificado dos autores Ivar Jacobson, Grady Booch e James

Leia mais

Scrum Guia Prático. Raphael Rayro Louback Saliba Certified Scrum Master. Os papéis, eventos, artefatos e as regras do Scrum. Solutions. www.domain.

Scrum Guia Prático. Raphael Rayro Louback Saliba Certified Scrum Master. Os papéis, eventos, artefatos e as regras do Scrum. Solutions. www.domain. Scrum Guia Prático Os papéis, eventos, artefatos e as regras do Scrum Solutions www.domain.com Raphael Rayro Louback Saliba Certified Scrum Master 1 Gráfico de Utilização de Funcionalidades Utilização

Leia mais

Características do Software

Características do Software Questionamentos Por que tanta demora para entregar? Por que os prazos se atrasam? Por que os custos são altos? Por que não achar todos os erros antes de entregar? Por que dificuldade em medir o progresso

Leia mais

Práticas de. Engenharia de Software. Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.

Práticas de. Engenharia de Software. Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu. "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software Práticas de Engenharia de Software Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha

Leia mais

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

Processos de Software. 2007 by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br

Workshop SCRUM. Versão 5 Out 2010 RFS. rildo.santos@etecnologia.com.br Todos os direitos reservados e protegidos 2006 e 2010 Objetivo: Estudo de Caso Objetivo: Apresentar um Estudo de Caso para demonstrar como aplicar as práticas do SCRUM em projeto de desenvolvimento de

Leia mais

Engenharia de Software 2012/3 Aula 4 Engenharia de Requisitos

Engenharia de Software 2012/3 Aula 4 Engenharia de Requisitos Engenharia de Software Engenharia de Software 2012/3 Aula 4 Engenharia de Requisitos Thiago P. da Silva thiagosilva.inf@gmail.com Agenda Engenharia de Requisitos Níveis de Descrição dos Requisitos Tipos

Leia mais

Desenvolvimento ágil de software

Desenvolvimento ágil de software Desenvolvimento ágil de software Desenvolvimento ágil de software (do inglês Agile software development) ou Método ágil é um conjunto de metodologias de desenvolvimento de software. O desenvolvimento ágil,

Leia mais

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Engenharia de Software Introdução Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1 Tópicos Apresentação da Disciplina A importância do Software Software Aplicações de Software Paradigmas

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

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

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software. Processos de Software Objetivos Apresentar os modelos de processo de software Conjunto coerente de atividades para especificar, projetar, implementar e testar s de software Descrever os diferentes modelos

Leia mais

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel marcio@puntel.org

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel marcio@puntel.org Engenharia de Software I Aula 15: Metodologias Ágeis Prof. Márcio D. Puntel marcio@puntel.org Março - 2008 Antes... Manifesto Mudança de contratos Foco nas premissas... 2 Algumas metodologias Extreme Programming

Leia mais

ENGENHARIA DE REQUISITOS

ENGENHARIA DE REQUISITOS Universidade Federal de Santa Maria Mestrado em Computação ELC 923 Processos de Negócio e Engenharia de Requisitos Especialização em Modelagem e Desenvolvimento de Aplicações Web com JAVA ENGENHARIA DE

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Metodologias para Desenvolvimento de Software XP e SCRUM Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Agenda Desenvolvimento Ágil de Software

Leia mais

Workshop. Workshop SCRUM. Rildo F Santos. rildo.santos@etecnologia.com.br. Versão 1 Ago 2010 RFS. www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260

Workshop. Workshop SCRUM. Rildo F Santos. rildo.santos@etecnologia.com.br. Versão 1 Ago 2010 RFS. www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260 Workshop www.etcnologia.com.br (11) 9123-5358 (11) 9962-4260 Rildo F Santos twitter: @rildosan skype: rildo.f.santos http://rildosan.blogspot.com/ Todos os direitos reservados e protegidos 2006 e 2010

Leia mais

Questões Gerais e Modelos de Ciclo de Vida

Questões Gerais e Modelos de Ciclo de Vida Questões Gerais e Modelos de Ciclo de Vida 41 Existem vários modelos de desenvolvimento de software, cada um com suas particularidades. A respeito desse assunto, assinale a opção correta. A) No modelo

Leia mais

Gestão da Tecnologia da Informação

Gestão da Tecnologia da Informação TLCne-051027-P0 Gestão da Tecnologia da Informação Disciplina: Governança de TI São Paulo, Outubro de 2012 0 Sumário TLCne-051027-P1 Conteúdo desta Aula Abordar o domínio Adquirir e Implementar e todos

Leia mais

Objetivos do Módulo 3

Objetivos do Módulo 3 Objetivos do Módulo 3 Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Conceitos do Scrum O que é um Sprint Decifrando um Product backlog Daily Scrum, Sprint Review, Retrospectiva

Leia mais

Metodologia de Desenvolvimento de Sistemas (Versão 2.0)

Metodologia de Desenvolvimento de Sistemas (Versão 2.0) SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA INTEGRAÇÃO NACIONAL DEPARTAMENTO NACIONAL DE OBRAS CONTRA AS SECAS Metodologia de Desenvolvimento de Sistemas (Versão 2.0) 1 Sumário 1Introdução... 5 1.1 Objetivo...

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

Leia mais

Engenharia de Software Questionário sobre Engenharia de Requisitos Resolvido Prof. MSc Wagner Siqueira Cavalcante

Engenharia de Software Questionário sobre Engenharia de Requisitos Resolvido Prof. MSc Wagner Siqueira Cavalcante 1 - Q193183 ( Prova: FCC - 2011 - TRT - 19ª Região (AL) - Analista Judiciário - Tecnologia da Informação / Engenharia de Software / Análise de Requisitos; Engenharia de Requisitos; ) De acordo com Sommerville,

Leia mais

Wesley Torres Galindo

Wesley Torres Galindo Qualidade, Processos e Gestão de Software Professores: Alexandre Vasconcelos e Hermano Moura Wesley Torres Galindo wesleygalindo@gmail.com User Story To Do Doing Done O que é? Como Surgiu? Estrutura Apresentar

Leia mais

development Teresa Maciel DEINFO/UFRPE

development Teresa Maciel DEINFO/UFRPE development Teresa Maciel DEINFO/UFRPE Prazos curtos Baixo custo Agregação ao negócio Fidelidade do cliente Competitividade Sobrevivência Cenário 2000 35% dos projetos apresentam sucesso 31% dos projetos

Leia mais

Metodologia de Gestão e Desenvolvimento de Software. Coordenação Geral de Tecnologia da Informação

Metodologia de Gestão e Desenvolvimento de Software. Coordenação Geral de Tecnologia da Informação Metodologia de Gestão e Desenvolvimento de Software Coordenação Geral de Tecnologia da Informação 2 Índice 1. Processos Organizacionais... 7 1.1. A gestão da demanda... 7 1.2. e Responsabilidades... 7

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Requisitos de Software Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.br Requisito O que é um REQUISITO? Em software: É a CARACTERIZAÇÃO do que o

Leia mais

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

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr Engenharia de Software Apostila I >>> Introdução à ES - HEngholmJr Histórico de Revisões Data Versão Descrição Autor 12/08/2014 1.0 Criação da primeira versão HEngholmJr Agenda Introdução à Engenharia

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE CMP1280/CMP1250 Prof. Me. Fábio Assunção Introdução à Engenharia de Software SOFTWARE Programa de computador acompanhado dos dados de documentação e configuração

Leia mais

Fundamentos em Teste de Software. Vinicius V. Pessoni viniciuspessoni@gmail.com

Fundamentos em Teste de Software. Vinicius V. Pessoni viniciuspessoni@gmail.com Fundamentos em Teste de Software Vinicius V. Pessoni viniciuspessoni@gmail.com Objetivos do treinamento 1. Expor os fundamentos de Teste de Software; 2. Conceituar os Níveis de Teste; 3. Detalhar sobre

Leia mais

Guia do Scrum. Um guia definitivo para o Scrum: As regras do jogo. Julho de 2013. Desenvolvido e mantido por Ken Schwaber e Jeff Sutherland

Guia do Scrum. Um guia definitivo para o Scrum: As regras do jogo. Julho de 2013. Desenvolvido e mantido por Ken Schwaber e Jeff Sutherland Guia do Scrum Um guia definitivo para o Scrum: As regras do jogo Julho de 2013 Desenvolvido e mantido por Ken Schwaber e Jeff Sutherland Í ndice O propósito do Guia do Scrum... 3 Definição do Scrum...

Leia mais

Ferramenta para gestão ágil

Ferramenta para gestão ágil Ferramenta para gestão ágil de projetos de software Robson Ricardo Giacomozzi Orientador: Everaldo Artur Grahl Agenda Introdução Objetivos Fundamentação teórica Desenvolvimento Resultados e discussões

Leia mais

Guia do Scrum. Um guia definitivo para o Scrum: As regras do jogo. Outubro de 2011. Desenvolvido e mantido por Ken Schwaber e Jeff Sutherland

Guia do Scrum. Um guia definitivo para o Scrum: As regras do jogo. Outubro de 2011. Desenvolvido e mantido por Ken Schwaber e Jeff Sutherland Guia do Scrum Um guia definitivo para o Scrum: As regras do jogo Outubro de 2011 Desenvolvido e mantido por Ken Schwaber e Jeff Sutherland Índice O propósito do Guia do Scrum... 3 Visão geral do Scrum...

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Clayton Maciel Costa

Leia mais

Professor: Disciplina:

Professor: Disciplina: Professor: Curso: Disciplina: Marcos Morais de Sousa marcosmoraisdesousa@gmail.com marcosmoraisdesousa.blogspot.com Sistemas de informação Engenharia de Software II Gerenciamento de Qualidade CMMI e MPS.BR

Leia mais

Teste de software. Definição

Teste de software. Definição Definição O teste é destinado a mostrar que um programa faz o que é proposto a fazer e para descobrir os defeitos do programa antes do uso. Quando se testa o software, o programa é executado usando dados

Leia mais

Wesley Torres Galindo. wesleygalindo@gmail.com

Wesley Torres Galindo. wesleygalindo@gmail.com Wesley Torres Galindo wesleygalindo@gmail.com Wesley Galindo Graduação em Análise e Desenvolvimento de Sistemas Mestrado em Engenharia de Software Engenheiro de Software Professor Faculdade Escritor Osman

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2 Processos de Desenvolvimento de Software Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2 A Engenharia de Software Uma Tecnologia em Camadas ferramentas métodos processo foco na qualidade

Leia mais

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL E-MAIL: PEDROHOLI@GMAIL.COM CMMI E METODOLOGIAS Á G EIS

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL E-MAIL: PEDROHOLI@GMAIL.COM CMMI E METODOLOGIAS Á G EIS PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL E-MAIL: PEDROHOLI@GMAIL.COM CMMI E METODOLOGIAS Á G EIS CMMI E METODOLOGIAS ÁGEIS Os métodos de desenvolvimento Ágeis e

Leia mais

O Ciclo de Vida do Desenvolvimento de Sistemas i

O Ciclo de Vida do Desenvolvimento de Sistemas i O Ciclo de Vida do de Sistemas i O Ciclo de Vida do de Sistemas ( SDLC Systems Development Life Cycle), conhecido também com o ciclo de vida do software refere-se aos estágios de concepção, projeto, criação

Leia mais

Conceitos Básicos e Implementação. Entrega de Serviços. Professor Gledson Pompeu (gledson.pompeu@gmail.com)

Conceitos Básicos e Implementação. Entrega de Serviços. Professor Gledson Pompeu (gledson.pompeu@gmail.com) Conceitos Básicos e Implementação Pref. Mun. Vitória 2007 Analista de Suporte 120 A ITIL (information technology infrastructure library) visa documentar as melhores práticas na gerência, no suporte e na

Leia mais

DESENVOLVIMENTO DE SISTEMAS

DESENVOLVIMENTO DE SISTEMAS Agência Nacional de Vigilância Sanitária METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS GGTIN GESIS Brasília, julho de 2006. Página: 1 Histórico de Revisões Data Versão Descrição Autor 12/06/2006 1.0.00 Criação

Leia mais

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

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: SIG Aula N : 11 Tema: Como desenvolver e

Leia mais

Métodos Ágeis para Desenvolvimento de Software Livre

Métodos Ágeis para Desenvolvimento de Software Livre Métodos Ágeis para Desenvolvimento de Software Livre Dionatan Moura Jamile Alves Porto Alegre, 09 de julho de 2015 Quem somos? Dionatan Moura Jamile Alves Ágil e Software Livre? Métodos Ágeis Manifesto

Leia mais

Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil

Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil franciscogerson10@gmail.com Conteúdo Programático Introdução O que é um processo ágil A política de desenvolvimento ágil Fatores

Leia mais

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução.

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução. Introdução Métodos Ágeis em Engenharia de Software Thiago do Nascimento Ferreira Desenvolvimento de software é imprevisível e complicado; Empresas operam em ambiente global com mudanças rápidas; Reconhecer

Leia mais

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE RESUMO Fazer um bom levantamento e especificação de requisitos é algo primordial para quem trabalha com desenvolvimento de sistemas. Esse levantamento

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 5 http://www.ic.uff.br/~bianca/engsoft2/ Aula 5-05/05/2006 1 Dúvidas da aula passada RUP (Rational Unified Process) é uma ferramenta ou um processo? Resposta: os dois. O

Leia mais

a) O Sprint deve ser realizado num período máximo de 40 dias e ter uma equipe de trabalho não superior a 10 pessoas.

a) O Sprint deve ser realizado num período máximo de 40 dias e ter uma equipe de trabalho não superior a 10 pessoas. Modelos de Ciclo de Vida e Metodologias de Software 54. Um dos principais conceitos do Scrum para atacar a complexidade do desenvolvimento e gerenciamento de software é a implantação de um controle descentralizado,

Leia mais