ANÁLISE DE REQUISITOS EM LINHAS DE PRODUTO DE SOFTWARE

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

Download "ANÁLISE DE REQUISITOS EM LINHAS DE PRODUTO DE SOFTWARE"

Transcrição

1 ANÁLISE DE REQUISITOS EM LINHAS DE PRODUTO DE SOFTWARE THIAGO FERNANDES LINS DE MEDEIROS Universidade Federal de Pernambuco RECIFE, 02 DE AGOSTO DE 2009

2 THIAGO FERNANDES LINS DE MEDEIROS ANÁLISE DE REQUISITOS EM LINHAS DE PRODUTO DE SOFTWARE Monografia apresentada ao Curso de pósgraduação em Ciência da Computação, Centro de Informática, Universidade Federal de Pernambuco, como requisito parcial para conclusão da disciplina Engenharia de Requisitos. Professor: Prof. Jaelson Brelaz de Castro Recife 02 de Agosto de 2008

3 Resumo A fim de obter software de qualidade e com alta produtividade, é necessário, cuidadosamente, analisar, modelar, especificar e gerenciar os requisitos do sistema. O reuso de software é uma abordagem muito promissora para se alcançar o aumento de produtividade e garantir a qualidade dos sistemas desenvolvidos. Linha de Produto de Software é uma abordagem para reuso de software que tem mostrado bons resultados para se alcançar estes objetivos. No contexto da engenharia de requisitos aplicada a linhas de produto de software, este trabalho busca identificar as principais técnicas para a análise de requisitos dentro de um processo de engenharia de requisitos para linhas de produtos e apresentar um comparativo entre as abordagens identificadas. Palavras-chave: Engenharia de Requisitos, Linha de Produto de Software, Análise de Requisitos, Modelo de Variabilidade. 3

4 Sumário Resumo... 3 Sumário... 4 Lista de Figuras Introdução Fundamentação Teórica Linha de Produtos de Software (LPS) Engenharia de Requisitos Métodos para Análise de Requisitos em LPS Modelo de Features Modelo de Variabilidade Ortogonal (MVO) Modelo de Variabilidade Orientado a Aspectos Modelo de Variabilidade Multi-paradigma Discussão e Conclusão Referências Bibliográficas

5 Lista de Figuras Figura 1: Artefatos de uma LPS (1) e os produtos gerados a partir do reuso desses artefatos (2, 3 e 4)... 9 Figura 2: Atividades Essenciais de uma Linha de Produto de Software Figura 3: Exemplo de Modelo de Features Figura 4: Notação Gráfica do Modelo de Variabilidade Ortogonal Figura 5: Variabilidade em Requisitos Textuais Figura 6: MVO Associado a Modelo de Features Figura 7: MVO Associado a Casos de Uso Figura 8: MVO Associado a Diversos Artefatos de Requisitos Figura 9: Sistema de Segurança Eletrônica Modelado Com a Linguagem ADORA Figura 10: Combinação de Paradigmas e Variabilidade

6 1. Introdução O uso de computadores e produtos de software tem aumentado enormemente nos últimos anos. Existe um aumento na demanda, além da complexidade do software necessário. A fim de obter produtos de alta qualidade, juntamente com uma maior produtividade, é necessário, cuidadosamente, analisar, modelar, especificar e gerenciar requisitos de sistema. Isto não só simplificaria o projeto e a implementação do sistema, mas também reduziria o número de defeitos que são identificados mais tarde na fase de implementação. Engenharia de Requisitos é introduzida para resolver estas questões no início do processo de desenvolvimento. Um processo de engenharia de requisitos bem estabelecido assegura que os requisitos de sistema são devidamente elicitados, analisados, documentados, verificados e gerenciados. Várias outras tentativas têm sido realizadas para aumentar a produtividade e a qualidade dos produtos de software. Uma abordagem muito promissora é o reuso de software. Linha de Produto de Software (LPS) é uma abordagem para reuso de software, que foca no desenvolvimento de uma família de sistemas. O objetivo principal é desenvolver um framework que representa a família, que é então customizado para desenvolver produtos específicos. Uma família de produtos é uma coleção de produtos semelhantes, que compartilham a maioria das funcionalidades. Assim, existem inúmeros requisitos que são comuns em toda a família, mas outros são únicos para cada produto. Portanto, um processo de engenharia de requisitos bem estabelecido é essencial para qualquer linha de produto [Kuloor & Eberlein, 2002]. No contexto da engenharia de requisitos aplicada a linhas de produto de software, este trabalho busca identificar as principais técnicas para a análise de requisitos dentro de um processo de engenharia de requisitos para linhas de produtos e apresentando uma discussão entre as abordagens identificadas. Assim, na seção seguinte é apresentada a fundamentação teórica, descrevendo conceitos relevantes para o entendimento de Linha de Produtos de Software e de Engenharia de Requisitos neste contexto. A Seção 3 apresenta técnicas para a análise dos requisitos de uma linha de produto e na Seção 4 é apresentada uma discussão e conclusão a respeito das 6

7 abordagens estudadas. Por fim, a Seção 5 contém as referências bibliográficas utilizadas neste trabalho. 7

8 2. Fundamentação Teórica 2.1 Linha de Produtos de Software (LPS) Linhas de produtos de software surgem no final da década de 90 como uma nova tendência a ser explorada e começa a ser vista como um dos avanços mais promissores para o desenvolvimento de software eficiente [Clements & Northrop, 2001]. Até então, o processo de reuso de software seguia apenas a direção da Engenharia de Domínio (ED), que corresponde a uma coleção de atividades requeridas para estabelecer e manter um conjunto de conhecimento e infra-estrutura técnica necessária para desenvolver e manter eficientemente uma família de aplicações de um dado domínio do problema [Mili et al., 2002]. Em 1999 Bayer et al. propõe uma metodologia para Engenharia de Linha de Produto de Software (PuLSE) e define três razões básicas que tornam a ED menos efetiva que a LPS: (i) escopo equivocado da área de aplicação; (ii) lacunas de orientação operacional; (iii) foco excessivo nos assuntos organizacionais [Bayer et al., 1999]. A metodologia foi desenvolvida com o propósito de permitir a concepção e implantação de linhas de produto de software dentro de uma grande variedade de contextos empresariais. Segundo o [SEI, 2007], uma Linha de Produto de Software é um conjunto de sistemas intensivos de software, que compartilham um conjunto comum de features 1 para satisfazer necessidades específicas de um segmento de mercado particular, e que são desenvolvidos a partir de um conjunto de artefatos básicos, de maneira bem definida. Assim, em uma LPS, é feito um planejamento de que características comuns serão reutilizadas entre os produtos que serão desenvolvidos (diferente do que acontece em sistemas únicos, nos quais o reuso não é planejado, é oportunista, como quando um simples trecho de código de um produto existente é reutilizado em um novo produto) e, a partir desse planejamento, são construídos os artefatos comuns (core assets) (1 na Figura 1) que, posteriormente, são utilizados para gerar os diversos 1 Features são características ou funcionalidades do sistema visíveis ao usuário 8

9 produtos da linha (2, 3 e 4 na Figura 1). Como mostrado na Figura 1, nenhum dos produtos gerados é igual ao outro, cada um deles possui variações específicas. Figura 1: Artefatos de Uma LPS (1) e os Produtos Gerados a Partir do Reuso Desses Artefatos (2, 3 e 4) Desse modo, a Linha de Produto de Software permite que a organização ganhe vantagem competitiva devido ao aumento da produtividade em larga escala, aumento da qualidade, redução dos custos, redução do tempo de entrega, e minimização dos riscos dos produtos [Clements & Northrop, 2001]. Contudo, iniciar uma linha de produtos de software é uma decisão de negócio que não deve ser feita aleatoriamente. Antes de começar a desenvolver uma linha de produto, a organização deve estabelecer objetivos sólidos e específicos para adotar essa estratégia de reuso. Uma linha de produtos de software requer um investimento inicial como também custos progressivos com a manutenção dos artefatos básico (core assets). Inicialmente os custos da linha de produto são um pouco maiores que os benefícios, pois, muitos dos custos estão associados com a sua implantação. Os 9

10 benefícios, por outro lado, aumentam a cada entrega de produto. Uma vez que a abordagem esteja estabelecida, a produtividade da organização acelera, e então os benefícios superam os custos. Mudanças tecnológicas, práticas organizacionais e gerenciais são barreiras para a adoção bem sucedida da linha de produtos. O sucesso da prática de linha de produtos é uma combinação cuidadosa de aprimoramento tecnológico, organizacional, do processo e dos negócios [Clements & Northrop, 2001]. De acordo com o framework proposto pelo SEI (Software Engineering Institute), uma linha de produto é composta por três atividades essenciais [SEI, 2007]: Desenvolvimento dos artefatos básicos (core assets), infra-estrutura essencial para o reuso, base para o desenvolvimento do produto em uma linha de produto. Exemplos de core assets são: arquitetura, componentes, especificação de requisitos, modelo do domínio, plano de testes, entre outros. Essa atividade é também conhecida como Engenharia do Domínio. Desenvolvimento dos produtos a partir dos core assets do domínio. Essa atividade é também chamada de Engenharia da Aplicação. Gerenciamento em nível organizacional e técnico da linha de produto. Essas três atividades são altamente iterativas e relacionadas, como pode ser visto na Figura 2. Muitas organizações iniciam a linha de produto desenvolvendo primeiro os artefatos básicos, ou seja, adotam abordagens pró-ativas. Outras organizações iniciam com apenas um ou um pequeno número de produtos, e então desenvolvem a linha de produtos (artefatos básicos e aplicações futuras) a partir deles, adotando abordagens reativas. 10

11 Figura 2: Atividades Essenciais de uma Linha de Produto de Software Na seção seguinte é apresentada uma visão geral da engenharia de requisitos aplicada a linhas de produto de software, apresentando as diferenças da engenharia de requisitos tradicional. 2.2 Engenharia de Requisitos A parte mais difícil da construção de um sistema de software é decidir precisamente o que construir. Nenhuma parte do trabalho conceitual é tão difícil quanto estabelecer os requisitos técnicos detalhados. Nenhuma parte do trabalho prejudica tanto o sistema resultante se ele estiver errado. Nenhuma parte é tão difícil de corrigir mais tarde [Brooks, 1987]. A incapacidade de produzir requisitos de software completos, corretos e sem ambigüidade ainda é considerada a maior causa de falha de software hoje em dia [Dorfman, 1997]. Requisitos são descrições do que o sistema deve fazer, como ele deve se comportar, as propriedades que ele deve exibir, as qualidade que deve possuir, e as 11

12 restrições que o sistema e seu desenvolvimento devem satisfazer. O Institute of Electrical and Electronics Engineers (IEEE) define um requisito como: 1. Uma condição ou capacidade necessária para solucionar um problema ou atingir um objetivo de um usuário; 2. Uma condição ou capacidade que deve ser atendida ou estar presente em um sistema para satisfazer um contrato, padrão, especificação ou outro documento formalmente imposto; 3. Uma representação documentada de uma condição ou capacidade como na definição 1 ou 2 [IEEE, 1990]. Engenharia de requisitos enfatiza o uso de técnicas sistemáticas e repetíveis que assegurem a completude, consistência e relevância dos requisitos do sistema [Sommerville, 1997]. A engenharia de requisitos é composta basicamente por cinco atividades: Elicitação de requisitos: é o processo de descoberta, revisão, documentação e entendimento das necessidades e restrições dos usuários para o sistema. Análise de requisitos: é o processo de refinamento das necessidades e restrições dos usuários. Especificação de requisitos: é o processo de documentação das necessidades e restrições dos usuários de forma clara e precisa. Verificação de requisitos: é o processo de assegurar que os requisitos do sistema são completos, corretos, consistentes e claros. Gerenciamento de requisitos: é o processo de programar, coordenar, e documentar as atividades da engenharia de requisitos, que são, elicitação, análise, especificação e verificação [Dorfman, 1997]. Para se aplicar a engenharia de requisitos ao contexto das linhas de produtos, devem ser levadas em conta as diferenças existentes entre se desenvolver um sistema único e uma linha de produtos, já que na LPS, os requisitos constituem um importante 12

13 artefato e que podem ser de tipos diferentes. Podem ser requisitos comuns, que representam os requisitos de toda a linha de produtos, ou requisitos variáveis, que são específicos para um subconjunto de produtos. Requisitos comuns são representados com pontos de variação que podem ser instanciados para criar requisitos específicos do produto. Abaixo são apresentadas as principais diferenças entre engenharia de requisitos para uma linha de produto e para um sistema único [Pohl et al., 2005]: Elicitação de Requisitos para linhas de produtos foca no escopo, e deve capturar antecipadamente as variações esperadas ao longo do ciclo de vida da linha de produtos. Em geral, o processo de elicitação de requisitos para linhas de produtos envolve um maior número de stakeholders comparado com a elicitação de requisitos de um sistema único. Análise de Requisitos para linhas de produtos envolve a identificação de variações e similaridades nos requisitos elicitados, e a identificação de oportunidades para o extenso reuso com a linha de produtos. Esta análise deve envolver um mecanismo de resposta mais vigoroso para as solicitações, apontando onde um sistema particular pode encontrar economia se estiver hábil para usar mais requisitos comuns e menos requisitos únicos. Capturar requisitos para um grupo de sistemas pode requerer uma análise sofisticada e negociação intensiva para a escolha de requisitos comuns e variáveis. A análise de requisitos também deve identificar conflitos nos novos requisitos, analisando seu impacto na arquitetura do domínio. Esses conflitos devem ser resolvidos não apenas de um ponto de vista lógico, mas também considerando assuntos do mercado e econômicos. Especificação de Requisitos permite agora documentar os requisitos comuns da linha de produtos e os requisitos específicos dos produtos. A especificação dos requisitos comuns da linha de produtos deve incluir expressões simbólicas que permita que os requisitos específicos de um produto possam ser preenchidos, expandidos ou instanciados. Verificação de Requisitos inclui uma ampla concentração de revisores e ocorre em estágios. Em primeiro lugar, os requisitos comuns da linha de produtos devem ser verificados. Em seguida, quando um produto é desenvolvido ou 13

14 atualizado, os requisitos específicos do produto devem ser verificados. Nesta fase, os requisitos comuns da linha de produtos também devem ser verificados para certificar-se de que eles fazem sentido para este produto. Gerenciamento de Requisitos deve apresentar subsídios para tratar as atividades comuns e variáveis do processo de engenharia de requisitos. Políticas de gerenciamento de mudanças devem prever um mecanismo formal para propor alterações na linha de produtos e apoiar a avaliação sistemática do modo como alterações propostas terão um impacto na linha. Políticas de gerenciamento de mudanças governam como as mudanças nos requisitos da linha de produtos são propostas, analisadas e revisadas. O acoplamento entre os requisitos da linha de produtos e os core assets é identificada através da utilização de relações de rastreabilidade entre os requisitos e seus core assets associados. Como pode ser visto, a análise de requisitos em linhas de produtos é uma das atividades mais importantes no processo de engenharia de requisitos, sendo uma atividade fundamental para o desenvolvimento da linha, pois é a atividade responsável por identificar a variabilidade dos requisitos e analisar seu impacto tanto arquitetural quanto econômico. Na próxima seção serão introduzidas abordagens para a análise dos requisitos em linhas de produtos de software. 14

15 3. Métodos para Análise de Requisitos em LPS Nesta seção serão apresentadas diferentes abordagens para a análise dos requisitos de uma linha de produtos de software, ou seja, formas de identificação e representação adequada da variabilidade. 3.1 Modelo de Features O modelo de features foi proposto em 1990, como parte do método FODA (Feature-Oriented Domain Analysis) [Kang, 1990] e integrando também o método FORM (Feature-Oriented Reuse Method) [Kang, 1998]. Mesmo tendo sido proposto inicialmente para a análise de domínio, ela continua sendo até hoje uma prática muito utilizada em linhas de produto de software e parte integrante de diversos estudos de sua utilização em conjunto com outras técnicas. O objetivo da análise de features é capturar um entendimento dos usuários finais e clientes a respeito das capacidades gerais de aplicações em um domínio. O foco da análise deve ser na perspectiva do usuário final com relação as funcionalidades da aplicação, isto é, os serviços providos pelas aplicações e o ambiente operacional em que o sistema está inserido. O principal interesse na análise dos requisitos para uma linha de produtos está em identificar as similaridades de uma família de aplicações, então o modelo de features deve capturar as features em comum e as diferenças entre as aplicações de uma linha. O modelo de features serve acima de tudo, como um meio de comunicação entre usuários e desenvolvedores. Para os usuários, o modelo de features mostra quais são as funcionalidades padrão do sistema, quais são as outras funcionalidades que eles podem escolher e quando elas podem ser escolhidas. Para os desenvolvedores, o modelo de features indica o que necessita ser parametrizado na arquitetura da LPS e como essa parametrização deve ser feita. 15

16 O modelo é constituído de agrupamentos lógicos de features, ou seja, grupos de funcionalidades de mesmo interesse. As features podem ser obrigatórias, alternativas ou opcionais. Por exemplo, as features automatic e manual são alternativas e a feature air-conditioning é opcional, como indicado na Figura 3 por pequenos arcos e círculos, respectivamente. Features alternativas podem ser imaginadas como especializações de uma categoria mais geral. As features alternativas servem para indicar que no máximo uma especialização pode ser feita para um grupo de features de um sistema. Algumas regras de composição complementam o diagrama de features. Features opcionais e alternativas que não podem ser selecionadas quando uma feature é selecionada deve ser declarada com a expressão mutuamente exclusiva com. Features opcionais e alternativas que devem ser selecionadas quando uma feature é selecionada deve ser definida usando a expressão requer. A seleção de features opcionais ou alternativas não é feita de modo arbitrário. Ela é feita normalmente baseada em objetivos ou interesses dos usuários finais e clientes. Figura 3: Exemplo de Modelo de Features 16

17 3.2 Modelo de Variabilidade Ortogonal (MVO) Abordagens como o FODA e FORM são adequadas para documentar tanto as funcionalidades similares quanto as variáveis de uma linha de produtos. Entretanto, isto pode levar a modelos enormes e complexos. Devido a isto, Pohl et al. propõe um modelo de variabilidade ortogonal [Pohl et al., 2005] que representa apenas os aspectos variáveis de uma linha de produtos, reduzindo o tamanho do modelo e também a complexidade. Além disso, o MVO pode ser utilizado para documentar a variabilidade de diversos tipos de artefatos como requisitos textuais, outros tipos de modelos e até casos de testes. Os principais conceitos do MVO são os pontos de variação (o que varia) e as variantes (como ele varia). Cada ponto de variação tem que possuir pelo menos uma variação. Na Figura 4 temos a notação gráfica do modelo de variabilidade ortogonal. Em seguida exemplos da utilização do MVO para a resolução de problemas em artefatos de requisitos são apresentados. Figura 4: Notação Gráfica do Modelo de Variabilidade Ortogonal Requisitos textuais expressam a variabilidade através de palavras chaves ou frases. A documentação da variabilidade dos requisitos dessa forma deixa espaço para 17

18 ambigüidades, ou seja, um problema que pode levar a uma análise errada do sistema. Por exemplo: O sistema de segurança da casa deve ser equipado com câmeras coloridas ou preta e branca capazes de capturar imagens em infravermelho. Neste exemplo, não está claro se apenas câmeras coloridas, ou ambos os tipos devem ser capazes de fotografar em infravermelho. A Figura 5 ilustra essa variabilidade definida de forma explícita, evitando a ambigüidade. Figura 5: Variabilidade em Requisitos Textuais O MVO também pode ser utilizado em conjunto com outros modelos para representar a variabilidade, como modelo de features (Figura 6), diagramas de casos de uso (Figura 7), cenários de casos de uso, diagramas de seqüência. Dessa forma, todos os artefatos de requisitos ficam relacionados com um único diagrama de variabilidade, facilitando possíveis mudanças nos requisitos e também a rastreabilidade (Figura 8). 18

19 Figura 6: MVO Associado a Modelo de Features Figura 7: MVO Associado a Casos de Uso 19

20 Figura 8: MVO Associado a Diversos Artefatos de Requisitos Então, as principais vantagens em se adotar o uso do MVO são: Melhora da comunicação: abstrações de alto nível de artefatos variáveis simplificam a comunicação da variabilidade da linha de produtos. Melhora na tomada de decisões: desenvolvedores têm que tomar decisões conscientes para introduzir variabilidade explicitamente. Melhora na rastreabilidade: as dependências entre os artefatos variáveis podem ser facilmente encontradas empregando o uso de associações de restrição. 20

21 3.3 Modelo de Variabilidade Orientado a Aspectos Segundo Stoiber, as linguagens de modelagem atuais como UML não suportam a modelagem de variabilidade. Resultado em duas alternativas não satisfatórias. Representar todas as similaridades e variantes em um único modelo e identificar todas as variantes de forma manual, sem auxilio de restrições de modelagem, levando a modelos imprecisos e errôneos. Ou então, criar uma modelo separado para cada variante de produto, o que significa que todos os requisitos comuns devem ser replicados em cada variante de produto, criando redundância e como conseqüência, ineficiência e inconsistência do modelo [Stoiber et al., 2007]. Desenvolvimento de software orientado a aspectos lida com os interesses transversais (crosscutting concerns) em sistemas de software. Estes interesses não podem ser separados de outros interesses pela forma de modularização convencional, ou seja, fazem parte de vários outros módulos e não podem ser modularizados através de técnicas como orientação a objetos. Uma separação e modularização antecipada dos interesses transversais favorece o aumento da qualidade e reduz custos de manutenção e evolução. Além disso, diversos estudos enfatizam as similaridades entre desenvolvimento orientado a aspectos e a engenharia de linhas de produto de software [Loughran et al., 2005], [Nyssen et al., 2005], [Mezini et al., 2006], [Siy et al., 2007]. A fim de resolver problemas de precisão, eficiência e consistência, Stoiber propõe uma abordagem para a análise dos requisitos, aplicando modelagem de variabilidade orientada a aspectos utilizando a linguagem ADORA [Glinz et al., 2002]. Inicialmente são modeladas as similaridades e objetos abstratos são criados para os componentes. Em seguida, todas as variantes são modeladas como um bloco de aspecto (um retângulo com duas bordas cortadas), como pode ser visto na figura 9. Os detalhes das variantes são representados através de diagramas de estados e diagramas de cenários, descrevendo o comportamento e interação do usuário do componente. Retângulos com bordas arredondadas representam os estados e os círculos ovais representam os cenários, que constituem casos de uso ou passos do caso de uso na notação UML. 21

22 Figura 9: Sistema de Segurança Eletrônica Modelado Com a Linguagem ADORA A semântica da variabilidade também é mostrada na Figura 9. Para o mecanismo de abertura da porta (Open the Door) têm-se duas opções, Open Door by Keypad e Open Door by Figerprint Reader e uma deve ser escolhida. Estes dois cenários são modelados com o símbolo O, representando que pelo menos uma deve ser escolhida ou que ambas são possíveis (ou lógico). Para as duas variantes de Open Door by Keypad, os cenários são identificados com um X, indicando que apenas uma das duas é possível (ou-exclusivo lógico). 3.4 Modelo de Variabilidade Multi-Paradigma De acordo com Laguna, a idéia original do modelo de features é tentar representar, simultaneamente, diferentes modelos de variabilidade como variabilidade estrutural, variabilidade comportamental, variabilidade não-funcional, etc. Portanto, a diferenciação destes diferentes aspectos, separando-os em diferentes modelos, pode trazer benefícios para o desenvolvimento da linha de produtos [Laguna, 2008]. Basicamente, os requisitos de uma LPS podem ser organizados em requisitos comportamentais, que representam funcionalidades ou serviços, e decisões de projeto que descrevem como o sistema deve se comportar em situações particulares. Propõe- 22

23 se então que os aspectos estruturais sejam representados por modelos de domínio (diagramas de classe UML); os aspectos comportamentais sejam expressos através de modelos de casos de uso UML; os requisitos não funcionais sejam analisados com modelos orientados a metas (goal models); e que o modelo de features seja utilizado como um modelo central, interligado a todos os outros modelos, expressando os diferentes aspectos de variabilidade. A engenharia de requisitos orientada a metas (Goal Oriented Requirements Engineering GORE) propõe uma modelagem explicita das intenções do sistema (os porquês ). As principais vantagens destas abordagens é que elas podem ser usadas para estudar alternativas nos requisitos (utiliza modelos AND/OR para as diferentes alternativas), além de permitir o relacionamento entre requisitos funcionais e nãofuncionais. Uma meta é um objetivo que o sistema sob análise deve atingir [van Lamsweerde, 2001]. Existem dois tipos de metas (goals): hardgoals, que representam requisitos funcionais e podem ser verificados objetivamente e os softgoals, utilizados para a representação de requisitos não-funcionais e que são verificados de forma subjetiva. Este modelo é ideal para uma representação mais abstrata dos interesses da linha de produto, pois está mais relacionado com os problemas a serem resolvidos e, portanto, mais relacionado com os clientes. Os modelos UML são diagramas convencionais que são organizados em pacotes. Em [Laguna et al., 2007], é proposta uma técnica em que as features similares são organizadas em pacotes base, e cada feature opcional em um pacote inclui um conjunto de diagramas UML que são a solução para alcançar essa feature. As variantes de plataforma, ambiente operacional em que as aplicações funcionarão e serão usadas, devem ser consideradas em um segundo estágio, já que a maioria dos pontos de variação são independentes do ambiente operacional. Contribui com isto o paradigma da engenharia orientada a modelos (Model Driven Engineering MDE), que faz a separação do modelo independente de plataforma (PIM) do modelo especifico de plataforma (PSM). A Figura 10 apresenta um resumo da combinação de todos os paradigmas. 23

24 Figura 10: Combinação de Paradigmas e Variabilidade O modelo de metas representa a intenção da linha produto, isto é, os objetivos de alto nível que a aplicação deve solucionar, e as características nãofuncionais. O modelo de features representa os requisitos funcionais do usuário final, conectada aos hardgoals do modelo de metas. Os modelos UML organizam a arquitetura da LPS, ligada ao modelo de features. As features que configuram o ambiente operacional devem ser consideradas em ultimo estagio, com a adoção do paradigma da engenharia orientada a modelos. 24

25 4. Discussão e Conclusão O mercado de software está cada vez mais competitivo e exigente. Torna-se necessário o desenvolvimento de software com alta qualidade e produtividade, além de redução de custo e tempo de entrega dos sistemas. Linha de Produto de Software é uma abordagem de reuso que busca alcançar estes objetivos, criando uma família de produtos que podem ser customizados em massa. Tanto para o desenvolvimento de um sistema único, quanto para uma linha de produtos, a engenharia de requisitos tem um papel importantíssimo, tendo a função de conseguir traduzir as necessidades dos clientes em sistemas que resolvam seus problemas. Em linhas de produtos, a variabilidade dos requisitos é um dos pontos principais a ser levado em consideração e sua análise deve ser feita de forma cuidadosa. Neste trabalho foram apresentadas diferentes abordagens para a análise dos requisitos de uma linha de produtos, ou seja, como analisar a variabilidade dos requisitos. A seguir, são feitas algumas considerações a respeito das abordagens apresentadas. Dentre as técnicas que foram abordadas, o modelo de features é a forma mais utilizada para representar a variabilidade e a que apresenta o maior nível de maturidade, apresentando diversos relatos de uso na indústria. Entretanto, a modelagem de features apresenta características visíveis ao usuário em um nível alto de abstração, pois seu maior objetivo é orientar a tomada de decisão entre as variabilidades do domínio, facilitando a identificação do reuso e parametrização de outros artefatos. No entanto, este tipo de representação é insuficiente para especificar os requisitos de maneira que direcione o desenvolvimento da LPS, não descrevendo os comportamentos do sistema. Park et al. [Park et al., 2004] diz que abordagens orientadas a features não mostram diretamente os resultados da análise de variabilidade e semelhanças de maneira que satisfaça os objetivos de alto nível de 25

26 negócio da organização. Além disso, os benefícios do modelo de features dependem do tamanho do domínio, pois sua modelagem hierárquica em uma única visão torna-se inviável em uma LPS complexa, com um grande número de features. Diante deste cenário, algumas abordagens têm integrado este modelo com outras modelagens de requisitos, tais como a proposta baseada em casos de uso de [Gomaa, 2005], e a abordagem baseada em metas e cenários de [Park et al., 2004]. A proposta do modelo de variabilidade ortogonal enfrenta grandes problemas no que diz respeito ao suporte ferramental. Torna-se inviável manter a rastreabilidade dos artefatos de requisitos que são relacionados com o diagrama de variabilidade sem uma ferramenta adequada para essa função, devido à complexidade em gerenciar a grande quantidade de artefatos e requisitos relacionados com um único modelo de variabilidade. A abordagem orientada a aspectos de Stoiber apresenta uma vantagem na utilização de uma linguagem própria para a modelagem de aspectos. Por outro lado, os modelos criados são normalmente maiores e mais complexos que os modelos de features, por exemplo. E isto pode prejudicar, por parte dos clientes, o entendimento dos modelos nas primeiras fases de negociação dos requisitos da linha de produtos. No método de Laguna, as diversas representações de diferentes pontos de vista podem auxiliar no entendimento da linha de produtos por todos os envolvidos no processo de desenvolvimento. Desde clientes a desenvolvedores, provendo um modelo com nível adequado de abstração para cada um. Porém, a grande quantidade de modelos criados pode acabar burocratizando a técnica, já que diversos modelos terão que ser criados e mantidos. 26

27 5. Referências Bibliográficas (Bayer et al., 1999) Bayer, J.; Flege, O.; Knauber, P.; Laqua, R.; Muthig, D.; Schmid, K.; Widen, T. & DeBaud, J. (1999), PuLSE: A Methodology to Develop Software Product Lines, in ACM SIGSOFT Symposium o Software Reusability, pp (Brooks, 1987) Brooks, F. "No Silver Bullet: Essence and Accidents of Software Engineering." Computer 20, 4 (April 1987): (Clements & Northrop, 2001) Clements, P. & Northrop, L. (2001), Software Product Lines: Practices and Patterns, Addison-Wesley (Dorfman, 1997) Dorfman, M. & Thayer, R. H. Software Requirements Engineering. Los Alamitos, CA: IEEE Computer Society Press, 1997 (Glinz et al., 2002) Glinz, M., Berner, S., and Joos, S.: Object-Oriented Modeling with ADORA. Information Systems, 27 (6) (Gomaa, 2005) Gomaa, H. (2005), Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures, Addison-Wesley. (IEEE, 1990) Institute of Electrical and Electronic Engineers. IEEE Standard Glossary of Software Engineering Terminology (IEEE Std ). New York, NY: Institute of Electrical and Electronics Engineers, 1990 (Kang, 1990) Kang, K.; Cohen, S.; Hess, J.; Novak, W.; & Peterson, A. Feature-Oriented Domain Analysis (FODA) Feasibility Study (CMU/SEI-90-TR-021, ADA235785). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1990 (Kang, 1998) Kang, K.; Kim, S.; Lee, J.; Shin, E.; & Huh, M. "FORM: A Feature-Oriented Reuse Method with Domain-Specific Reference Architectures." Annals of Software Engineering 5, 5 (September 1998):

28 (Kuloor & Eberlein, 2002) Kuloor, C. and Eberlein, A. (2002). "Requirements Engineering for Software Product Lines," Proceedings of the 15th International Conference on Software and Systems Engineering and their Applications (ICSSEA'02), Paris, France (Laguna et al., 2007) Laguna, M. A., Gonzáles-Bauxauli, B., and Marqués, J. M. Seamless Development of Software Product Lines: Feature Models to UML Traceability. GPCE 07. Salzburg, Austria 2007 (Laguna, 2008) Laguna, M. A., Gonzáles-Bauxauli, B. Product Line Requirements: Multi- Paradigm Variability Models. Anais do WER08 - Workshop em Engenharia de Requisitos, Barcelona, Catalonia, Spain, Setembro 12-13, 2008, pp (Loughran et al., 2005) Loughran, N., Sampaio, A., Rashid, A.: From Requirements Documents to Feature Models for Aspect Oriented Product Line Implementation. Workshop on MDD in Product Lines at MODELS (Mezini et al., 2006) Mezini, M. and Ostermann, K.: Variability management with feature-oriented programming and aspects. 12th ACM SIGSOFT International Symposium on Foundations of Software Engineering. Newport Beach, USA (Mili et al., 2002) Mili, H.; Mili, A.; Yacoub, S. & Addy, E. (2002), Reuse-Based Software Engineering, Willey, pp. 636 (Nyssen et al., 2005) Nyssen, A., Tyszberowicz, S., and Weiler, T.: Are aspects useful for managing variability in software product lines? A case study. Aspects and Software Product Lines: An Early Aspects Workshop, at SPLC-Europe (Park et al, 2004) Park, S.; Kim, M. & Sugumaran, V. (2004), A scenario, goal and feature-oriented domain analysis approach for developing software product lines, in, pp (13) 28

29 (Pohl et al., 2005) Pohl, K.; Böckle, G. & van der Linden (2005), Software Product Line Engineering:Foundations, Principles, and Techniques, Springer (SEI, 2007) Software Engineering Institute (SEI), A Framework for Software Product Line Practice, Version 5.0, (Siy et al., 2007) Siy, H., Aryal, P., Winter, V., and Zand, M Aspectual Support for Specifying Requirements in Software Product Lines. Workshop on Early Aspects at ICSE. Minneapolis,USA (Sommerville, 1997) Sommerville, I. & Sawyer, P. Requirements Engineering: A Good Practice Guide. New York, NY: John Wiley & Sons, 1997 (Stoiber et al., 2007) Stoiber, R., Meier, S., and Glinz, M Visualizing Product Line Domain Variability by Aspect-Oriented Modeling. In Proceedings of the Second international Workshop on Requirements Engineering Visualization (October 15-19, 2007) (Van Lamsweerde, 2001) Van Lamsweerde, A. Goal-Oriented Requirements Engineering: A Guided Tour, IEEE Symposium Requirements Engineering, 2001, pp

Uma Abordagem de Engenharia de Requisitos Para Linhas de Produtos de Software

Uma Abordagem de Engenharia de Requisitos Para Linhas de Produtos de Software Uma Abordagem de Engenharia de Requisitos Para Linhas de Produtos de Software Gabriela Guedes de Souza, Jaelson Castro e Carla Silva ggs@cin.ufpe.br, jbc@cin.ufpe.br, carla@dce.ufpb.br DEPARTAMENTO DE

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

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

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

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Programa de Pós-Graduação em Desenvolvimento de Sistemas para Web

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Programa de Pós-Graduação em Desenvolvimento de Sistemas para Web Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Programa de Pós-Graduação em Desenvolvimento de Sistemas para Web } Com o forte crescimento do comércio eletrônico por

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

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

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor Reuso de Software Aula 05 Agenda da Aula Linha de Produtos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 19 Março 2012 Padrões arquiteturais Cliente-Servidor

Leia mais

Histórico: Linha de Produção. Linha de Produtos de Software. Reuso vs. Customização. Mercado Competitivo. Linha de Produtos de Software

Histórico: Linha de Produção. Linha de Produtos de Software. Reuso vs. Customização. Mercado Competitivo. Linha de Produtos de Software DCC / ICEx / UFMG Histórico: Linha de Produção Linha de Produtos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Produtos em geral eram feitos manualmente Com o crescimento do consumo,

Leia mais

Análise e Projeto de Software

Análise e Projeto de Software Análise e Projeto de Software 1 Mundo Real Modelagem Elicitação Análise Problemas Soluções Gap Semântico Mundo Computacional Elicitação de Requisitos Análise de Requisitos Modelagem dos Requisitos 2 Projeto

Leia mais

Requisitos de Software. Teresa Maciel DEINFO/UFRPE

Requisitos de Software. Teresa Maciel DEINFO/UFRPE Requisitos de Software Teresa Maciel DEINFO/UFRPE 1 Requisito de Software Características que o produto de software deverá apresentar para atender às necessidades e expectativas do cliente. 2 Requisito

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

Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software

Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software Ricardo Terra 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) Campus da Pampulha 31.270-010

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

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: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

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

Faculdade de Ciência da Informação Disciplina: Projeto de Implementação de Sistemas Arquivísticos Profa. Lillian Alvares

Faculdade de Ciência da Informação Disciplina: Projeto de Implementação de Sistemas Arquivísticos Profa. Lillian Alvares Universidade de Brasília Faculdade de Ciência da Informação Disciplina: Projeto de Implementação de Sistemas Arquivísticos Profa. Lillian Alvares Gerência de Projetos Oferece uma visão integrada de todos

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

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

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Gerenciamento de Problemas

Gerenciamento de Problemas Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar

Leia mais

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

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e JEANE MENDES DA SILVA SANTOS Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e Plano de Trabalho de Conclusão de Curso apresentado à Universidade Federal de

Leia mais

MODELO CMM MATURIDADE DE SOFTWARE

MODELO CMM MATURIDADE DE SOFTWARE MODELO CMM MATURIDADE DE SOFTWARE O modelo CMM Capability Maturity Model foi produzido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon (CMU), em Pittsburgh, EUA, por um grupo

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

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

Autor(es) BARBARA STEFANI RANIERI. Orientador(es) LUIZ EDUARDO GALVÃO MARTINS, ANDERSON BELGAMO. Apoio Financeiro PIBIC/CNPQ. 1.

Autor(es) BARBARA STEFANI RANIERI. Orientador(es) LUIZ EDUARDO GALVÃO MARTINS, ANDERSON BELGAMO. Apoio Financeiro PIBIC/CNPQ. 1. 19 Congresso de Iniciação Científica ESPECIFICAÇÃO E IMPLEMENTAÇÃO DE UMA FERRAMENTA AUTOMATIZADA DE APOIO AO GERSE: GUIA DE ELICITAÇÃO DE REQUISITOS PARA SISTEMAS EMBARCADOS Autor(es) BARBARA STEFANI

Leia mais

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL

Leia mais

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000

ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário. As Normas da família ISO 9000. As Normas da família ISO 9000 ISO 9000:2000 Sistemas de Gestão da Qualidade Fundamentos e Vocabulário Gestão da Qualidade 2005 1 As Normas da família ISO 9000 ISO 9000 descreve os fundamentos de sistemas de gestão da qualidade e especifica

Leia mais

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0 O que é BABok? O BABok 2.0, Corpo de Conhecimento de Análise de Negócios, é considerado como um Guia Referência de Práticas de Análise de Negócio. Este guia é publicado e mantido pelo IIBA. O guia BABok

Leia mais

V Workshop Anual do MPS - WAMPS 2009 Estudo de Viabilidade de Domínio para Avaliar o Potencial da Organização Quanto à Implementação do Processo Desenvolvimento para Reutilização do MR-MPS MPS Mylene Lisbôa

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

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Arquitetura de Software

Arquitetura de Software Agenda de Software - Fundamentos e Tendências - Objetivos e Contexto de Software (A.S.) A.S. no Processo de Desenvolvimento Passado, Presente e Futuro Prof. Marco Fagundes mfagunde@tre-pa.gov.br 1 2 Objetivos

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados 1021 X Salão de Iniciação Científica PUCRS Engenharia de Domínio baseada na Reengenharia de Sistemas Legados Cássia Zottis¹, Profa. Dra. Ana Paula Terra Bacelo 1 (orientadora) 1 Faculdade de Informática,

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

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

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

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr. A Chave para o Sucesso Empresarial José Renato Sátiro Santiago Jr. Capítulo 1 O Novo Cenário Corporativo O cenário organizacional, sem dúvida alguma, sofreu muitas alterações nos últimos anos. Estas mudanças

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

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil Elicitação de Requisitos a partir de Modelos de Processos de Negócio e Modelos Organizacionais: Uma pesquisa para definição de técnicas baseadas em heurísticas Marcos A. B. de Oliveira 1, Sérgio R. C.

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

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

MASTER IN PROJECT MANAGEMENT

MASTER IN PROJECT MANAGEMENT MASTER IN PROJECT MANAGEMENT PROJETOS E COMUNICAÇÃO PROF. RICARDO SCHWACH MBA, PMP, COBIT, ITIL Atividade 1 Que modelos em gestão de projetos estão sendo adotados como referência nas organizações? Como

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

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

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

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11 GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11 Índice 1. Importância do ERP para as organizações...3 2. ERP como fonte de vantagem competitiva...4 3. Desenvolvimento e implantação de sistema de informação...5

Leia mais

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

Engenharia de Software I: Análise e Projeto de Software Usando UML Engenharia de Software I: Análise e Projeto de Software Usando UML Capítulo 1 Processo de Desenvolvimento de Software Metodologia de Desenvolvimento de Software Uma metodologia é um conjunto de métodos,

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais

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

Desenvolvimento de software orientado a características e dirigido por modelos Desenvolvimento de software orientado a características e dirigido por modelos Universidade Federal de Uberlândia Rodrigo Reis Pereira Prof. Dr. Marcelo Almeida Maia Agenda Motivação Introdução Modelagem

Leia mais

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br Gerenciamento de projetos cynaracarvalho@yahoo.com.br Projeto 3URMHWR é um empreendimento não repetitivo, caracterizado por uma seqüência clara e lógica de eventos, com início, meio e fim, que se destina

Leia mais

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

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

Leia mais

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP Planejamento - 7 Planejamento do Gerenciamento do Risco Identificação dos riscos 1 O que é risco? Evento que representa uma ameaça ou uma oportunidade em potencial Plano de gerenciamento do risco Especifica

Leia mais

Uma Abordagem Dinâmica de Linha de Produto para Gestão de Processos de Negócio

Uma Abordagem Dinâmica de Linha de Produto para Gestão de Processos de Negócio Uma Abordagem Dinâmica de Linha de Produto para Gestão de Processos de Negócio Trabalho de Mestrado Roberto dos Santos Rocha (Aluno), Marcelo Fantinato (Orientador) Programa de Pós-graduação em Sistemas

Leia mais

Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software

Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software Juliano Dantas Santos Universidade Federal do Rio de Janeiro COPPE - Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa

Leia mais

Planejamento Estratégico de TI. Prof.: Fernando Ascani

Planejamento Estratégico de TI. Prof.: Fernando Ascani Planejamento Estratégico de TI Prof.: Fernando Ascani BI Business Intelligence A inteligência Empresarial, ou Business Intelligence, é um termo do Gartner Group. O conceito surgiu na década de 80 e descreve

Leia mais

Módulo 15 Resumo. Módulo I Cultura da Informação

Módulo 15 Resumo. Módulo I Cultura da Informação Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis

Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis Requisitos para Gestão de Requisitos no Desenvolvimento de Software que Utilizam Prática Ágeis Abstract. Resumo. 1. Introdução Vinicius A. C. de Abreu 1 Departamento de Ciência da Computação - DCC Universidade

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

O processo de melhoria de processo

O processo de melhoria de processo O processo de melhoria de processo Prof.ª Dra. Aida Araújo Ferreira aidaferreira@recife.ifpe.edu.br Modelos de Melhoria de Processo de Software Tecnologia em Análise e Desenvolvimento de Sistemas IFPE

Leia mais

CMMI. B) descrições das atividades consideradas importantes para o atendimento de suas respectivas metas específicas. Governo do ES (CESPE 2009)

CMMI. B) descrições das atividades consideradas importantes para o atendimento de suas respectivas metas específicas. Governo do ES (CESPE 2009) CMMI Governo do ES (CESPE 2009) Na versão 1.2 do CMMI, 111 os níveis de capacidade são definidos na abordagem de estágios. 112 os níveis de maturidade são definidos na abordagem contínua. 113 existem seis

Leia mais

UMA REVISÃO DE ENGENHARIA DE REQUISITOS PARA LINHA DE PRODUTO DE SOFTWARE

UMA REVISÃO DE ENGENHARIA DE REQUISITOS PARA LINHA DE PRODUTO DE SOFTWARE UMA REVISÃO DE ENGENHARIA DE REQUISITOS PARA LINHA DE PRODUTO DE SOFTWARE DANUZA FERREIRA SANTANA NEIVA Universidade Federal de Pernambuco posgraducao@cin.ufpe.br www.cin.ufpe.br/~posgraduacao RECIFE,

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 QUALIDADE DE SOFTWARE Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 Objetivos Apresentar o processo de gerenciamento de qualidade e as atividades centrais da garantia de

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

A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models

A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models Universidade Federal do Rio Grande do Norte Departamento de Informática e Matemática Aplicada Natal/RN - Brasil A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

Processo de Desenvolvimento Unificado

Processo de Desenvolvimento Unificado Processo de Desenvolvimento Unificado Processo de Desenvolvimento de Software? Conjunto de atividades bem definidas; com responsáveis; com artefatos de entrada e saída; com dependências entre as mesmas

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Frameworks. Pasteur Ottoni de Miranda Junior

Frameworks. Pasteur Ottoni de Miranda Junior Frameworks Pasteur Ottoni de Miranda Junior 1-Definição Apesar do avanço das técnicas de desenvolvimento de software, a construção de software ainda é um processo extremamente complexo.a reutilização tem

Leia mais

Requisitos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( http://sites.google.com/site/professorgabrielbaptista )

Requisitos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( http://sites.google.com/site/professorgabrielbaptista ) Qualidade de Software Aula 8 (Versão 2012-01) 01) Requisitos Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( http://sites.google.com/site/professorgabrielbaptista ) Revisando... 1. Qual o

Leia mais

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

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo? O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

PROFESSOR: CRISTIANO MARIOTTI

PROFESSOR: CRISTIANO MARIOTTI PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade

Leia mais

Gerenciamento de Projetos Modulo VIII Riscos

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

Leia mais

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL

Leia mais

Wesley Vaz, MSc., CISA

Wesley Vaz, MSc., CISA Wesley Vaz, MSc., CISA Objetivos Ao final da palestra, os participantes deverão ser capazes de: Identificar e compreender os princípios do Cobit 5; Identificar e conhecer as características dos elementos

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

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 ÍNDICE Introdução...3 A Necessidade do Gerenciamento e Controle das Informações...3 Benefícios de um Sistema de Gestão da Albi Informática...4 A Ferramenta...5

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

Linha de Produto de Software

Linha de Produto de Software Linha de Produto de Software Jair C Leite DIMAp/UFRN O que é linha de produto de software? Técnica de produção baseada em outras engenharias fábricas que desenvolvem uma mesma família de produtos com partes

Leia mais

Introdução ao Design

Introdução ao Design Introdução ao Design João Arthur e Guilherme Germoglio Coordenação de Pós-graduação em Informática - COPIN 16/10/2008 João Arthur e Guilherme Germoglio 1/ 33 Roteiro 1 Introdução Objetivos 2 Definições

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais