UNIVERSIDADE DO SUL DE SANTA CATARINA CARLOS DOS SANTOS CADAVEZ GERENCIAMENTO DO CICLO DE VIDA DE APLICAÇÕES, UTILIZANDO FERRAMENTAS OPEN SOURCE

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

Download "UNIVERSIDADE DO SUL DE SANTA CATARINA CARLOS DOS SANTOS CADAVEZ GERENCIAMENTO DO CICLO DE VIDA DE APLICAÇÕES, UTILIZANDO FERRAMENTAS OPEN SOURCE"

Transcrição

1 UNIVERSIDADE DO SUL DE SANTA CATARINA CARLOS DOS SANTOS CADAVEZ GERENCIAMENTO DO CICLO DE VIDA DE APLICAÇÕES, UTILIZANDO FERRAMENTAS OPEN SOURCE FLORIANÓPOLIS 2014

2 CARLOS DOS SANTOS CADAVEZ GERENCIAMENTO DO CICLO DE VIDA DE APLICAÇÕES, UTILIZANDO FERRAMENTAS OPEN SOURCE Trabalho de Conclusão de Curso apresentado ao Curso de Sistemas de Informação da Universidade do Sul de Santa Catarina, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Orientadora: Prof.ª Maria Inés Castiñeira, Dra. Florianópolis 2014

3 GERENCIAMENTO DO CICLO DE VIDA DE APLICAÇÕES, UTILIZANDO FERRAMENTAS OPEN SOURCE Este Trabalho de Conclusão de Curso foi julgado adequado à obtenção do título de Bacharel em Sistemas de Informação e aprovado em sua forma final pelo Curso de Graduação em Sistemas de Informação da Universidade do Sul de Santa Catarina.

4 Aos meus pais, irmãs, minha namorada Carolina que, com muito carinho e incentivo, não mediram esforços para que eu chegasse até esta etapa de minha vida.

5 AGRADECIMENTOS Agradeço à minha mãe Raquel, heroína que sempre me apoiou, incentivo em todas as horas. À minha namorada Carolina, pela paciência, incentivo, pela força e carinho. À minha orientadora Maria Inês, pela paciência na orientação e incentivo que tornaram possível a conclusão deste trabalho.

6 RESUMO O processo de desenvolvimento de software é uma atividade bastante complexa e tem aumentado muito com as necessidades cada vez maior por sistemas computacionais. Essa demanda crescente traz consigo a preocupação em maximizar os resultados através de um controle eficaz das aplicações de software, controle que permita a escalabilidade dos sistemas e o acompanhamento de todo o seu ciclo de vida. Para um acompanhamento eficaz processos e metodologias existem como forma de oferecer auxílio, utilizando para isso muitas ferramentas. Com o intuito de oferecer uma solução que possa auxiliar essas necessidades foi desenvolvida esta monografia. Neste trabalho é apresentada uma proposta de solução para o gerenciamento do ciclo de vida das aplicações (Application Lifecycle Management ou ALM), utilizando para isso um conjunto formado por ferramentas de software livre. Esse conjunto oferece suporte a diversas etapas presentes no desenvolvimento de software e pode ser aplicado a diferentes linguagens de desenvolvimento. É apresentado também uma descrição de algumas das ferramentas que compõem o processo, dando uma visão geral de algumas de suas funcionalidades e de como estas podem trabalhar em conjunto, conformando uma solução de ALM. Concluindo percebe-se que a adoção do conjunto de ferramentas proposto serve para solucionar muitos dos problemas encontrados no processo de desenvolvimento de software, observa-se também que essa implementação de ferramentas e práticas pode ser feita de forma gradual. Finalizando são apresentadas algumas sugestões para prosseguimento à partir deste trabalho. Palavras-chave: Gerenciamento do ciclo de vida das aplicações. ALM. Ferramentas opensource.

7 LISTA DE ILUSTRAÇÕES Figura 1 Fases da engenharia de software Figura 2 Classificação funcional das ferramentas CASE Figura 3 Classificação de ferramentas CASE com base em atividades Figura 4 Os cinco estágios do processo de testes Figura 5 Etapas metodológicas Figura 6 Interface novo usuário Figura 7 Interface de usuários Figura 8 Interface de criação de novo papel Figura 9 Interface de projetos Figura 10 Interface para criação de projeto Figura 11 Interface para criação de tarefa Figura 12 Interface de tarefas do projeto Figura 13 Gráfico de Gantt Figura 14 Interface de relatório de tempo gasto Figura 15 Pastas criadas nos diretórios Figura 16 Tela projeto Subversion Figura 17 Tela Subversion, arquivo criado Figura 18 Tela Subversion novo arquivo Figura 19 Interface Eclipse, integrando com Subversion Figura 20 Interface Eclipse com projeto Subversio Figura 21 Integração Redmine com Subversion Figura 22 Arquivos integrados Figura 23 Arquivo pom Figura 24 Arquétipos disponíveis Figura 25 Configuração projeto Maven Figura 26 Arquivos pom gerado Figura 27 Fases do ciclo de vida Maven Figura 28 Eclipse, arquétipos disponíveis Figura 29 Estrutura do projeto Maven gerado Figura 30 Relatório Jacoco

8 Figura 31 Arquivos não versionados Figura 32 Tela inicial Jenkins Figura 33 Tela de configuração Jenkins Figura 34 Tela new job Figura 35 Tela configuração do repositório Figura 36 Tela de projeto, build bem sucedido Figura 37 Interface build periódico Figura 38 Interface build com problemas Figura 39 Classe de testes JUnit Figura 40 Codificação da classe de teste Figura 41 Codificação classe Data Figura 42 Resultado do teste Figura 43 Resultado do build no Jenkins Figura 44 Fluxograma da proposta de uso das ferramentas

9 LISTA DE QUADROS Quadro 1 Resumo da classificação da pesquisa

10 SUMÁRIO 1 INTRODUÇÃO PROBLEMÁTICA OBJETIVOS Objetivo geral Objetivos específicos JUSTIFICATIVA ESTRUTURA DO TRABALHO REVISÃO BIBLIOGRÁFICA ENGENHARIA DE SOFTWARE Processo Métodos Ferramentas FERRAMENTAS CASE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Especificação de software Projeto e implementação de software Validação de software Evolução de software GERENCIAMENTO DO CICLO DE VIDA DAS APLICAÇÕES Pilares da ALM Disciplinas ALM Gerenciamento de Requisitos (Requeriments Management) Gerenciamento de configuração de software (Software configuration Management) Montagem e integração (build and integration) Gerenciamento de Defeitos (Defect Management) Teste unitário, Integrado e de Regressão (Unit test, Integrated and Regression) Análise de Código (code analysis) Teste de Sistema (System test) Relatórios de Acompanhamento (Status Report) MÉTODO DE PESQUISA CARACTERIZAÇÃO DO TIPO DA PESQUISA ETAPAS METODOLÓGICAS DELIMITAÇÕES... 45

11 4 FERRAMENTAS PARA O GERENCIAMENTO DO CICLO DE VIDA DAS APLICAÇÕES PESQUISA DAS FERRAMENTAS DE ALM DESCRIÇÃO DAS FERRAMENTAS Gerenciamento de requisitos com Redmine Controle de versões com Subversion Gerenciamento de dependências e builds com Maven Integração contínua com Jenkins Testes unitários com JUnit Considerações sobre o uso das ferramentas no ciclo de vida das aplicações Relato de experiências CONCLUSÕES E TRABALHOS FUTUROS CONCLUSÕES RECOMENDAÇÕES... 85

12 12 1 INTRODUÇÃO A demanda por soluções computacionais aumentou consideravelmente, devido à competitividade cada vez maior entre as empresas, bem como à sociedade, que exige sistemas a cada dia mais sofisticados. Alguns sistemas assumiram muita importância, como por exemplo os encontrados nos smartphones, que se popularizaram e estão presente nas mãos de muitas pessoas. Segundo pesquisa de emarketer.com, Até, 2017, o Brasil terá 70,5 milhões de usuários de smartphones em uso (de LUCA, 2014). Diante dessa demanda sempre crescente de sistemas informatizados, diversos métodos, ferramentas e todo um corpo de conhecimento têm sido criados ao longo dos anos, visando guiar o processo de desenvolvimento de software. A disciplina mãe dessa área, e de todos os novos conceitos relacionados que vão surgindo, é a Engenharia de Software. Ela foi proposta em 1968, em um momento histórico conhecido como crise de software. Segundo Sommerville (2007, p. 5), A engenharia de software é uma disciplina de engenharia relacionada com todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até sua manutenção, depois que entrar em operação. Esta importante disciplina está delimitada, segundo o guia de engenharia de software (Software Engineering Body of Knowledge - Swebok), em 10 áreas de conhecimento, que são: requisitos de software: trata do levantamento, análise, especificação e validação dos requisitos de software, bem como o gerenciamento deles durante todo o ciclo de vida do produto. (SWEBOK, 2014); design de software: etapa em que são analisados os requisitos de software, definindo a arquitetura. Nesta fase são descritos os componentes em um nível de detalhe que permita a sua construção. (SWEBOK, 2014); teste de software: segundo o (SWEBOK, 2014): Teste de software é uma atividade executada para avaliar a qualidade do produto, e para melhorá-lo pela identificação de defeitos e problemas. Teste de software consiste da verificação dinâmica do comportamento de um programa em um conjunto finito de casos de teste, adequadamente selecionados de um domínio de execução, usualmente infinito, contra o comportamento esperado; construção de software: conforme (SWEBOK, 2014), a construção de software

13 13 refere-se a criação detalhada do software, através da combinação da codificação, verificação, testes unitários, testes de integração e depuração; manutenção de Software: atividades de suporte custo-efetivo a um sistema de software, que podem ocorrer antes e após a entrega do software. Após a entrega do software são feitas modificações com o objetivo de corrigir falhas, melhorar seu desempenho ou adapta-lo a um ambiente modificado. Antes da entrega do software são feitas atividades de planejamento (SWEBOK, 2014); gerência de configuração de software: em concordância com (SWEBOK, 2014) a gerência de configuração de software trata de identificar a configuração do software em pontos distintos do tempo, com o propósito de controlar modificações na configuração e manter a integridade durante o ciclo de vida do sistema; gerência de engenharia de software: trata dos aspectos da Engenharia de software, apontando mensuração e gerenciamento (SWEBOK, 2014); processo de engenharia de software: Esta etapa trata da implementação, avaliação, mensuração, gerenciamento, alteração e melhora do processo de software. (SWEBOK, 2014); ferramentas e métodos de engenharia de software: apresenta as ferramentas e os métodos a serem aplicados na engenharia de software (SWEBOK, 2014); qualidade de software: De acordo com (SWEBOK, 2014) nessa fase se aborda as considerações relativas à qualidade de software, esta etapa vai além dos processos do ciclo de vida do software. Mudanças de paradigma e a presença da tecnologia da informação dentro das empresas fizeram surgir a necessidade de maior interação entre a gestão de negócios e a engenharia de software. Surgiu, então, o conceito de gerenciamento do ciclo de vida dos aplicativos, ou do inglês, ALM (Application Lifecycle Management). No entendimento de (CARLOS, 2014 ), ALM é todo processo que guia a vida útil de uma aplicação desde sua concepção, passando pela construção, operação e evolução. Luciano Condé (2009) esclarece que o ALM não apenas observa qual é o método de construção, mas preocupa também em como a empresa está gastando o seu dinheiro no gerenciamento daquele ativo corporativo. O autor também afirma que um destaque importante é a diferença entre ALM e o ciclo de vida do desenvolvimento de software ou

14 14 Software Development Lifecycle (SDLC). Segundo ele o SDLC pode ser definido como um processo focado no desenho, criação e manutenção de aplicações. Já o ALM é um guia que acompanha toda a vida da aplicação, sendo que o ciclo de vida do desenvolvimento do software (SDLC) é uma das fases do ALM. Esta prática envolve diferentes papéis, chamados de Pilares da ALM. A união destes pilares fornece os recursos necessários para que as empresas possam gerenciar os ciclos de vida de suas aplicações (CONDÉ, 2009). Ainda, no entendimento de Condé (2009), para identificar as entradas, resultados esperados e os envolvidos em cada etapa, a ALM é dividida em disciplinas. Todo ciclo de vida está compreendido e separado em fases. As fases da ALM são: definição, construção e operação, sendo que cada fase possui ainda subdivisões ou subfases. A implantação de ALM é realizada através da utilização de ferramentas. Essas ferramentas atuam de forma integrada e auxiliam nas seguintes etapas: gerenciamento de requisitos, arquitetura, codificação, testes, controle e gerenciamento de versões. Empresas como: Microsoft, HP, Borland, IBM, Xerox possuem ferramentas para implantação de ALM. (GARTNER, 2012). 1.1 PROBLEMÁTICA Um dos grandes desafios das empresas de software é como modernizar o processo de desenvolvimento. A estratégia considerada para isso deve estar presente durante todo o ciclo de desenvolvimento. As aplicações modernas estão focadas em um novo perfil de usuário. Esse novo consumidor está conectado diariamente, conhece aplicativos, utiliza serviços on-line, busca mudanças muito mais rapidamente, faz com que os sistemas atuem como serviços, desta forma a qualidade precisa estar presente durante todo o ciclo de vida. Assim, as respostas devem ser geradas mais rapidamente, e isto obriga as empresas a repensarem o modelo de construção de aplicações. Novos modelos devem permitir a entrega de atualizações constantes e a integração da equipe, seja ela grande ou pequena. Hoje em dia, muitas organizações têm grandes equipes de desenvolvimento, trabalhando em software para suportar o negócio. Muitas vezes, as equipes estão espalhadas

15 15 no mundo. Isto coloca muitos problemas potenciais, tais como as questões de colaboração, manutenção do código fonte, gerenciamento de requisitos e, assim, por diante. Sem processos para suportar o desenvolvimento de software moderno, o negócio provavelmente vai sofrer. (ROSSBERG e OLAUSSON, 2012). A ALM surge como alternativa para esse novo modelo de desenvolvimento. Diversas ferramentas auxiliam nesse processo, algumas proprietárias e outras de software livre ou código aberto, do inglês (open source). Nesse sentido, software livre consiste em um programa que pode ter seu código fonte alterado por qualquer usuário e não exige licença para distribuição. (ASSOCIAÇÃO DE SOFTWARE LIVRE.ORG, 2014). Entre as diversas dificuldades das organizações para adotar essas estratégias de ALM, podem ser mencionadas a falta de conhecimento sobre esse modelo e sobre as ferramentas que facilitam a sua aplicação. Dessa forma, as perguntas de pesquisa deste trabalho se resumem em: como a estratégia de ALM pode auxiliar à organização no gerenciamento do processo de software? Quais ferramentas de software livre/código aberto suportam essa alternativa? Quais as diferenças entre essas diversas ferramentas e quais os objetivos de cada uma delas? 1.2 OBJETIVOS A seguir, são apresentados os objetivos deste trabalho Objetivo geral Definir um conjunto (ou pilha) de ferramentas open source, que oferecem auxilio no gerenciamento das diversas etapas do ciclo de vida das aplicações.

16 Objetivos específicos Os objetivos específicos são: apresentar o conceito de ALM explicitando suas características principais; apresentar a importância de ALM no cenário de desenvolvimento de software atual; pesquisar e selecionar ferramentas de código aberto usadas no processo de ALM; descrever a utilização de ferramentas de código aberto utilizadas no processo de ALM, demonstrando algumas de suas funcionalidades. 1.3 JUSTIFICATIVA A adoção de ALM é importante para toda a empresa que deseja automatizar seus processos de desenvolvimento e acompanhar sua aplicação durante todo o ciclo de vida. Este conceito permite uma série de possibilidades de integração entre os setores de desenvolvimento, além de se adaptar à empresa de acordo com seu nível de maturidade. ALM deve ser implantada após uma análise de nível de maturidade da organização. Neste trabalho, serão apresentados os passos de implantação utilizando ferramentas open source, abordagem que é muito apropriada para times pequenos e médios (SOUZA, 2013), assim como pequenas e médias empresas. Além disso, a opção pelo uso de ferramentas de código aberto permite uma independência maior de fornecimento do software, o cliente não fica preso a nenhum fornecedor específico, proporcionando uma maior personalização. Essa prática proporciona maior segurança, visto que o cliente tem acesso ao código e pode saber como é realizado o acesso aos dados. (MENDONÇA, 2012).

17 17 A grande quantidade de interessados, em software livre ou de código aberto, compõem a chamada comunidade de usuários e desenvolvedores de software livre. Quando há algum problema, seja invasão por vírus ou qualquer outro bug, esta comunidade se une em busca da solução. Muitas vezes, a solução é encontrada antes mesmo de a maioria dos usuários terem tido o problema. (BERNARDO, 2012). Outro diferencial, no uso de software livre ou de código aberto, é o fato de suas ferramentas estarem sempre sendo melhoradas, tornando muito baixa a probabilidade de erros desconhecidos, o que aumenta a longevidade. Os usuários de software livre/código aberto, esta comunidade é, neste caso, produtora e consumidora do sistema e ela mesma busca assegurar a sua longevidade. (FERREIRA, 2005). 1.4 ESTRUTURA DO TRABALHO Esta monografia está estruturada da seguinte forma: o capítulo 1 apresenta uma introdução a ALM, procurando demonstrar sua aplicação e ideia geral do modelo, assim como os objetivos e justificativa deste trabalho; o capítulo 2 evidencia os aspectos da ALM descrevendo cada passo e subdivisões de cada etapa, e, sua relação com a engenharia de software; o capítulo 3 apresenta o método; no capítulo 4, são descritos os passos para implantação de ALM utilizando pilha de ferramentas open source. Também há um detalhamento das ferramentas; O capítulo 5 apresenta as conclusões indicando a motivação para implantação de ALM nas empresas.

18 18 2 REVISÃO BIBLIOGRÁFICA Este capítulo apresenta a revisão bibliográfica. Para Silva e Menezes (2005 p.37), a revisão bibliográfica refere-se a fundamentação teórica adotada para tratar o tema e o problema de pesquisa por meio da literatura publicada, criando assim a estrutura conceitual que dará sustentação ao desenvolvimento da pesquisa. Desta forma será descrito neste capítulo a teoria que fundamenta alguns dos aspectos da Engenharia de Software e suas ferramentas. Em seguida é apresentada a fundamentação teórica relativa ao gerenciamento do ciclo de vida das aplicações. 2.1 ENGENHARIA DE SOFTWARE A engenharia de software é um ramo da engenharia focada no desenvolvimento dentro de custos adequados, de sistemas de software. Esta é a disciplina que esta associada a todos os aspectos envolvidos na produção de software, desde a etapa de especificação do sistema até a sua fase de manutenção. O conceito de engenharia de software surgiu em 1968 em uma conferência para discutir a então chamada crise de software. Esta crise era resultado direto da introdução de um novo hardware baseado em circuitos integrados. As aplicações de computador, até então consideradas não realizáveis, passaram a ser vistas como propostas viáveis. (SOMMERVILLE, 2007). Na visão de (BAUER, 1969 apud KECHI, 2012, p. 7) A engenharia de software é o estabelecimento e uso de sólidos princípios de engenharia a fim de obter um software que seja confiável e que funcione de forma econômica e eficiente em maquinas reais. O autor ainda afirma que os sistemas deveriam ser construídos em módulos, e em níveis. Para Pressman (2011, p. 39), a engenharia de software é uma tecnologia em camadas, como pode ser visto na figura 1. O autor afirma que: qualquer abordagem de engenharia deve estar fundamentada em um comprometimento organizacional com a qualidade.

19 19 Figura 1 Fases da engenharia de software Fonte: Pressman (2011, p. 39) A camada foco na qualidade está presente em qualquer engenharia e, dá ênfase a preocupação com a qualidade. Qualidade em engenharia de software está baseada nos conceitos de gerenciamento da qualidade total para melhoria dos processos. Esta é uma abordagem de gerenciamento organizacional para obter sucesso em longo prazo através da satisfação dos clientes (BAUER, 1969 apud KECHI, 2012, p. 8) Processo Para a engenharia de software a camada de processos é a base. Nas palavras de Pressman (2011, p. 39), o processo de engenharia de software é a liga que mantém as camadas de tecnologia coesas e possibilita o desenvolvimento de software de forma racional e dentro do prazo. Nesta camada se define a metodologia que deve ser estabelecida para a entrega efetiva de tecnologia de engenharia de software. Sob o ponto de vista de Kechi (2012, p. 8): A camada de processos permite integrar as camadas de métodos e de ferramentas para que se possa desenvolver um software nos prazos acordados e de maneira adequada. Um processo permite que se planeje e se controle projetos de software. No entender de Pressman (2011, p. 40), uma metodologia de processo para a engenharia de software compreende cinco atividades: comunicação: antes de qualquer trabalho é de vital importância a comunicação entre o cliente e todos os interessados, visando compreender a intenção e levantar as necessidades que ajudarão a definir as funções e características do software;

20 20 planejamento: esta atividade cria um mapa, que guiará a jornada da equipe. O mapa é chamado de plano de projeto de software e define o trabalho descrevendo as tarefas técnicas a serem conduzidas, os riscos, recursos necessários, produtos resultantes e um cronograma de trabalho; modelagem: criação de modelos para melhor entender as necessidades do software e o projeto que irá atender essas necessidades; construção: combinação de geração de código (manual ou automatizada) e testes necessários para revelar erros na codificação; emprego: software como unidade completa ou como um incremento parcialmente efetivado entregue ao cliente, que avalia o produto e fornece feedback baseado na avaliação. Essas cinco atividades podem ser utilizadas para desenvolvimento de programas simples, bem como para grandes e complexos projetos. Os detalhes serão diferentes para cada um dos casos, mas as atividades metodológicas serão as mesmas (PRESSMAN, 2011, p. 40) Métodos Esta camada, no entender de Pressman (2011, p. 40): fornece as informações técnicas para o desenvolvimento de software, envolve ampla gama de tarefas, que incluem: comunicação, análise de requisitos, modelagem de projeto, construção de programa, testes e suporte. Para Kechi (2012, p. 12), métodos são importantes pois definem, por meio de suas notações, um canal de comunicação uniforme entre os membros da equipe Ferramentas As ferramentas de engenharia de software fornecem o suporte automatizado ou semi-automatizado para o processo e para os métodos. Quando uma ferramenta usa as informações geradas por outra, é estabelecido um sistema de suporte ao desenvolvimento de

21 software, denominado: engenharia de software com o auxilio de computador ou, do inglês, Computer Aided Software Engineering, abreviado como CASE (PRESSMAN, 2011, p. 40) FERRAMENTAS CASE Como visto no fim da seção anterior, as ferramentas CASE, ou engenharia de software com o auxilio de computador, é o nome que se dá ao sistema utilizado para apoiar atividades de processo de software, entre as quais ferramentas para: engenharia de requisitos, projeto, dicionário de dados, compiladores, depuradores, ferramentas de construção de sistemas entre outros (SOMMERVILLE, 2004 p. 33). Ainda no entendimento de Sommerville (2004, p. 53), o auxilio de computador na engenharia de software apoia o processo, automatizando algumas atividades e fornecendo informações sobre o software que está sendo desenvolvido. A seguir algumas atividades que podem ser automatizadas utilizando CASE (SOMMERVILLE, 2004, P.56): desenvolvimento de modelos gráficos de sistemas, como parte das especificações de requisitos ou de projeto de software; dicionário de dados contendo informações sobre suas entidades e sua relação em um projeto; geração de interface de usuário a partir de descrição gráfica da interface, que é criada interativamente junto com o usuário; depuração de programas, pelo fornecimento de informações sobre um programa em execução; tradução automatizada de programas a partir de uma antiga linguagem de programação, como cobol, para uma versão mais recente. No guia de engenharia de software (Software Engineering Body of Knowledge - Swebok), as ferramentas são definidas de acordo com cada área de conhecimento:

22 22 a) ferramentas de requisitos de software são as ferramentas para lidar com os requisitos de software e podem dividir-se em duas categorias: ferramentas para modelagem e ferramentas para gerenciamento de requisitos. Ferramentas para gerenciamento de requisitos suportam normalmente atividades como: documentação, rastreamento e gerenciamento de mudanças (SWEBOK, 2014); b) ferramentas de design de software de acordo com o Swebok (2014), são criadas para apoiar a criação dos artefatos de projetos de software durante o processo de desenvolvimento. Podem suportar as seguintes atividades: tradução do modelo de requisitos em uma representação de design, fornecer apoio para a representação de componentes funcionais e sua interface, fornecer diretrizes para avaliação de qualidade; c) ferramentas de teste de software apoiam o projeto de testes gerando casos de testes e os tornando mais eficazes. São categorizadas de acordo com a suas funcionalidades (SWEBOK, 2004); d) ferramentas de construção de software são as que oferecem auxilio no processo de construção de software. Como os exemplos a seguir, de acordo com o Swebok (2004): ambiente de desenvolvimento, do inglês, Integrated Development Environment (IDE), oferece auxilio na construção de software integrando um conjunto de ferramentas de desenvolvimento. A escolha destes ambientes pode afetar a eficiência na qualidade da construção do software. As IDEs modernas apresentam recursos para: compilação, detecção de erros, controle de código fonte, teste, depuração e suporte para refatoração; 1 construtor de Interface gráfica: essa ferramenta fornece auxilio na criação de interfaces de usuário, chamada em inglês de Graphical User Interface (GUI). Ela inclui normalmente um editor visual com o qual é possível criar formulários, janelas e gerenciadores de layout, clicando e arrastando (drag and drop). Alguns destes construtores geram automaticamente o 1 De acordo com Fowler (1999), por refatoração entende-se o processo de mudança do código sem alteração do comportamento do sistema, melhorando seu comportamento para minimizar a ocorrência de erros.

23 código fonte correspondente ao projeto GUI visual. Estas ferramentas podem ser integradas a IDEs através de plug-ins e) ferramentas de manutenção de software são as importantes para a manutenção de software, como por exemplo, analisadores estáticos, que apresentam resumos de conteúdo do programa, analisadores dinâmicos, permitem traçar o caminho de execução de um programa, analisadores de dependência, permitem analisar e compreender as inter-relações entre os componentes de um programa, ferramentas de engenharia reversa, gerando artefatos como descrições e especificações de projetos. Fundamenta o Swebok (2004); f) ferramentas de gerenciamento de configuração de software. Contempla o Swebok (2004) a este respeito que, essas ferramentas podem ser divididas em três classes de acordo com seu escopo, sendo que podem oferecer, suporte individual, de apoio relacionado com o projeto, e de apoio ao processo. As ferramentas de apoio individual são suficientes para pequenas organizações ou grupos de desenvolvimento, oferecem o suporte ao controle de versão, manipulação e controle de mudanças. As de apoio relacionado com o projeto auxiliam na gestão do espaço de trabalho para as equipes de desenvolvimento, são adequadas para pequenas e médias organizações. As que fornecem o apoio ao processo podem automatizar partes de um processo da empresa, criando suporte para o fluxo de trabalho e gerenciando papeis e responsabilidades; g) ferramentas de gerenciamento de engenharia de software: conforme o Swebok (2004), essas ferramentas são muitas vezes utilizadas para dar visibilidade e controle aos processos de gestão de engenharia de software. Podem ser automatizadas ou manualmente implementadas. Ainda segundo o guia elas podem ser divididas em categorias: ferramentas de planejamento e acompanhamento de projetos: podem ser usadas para estimar esforço e custo do projeto, bem como preparar 2 Segundo Prada (2008), plug-in é todo o programa, ferramenta ou extensão que se encaixa a outro programa principal para adicionar mais recursos ou funções a ele. Normalmente são leves, de fácil instalação e não comprometem o funcionamento do programa principal.

24 24 cronogramas de projetos. Podem ser automatizadas, recebendo o tamanho estimado e outras características de um produto de software, produzindo uma estimativa de esforço, cronograma e custo. Ferramentas de planejamento incluem também ferramentas automatizadas de agendamento que verificam as tarefas, durações estimadas, relação de precedência gerando gráfico de Gantt, ressalta o Swebok (2004); ferramentas de controle: utilizadas para rastrear os marcos do projeto, reuniões de status do projeto, ciclos de iteração, demonstração de produtos e itens de ação (SWEBOK, 2004); ferramentas de gestão de risco: Segundo o Swebok (2004), são as ferramentas de controle e identificação de riscos, estimativa e monitoramento. Incluem abordagens como árvores de decisão ou simulação, para analisar o custo de acordo com os riscos; ferramentas de comunicação: podem incluir notificação de , reuniões diárias de stand-up, gráficos mostrando progresso, entre outros (SWEBOK, 2004); ferramentas de medição: citando o Swebok (2004): são as ferramentas relacionadas com a medição do software, podendo ser automatizadas, usadas para coletar, analisar e relatar os dados de medição do projeto. Pode ser baseado em planilhas desenvolvidas por membros da equipe do projeto ou empregados da organização. h) ferramentas de processo de engenharia de software: segundo o guia Swebok (2004), as ferramentas de processo são as que apoiam muitas das notações usadas para: definir, implementar e gerenciar processos de software individuais, e modelos de ciclo de vida do software. Incluem editores para anotações como: diagrama de fluxo de dados, gráfico de estado, notação de modelagem de processo de negócio, ou do inglês Business Process Modeling Notation (BPMN), redes de Petri, e diagramas de atividades UML. As ferramentas de processo podem apoiar projetos com equipes distribuídas geograficamente; i) ferramentas de qualidade de software: essas ferramentas incluem ferramentas de análise estática e dinâmica. Na estática é realizada uma análise sintática e

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

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

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

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

Notas de Aula 02: Processos de Desenvolvimento de Software

Notas de Aula 02: Processos de Desenvolvimento de Software Notas de Aula 02: Processos de Desenvolvimento de Software Objetivos da aula: Introduzir os conceitos de um processo de desenvolvimento de software Definir os processos básicos Apresentar as vantagens

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

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

GERÊNCIA DE CONFIGURAÇÃO. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

GERÊNCIA DE CONFIGURAÇÃO. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com GERÊNCIA DE CONFIGURAÇÃO Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Objetivo Apresentar a GC (Gerencia de Configuração) no contexto da Engenharia de Software Mostrar a importância da GC no controle

Leia mais

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

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 2- Teste Estático e Teste Dinâmico Aula 3 Teste Estático SUMÁRIO INTRODUÇÃO... 3 1. Definição... 3 2. Custo Versus Benefício...

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

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

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Introdução à Melhoria de Processos de Software baseado no MPS.BR Prof. Maxwell Anderson www.maxwellanderson.com.br Agenda Introdução MPS.BR MR-MPS Detalhando o MPS.BR nível G Introdução

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

A Disciplina Gerência de Projetos

A Disciplina Gerência de Projetos A Disciplina Gerência de Projetos Atividades, Artefatos e Responsabilidades hermano@cin.ufpe.br Objetivos Apresentar atividades da disciplina Gerência de Projetos Discutir os artefatos e responsáveis envolvidos

Leia mais

Plano de Gerência de Configuração

Plano de Gerência de Configuração Plano de Gerência de Configuração Objetivo do Documento Introdução A aplicação deste plano garante a integridade de códigos-fonte e demais produtos dos sistemas do, permitindo o acompanhamento destes itens

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

Qualidade de Processo de Software Normas ISO 12207 e 15504

Qualidade de Processo de Software Normas ISO 12207 e 15504 Especialização em Gerência de Projetos de Software Qualidade de Processo de Software Normas ISO 12207 e 15504 Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br Qualidade de Software 2009 Instituto

Leia mais

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS Lilian R. M. Paiva, Luciene C. Oliveira, Mariana D. Justino, Mateus S. Silva, Mylene L. Rodrigues Engenharia de Computação - Universidade de Uberaba (UNIUBE)

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

FINANÇAS EM PROJETOS DE TI

FINANÇAS EM PROJETOS DE TI FINANÇAS EM PROJETOS DE TI 2012 Material 1 Prof. Luiz Carlos Valeretto Jr. 1 E-mail valeretto@yahoo.com.br Objetivo Objetivos desta disciplina são: reconhecer as bases da administração financeira das empresas,

Leia mais

fagury.com.br. PMBoK 2004

fagury.com.br. PMBoK 2004 Este material é distribuído por Thiago Fagury através de uma licença Creative Commons 2.5. É permitido o uso e atribuição para fim nãocomercial. É vedada a criação de obras derivadas sem comunicação prévia

Leia mais

Gerenciamento de Projetos Modulo I Conceitos Iniciais

Gerenciamento de Projetos Modulo I Conceitos Iniciais Gerenciamento de Projetos Modulo I Conceitos Iniciais Prof. Walter Cunha falecomigo@waltercunha.com http://waltercunha.com Bibliografia* Project Management Institute. Conjunto de Conhecimentos em Gerenciamento

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

Engenharia de Requisitos- como Previnir e Reduzir Riscos

Engenharia de Requisitos- como Previnir e Reduzir Riscos Engenharia de Requisitos- como Previnir e Reduzir Riscos Natasha de Souza Arruda natasha.arruda@ig.com.br FGS Resumo:Engenharia de Requisitos é um dos processos fundamentais para o desenvolvimento de software.

Leia mais

Metodologia de Gerenciamento de Projetos da Justiça Federal

Metodologia de Gerenciamento de Projetos da Justiça Federal Metodologia de Gerenciamento de Projetos da Justiça Federal Histórico de Revisões Data Versão Descrição 30/04/2010 1.0 Versão Inicial 2 Sumário 1. Introdução... 5 2. Público-alvo... 5 3. Conceitos básicos...

Leia mais

Processo de Software

Processo de Software Processo de Software Uma importante contribuição da área de pesquisa de processo de software tem sido a conscientização de que o desenvolvimento de software é um processo complexo. Pesquisadores e profissionais

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Processo de software I Ricardo de Sousa Britto rbritto@ufpi.edu.br + O que é Engenharia de Software n Definição dada pela IEEE [IEE93]: n Aplicação de uma abordagem sistemática,

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2 .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

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

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

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS

UNIVERSIDADE FEDERAL DO RIO GRANDE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS UNIVERSIDADE FEDERAL DO RIO GRANDE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMAS Professor: Adriel Ziesemer Disciplina: Engenharia de Software TRABALHO ACADÊMICO Cristian Santos - nº 45671 Guilherme

Leia mais

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Modernização e Evolução do Acervo de Software Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br Tópicos 1. Estudo Amplo sobre Modernização 2. Visão IBM Enterprise Modernization 3. Discussão - Aplicação

Leia mais

Engenharia de Software II: Criando a Declaração de Escopo. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br

Engenharia de Software II: Criando a Declaração de Escopo. Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Engenharia de Software II: Criando a Declaração de Escopo Prof. Msc Ricardo Britto DIE-UFPI rbritto@ufpi.edu.br Sumário Desenvolvendo o Plano de Gerenciamento do Projeto. Coletando Requisitos. Declarando

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

Exame de Fundamentos da ITIL

Exame de Fundamentos da ITIL Exame de Fundamentos da ITIL Simulado A, versão 5.1 Múltipla escolha Instruções 1. Todas as 40 perguntas devem ser respondidas. 2. Todas as respostas devem ser assinaladas na grade de respostas fornecida.

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

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás

Leia mais

METODOLOGIA DE GERENCIAMENTO DE PROJETO DE SOFTWARE ORIENTADO A OBJETO COM PMBOK

METODOLOGIA DE GERENCIAMENTO DE PROJETO DE SOFTWARE ORIENTADO A OBJETO COM PMBOK V EPCC Encontro Internacional de Produção Científica Cesumar 23 a 26 de outubro de 2007 METODOLOGIA DE GERENCIAMENTO DE PROJETO DE SOFTWARE ORIENTADO A OBJETO COM PMBOK Cleber Lecheta Franchini 1 Resumo:

Leia mais

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI MDMS-ANAC Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC Superintendência de Tecnologia da Informação - STI Histórico de Alterações Versão Data Responsável Descrição 1.0 23/08/2010 Rodrigo

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

C O B I T. Gerenciamento dos Riscos Mitigação. Aceitação. Transferência. Evitar/Eliminar.

C O B I T. Gerenciamento dos Riscos Mitigação. Aceitação. Transferência. Evitar/Eliminar. C O B I T Evolução Estratégica A) Provedor de Tecnologia Gerenciamento de Infra-estrutura de TI (ITIM) B) Provedor de Serviços Gerenciamento de Serviços de TI (ITSM) C) Parceiro Estratégico Governança

Leia mais

Teoria e Prática. Totalmente de acordo com a 4 a Edição/2009. Rosaldo de Jesus Nocêra, PMP, PMI-SP, MCTS. do PMBOK do PMI. Acompanha o livro:

Teoria e Prática. Totalmente de acordo com a 4 a Edição/2009. Rosaldo de Jesus Nocêra, PMP, PMI-SP, MCTS. do PMBOK do PMI. Acompanha o livro: Gerenciamento de Projetos Teoria e Prática Totalmente de acordo com a 4 a Edição/2009 do PMBOK do PMI Acompanha o livro: l CD com mais de 70 formulários exemplos indicados pelo PMI e outros desenvolvidos

Leia mais

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico.  Crise do Software Agenda Introdução a Engenharia de Cleidson de Souza cdesouza@ufpa.br http://www.ufpa.br/cdesouza! e Engenharia de! Engenharia de e Programação! Histórico " Crise do! No Silver Bullet! Fases Genéricas do

Leia mais

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico.  Crise do Software Agenda Introdução a Engenharia de Cleidson de Souza cdesouza@ufpa.br http://www.ufpa.br/cdesouza! e! e Programação! Histórico " Crise do! No Silver Bullet! Fases Genéricas do Processo de Desenvolvimento

Leia mais

UNIVERSIDADE DO ESTADO DE SANTA CATARINA UDESC CENTRO DE EDUCAÇÃO SUPERIOR DO ALTO VALE DO ITAJAÍ CEAVI DIREÇÃO DE ENSINO DEN PLANO DE ENSINO

UNIVERSIDADE DO ESTADO DE SANTA CATARINA UDESC CENTRO DE EDUCAÇÃO SUPERIOR DO ALTO VALE DO ITAJAÍ CEAVI DIREÇÃO DE ENSINO DEN PLANO DE ENSINO Departamento: Disciplina: Pré-Requisitos: I D E N T I F I C A Ç Ã O Sistemas de Informação Engenharia de Software Aplicada (ESA) Engenharia de Software (ES) CH: 7 Curso: Bacharelado em Sistemas de Informação

Leia mais

Gerenciamento de Configuração de Software

Gerenciamento de Configuração de Software Gerenciamento de Configuração de Software Prof. Ricardo Argenton Ramos [Baseado na apresentação do prof. Masiero ICMC-USP] Contexto para Gerência de Configuração 2 Problema dos Dados Compartilhados Desenvolvedor

Leia mais

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no 1.1 RATIONAL UNIFIED PROCESS (RUP) O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no processo que atende pelo nome de Processo Unificado (ou UP do inglês Unified

Leia mais

ERP: Pacote Pronto versus Solução in house

ERP: Pacote Pronto versus Solução in house ERP: Pacote Pronto versus Solução in house Introdução Com a disseminação da utilidade e dos ganhos em se informatizar e integrar os diversos departamentos de uma empresa com o uso de um ERP, algumas empresas

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

Project and Portfolio Management [PPM] Sustainable value creation.

Project and Portfolio Management [PPM] Sustainable value creation. Project and Portfolio Management [PPM] Sustainable value creation. O SoftExpert PPM Suite é a solução mais robusta, funcional e fácil para priorizar, planejar, gerenciar e executar projetos, portfólios

Leia mais

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA

O Impacto da Engenharia de Requisitos no Processo de Métricas. Fátima Cesarino CAIXA O Impacto da Engenharia de Requisitos no Processo de Métricas Fátima Cesarino CAIXA Apresentação Diferentes Cenários Desenvolvimento Software Importância do SISP Agradecimento Oportunidade Responsabilidade

Leia mais

VANT-EC-SAME. Software de Suporte do VANT V-SUP Caso de Desenvolvimento Versão 1.0

VANT-EC-SAME. Software de Suporte do VANT V-SUP Caso de Desenvolvimento Versão 1.0 VANT-EC-SAME Software de Suporte do VANT V-SUP Caso de Desenvolvimento Versão 1.0 Histórico da Revisão Data Versão Descrição Autor 17/0/07 1.0 Versão Inicial Douglas Moura Confidencial VANT-EC-SAME, 2007

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

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

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

Introdução Engenharia de Software

Introdução Engenharia de Software Introdução Engenharia de Software Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 EMENTA Parte 1 Conceitos de Engenharia de Software. Processo de desenvolvimento

Leia mais

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

O modelo unificado de processo. O Rational Unified Process, RUP. Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

Qualidade de Software

Qualidade de Software Rafael D. Ribeiro, M.Sc. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br A expressão ISO 9000 (International Organization for Standardization) designa um grupo de normas técnicas que estabelecem

Leia mais

Fundamentos de Teste de Software

Fundamentos de Teste de Software Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 3 Planejamento e Aula 8 do Projeto Aula 08 do Projeto SUMÁRIO INTRODUÇÃO... 3 ACOMPANHAMENTO DO PROJETO... 3 1. do Progresso...

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

Como a nuvem mudará as operações de liberação de aplicativos

Como a nuvem mudará as operações de liberação de aplicativos DOCUMENTAÇÃO TÉCNICA Junho de 2013 Como a nuvem mudará as operações de liberação de aplicativos Jacob Ukelson Entrega de aplicativos Sumário Resumo executivo 3 Seção 1: 4 Mudando o cenário de automação

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014 IntroduçãoaoGuia SWEBOK Ernani Lopes Isensee 2014 Conhecendo o SWEBOK Guide to the Software Engineering Body of Knowledge IEEE Institute of Electrical and Electronic Engineers Conhecendo o SWEBOK O guia

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

Demais Áreas de Conhecimento do PMBOK

Demais Áreas de Conhecimento do PMBOK Residência em Arquitetura de Software Demais Áreas de Conhecimento do PMBOK Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br www.ufpa.br/srbo Gerência de Desenvolvimento 2008.2 Faculdade de Computação

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

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 03 Profissões de TI Prof. MSc. Edilberto Silva edilms@yahoo.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos respectivos

Leia mais

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti. TI Aplicada Aula 02 Áreas e Profissionais de TI Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos

Leia mais

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software Ciência da Computação ENGENHARIA DE SOFTWARE Análise dos Requisitos de Software Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Roteiro Introdução Tipos de requisitos Atividades Princípios da

Leia mais

Políticas de Qualidade em TI

Políticas de Qualidade em TI Políticas de Qualidade em TI Prof. www.edilms.eti.br edilms@yahoo.com Aula 03 CMMI Capability Maturity Model Integration Parte II Agenda sumária dos Processos em suas categorias e níveis de maturidade

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

Introdução à Qualidade de Software. Profº Aldo Rocha

Introdução à Qualidade de Software. Profº Aldo Rocha Introdução à Qualidade de Software Profº Aldo Rocha Agenda O que é Qualidade? O que é Qualidade de Software? Qualidade do Produto e do Processo Normas e Organismos Normativos Qualidade de Software e Processos

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Prof. José Honorato F.N. Prof. José Honorato F.N. honoratonunes@gmail.com Requisitos de Software Software é o conjunto dos programas e dos meios não materiais que possibilitam 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

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Engenharia de Software Parte I Introdução Metodologias para o Desenvolvimento de Sistemas DAS 5312 1 Mitos do Desenvolvimento de Software A declaração de objetivos é suficiente para se construir um software.

Leia mais

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Integração Contínua com Rational Team Concert, Jenkins e SonarQube Integração Contínua com Rational Team Concert, Jenkins e SonarQube Agenda 1. Introdução à Integração Contínua 2. Ferramentas 3. Solução de Integração Contínua em Furnas 4. Demonstração O que é a Integração

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

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

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 03 In a calm sea every man is a pilot. Engenharia de Software I Aula 3 Gerenciamento de

Leia mais

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

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com REVISÃO ENGENHARIA DO SOFTWARE Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Software Sequencia de Instruções a serem seguidas ou executadas Dados e rotinas desenvolvidos por computadores Programas

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

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

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

CMMI Conceitos básicos. CMMI Representações contínua e por estágios. Professor Gledson Pompeu (gledson.pompeu@gmail.com)

CMMI Conceitos básicos. CMMI Representações contínua e por estágios. Professor Gledson Pompeu (gledson.pompeu@gmail.com) CMMI Conceitos básicos 113 CMMI integra as disciplinas de engenharia de sistemas e de engenharia de software em um único framework de melhoria de processos. 114 No tocante às disciplinas de engenharia

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

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Gerenciamento de Qualidade

Gerenciamento de Qualidade UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Gerenciamento de Qualidade Engenharia de Software 2o. Semestre de

Leia mais

ES06 Especialização em Engenharia de Software Prof.: Misael Santos (misael@gmail.com) Ago/2010

ES06 Especialização em Engenharia de Software Prof.: Misael Santos (misael@gmail.com) Ago/2010 Gestão de Configuração de Software - Conceitos Principais - ES06 Especialização em Engenharia de Software Prof.: Misael Santos (misael@gmail.com) Ago/2010 Agenda Configuração Itens de Configuração Versionamento

Leia mais

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. - DSI DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. Preocupação: Problema técnicos Mudança na natureza e conteúdo do trabalho

Leia mais

Palavras-Chaves: Arquitetura, Modelagem Orientada a Objetos, UML.

Palavras-Chaves: Arquitetura, Modelagem Orientada a Objetos, UML. MODELAGEM ORIENTADA A OBJETOS APLICADA À ANÁLISE E AO PROJETO DE SISTEMA DE VENDAS ALTEMIR FERNANDES DE ARAÚJO Discente da AEMS Faculdades Integradas de Três Lagoas ANDRE LUIZ DA CUNHA DIAS Discente da

Leia mais