Engenharia de Software e Sistemas - 2o. Exercício Escolar


Universidade Federal de Pernambuco- Centro de Informática
IF682 - Engenharia de Software e Sistemas
Prof. Alexandre Vasconcelos
2o. Exercício Escolar
Data: 02/08/2007

01) O que você entende por modelo de ciclo de vida de processo de software? Cite 3 modelos de ciclo de vida e descreva um deles em detalhe. (2,5)
1 ponto para a definição do conceito de ciclo de vida. Aqui o aluno deve dizer algo como:

Uma representação abstrata e simplificada do processo de desenvolvimento software, tipicamente mostrando as principais atividades e dados usados na produção e manutenção de software

0.5 para os modelos citados

(ex: cascata, iterativo e incremental, desenvolvimento evolucionário - prototipagem descartável, programação exploratória, desenvolvimento baseado em reuso, transformação formal)

1,0 para o detalhamento de um modelo.

02) Descreva o conceito de processo de software. (1,0)
Aqui o aluno deveria dizer algo como: 

Conjunto de atividades bem definidas, com responsáveis, com artefatos de entrada e saída, com dependências entre as mesmas e ordem de execução, com modelo de ciclo de vida

ou

Conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivo, definindo quem está fazendo o que, quando e como para atingir um certo objetivo

03) Em relação à FALTA, FALHA e ERRO, a seqüência correta é: (1,0)
a)
FALTA à FALHA à ERRO
b)
ERRO  à FALHA à FALTA
c)
FALTA à ERRO  à FALHA
d)
ERRO à  FALTA à FALHA

04) Descreva uma similaridade e uma diferença entre o RUP e o XP. (1,0)
Aqui o aluno deve dizer algo como:

0,5 para as similaridades – ex: ambos são iterativos e incrementais; ambos definem atividades, artefatos e papéis.

0,5 para as diferenças – ex: no RUP os requisitos a serem tratados nas iterações são priorizados com base nos riscos, no XP a priorização é feita com base unicamente nas necessidades dos clientes; o RUP procura produzir uma arquitetura flexível e extensível, o XP procura produzir a arquitetura para resolver o problema imediato; o RUP usa casos de uso para especificar requisitos funcionais, o XP usa estórias

Para mais detalhe veja o documento em anexo.

05) Assinale V (verdadeiro) ou F (falso) nas sentenças a seguir. (1,0)
V
F
Quando todos os testes são executados com sucesso, podemos garantir que o software será entregue sem nenhum erro para o cliente.
V
F
Os testes têm como objetivo verificar se os requisitos especificados foram implementados corretamente.
V
F
Os testes de integração são utilizados para testar a interface entre as unidades integradas.
V
F
Os testes de sistema são realizados com a participação do usuário final e têm como objetivo homologar o sistema


05) Apresente o grafo do fluxo de controle para (2,5)
        public int search(int[] tabela; int item) {
                int comeco = 1;
               int fim = size_of (tabela);
               int onde = -1;                            à 1
               boolean achou = false;

                while (comeco <= fim & achou == false) {  à 2
                               int meio= (comeco+fim)/2;
                            
                               if (item > tabela [meio])  à 3
                                   começo = meio + 1;  à 4
                               else if (item == tabela [meio]) à 5
                                          achou = true;  à 6
                                          onde = meio;
                                      else fim = meio -1;  à 7
                } à 8
                return onde; 
        }

1,5 para o gráfico correto (veja gráfico abaixo)
 






















        bem como dois casos/dados de testes gerados com base neste fluxo.
0.,5 para cada caso/dado de teste

Possíveis casos e dados de testes são:
·         [1, 2, 3, 4, 8, 2, 9] para comeco = 1, fim = 1, onde = -1, achou = false, tabela = [1], item = 2;
·         [1, 2, 9];
·         [1, 2, 3, 5, 6, 8, 2, 9];
·         [1, 2, 3, 5, 7, 8, 2, 9]

Obs: para cada caso de teste gerado deve ser determinada pelo menos uma entrada de dados

06) Assinale V (verdadeiro) ou F (falso) sobre os tipos de teste. (1,0)

V
F
Os testes de integração são realizados após os testes de unidade, e todas as unidades devem ser integradas ao mesmo tempo durante os testes.
V
F
Os testes de aceitação utilizam a abordagem caixa preta e são realizados pelo usuário com a finalidade de verificar se o sistema foi implementado de acordo com os requisitos.
V
F
V
F
O teste de integridade de dados verifica se todos os mecanismos de proteção de acesso estão funcionando satisfatoriamente

Boa sorte!

Planejamento
O RUP sugere um template específico para o plano de projeto e procura estabelecer uma estimativa de esforços para cada fase de desenvolvimento. O Planejamento de um projeto se divide em macro planejamento (planejamento das fases) e micro planejamento, ou seja, o planejamento das iterações. Para a maioria dos projetos o tempo de desenvolvimento em cada fase pode ser distribuído em 10% para Concepção, 30% para Elaboração, 50% para Construção e 10% para Transição.
Krutchen [Kruchten1998] destaca também os marcos de referência que são elaborados no planejamento. No nível de planejamento das iterações (micro planejamento), procura-se identificar os builds e os releases.
O XP procura através das estórias estabelecer uma arquitetura para o sistema. O planejamento de XP é elaborado em conjunto pelos desenvolvedores e pelo cliente, no qual o cliente define as estórias que serão elaboradas em cada release, baseando-se nas necessidades do negócio. Os desenvolvedores estimam quanto tempo levarão para desenvolver cada estória e alertam o cliente para as dificuldades técnicas relacionadas a cada estória.
Engenharia de Requisitos
O RUP se fundamenta nos casos de uso para a obtenção dos requisitos e utiliza o modelo de casos de uso para dirigir os modelos futuros do projeto. Os casos de uso servem também para: se formar um acordo entre o cliente e os usuários sobre o que o sistema fornecerá; dar aos desenvolvedores do sistema um entendimento dos requisitos do sistema; definir a funcionalidade do sistema; fornecer uma base para o planejamento das iterações; fornecer estimativas de custo e tempo para o desenvolvimento do sistema; e definir a interface do usuário do sistema.
O XP substitui os casos de uso pelas estórias, faz uso dos testes antes da codificação e utiliza o cliente no local tanto para esclarecer os requisitos bem como para elaborar os testes de aceitação.
Análise e Projeto
O RUP procura traduzir os requisitos, guiados pelos casos de uso, numa especificação que descreva como implementar o sistema, através de um conjunto de classes e subsistemas os quais são restringidos, por exemplo, pelos requisitos não funcionais e pelo ambiente de implementação.
O XP usa qualquer recurso na modelagem de um projeto, desde o rascunho num pedaço de papel até diagramas UML. A abordagem inicial se concentra nas partes essenciais do projeto, a qual é codificada da forma mais simples. Em seguida o código sofre um processo de refactoring, modelando o projeto, antes de ser incrementado. Ao longo das iterações o código pode também sofrer novo refactoring a fim de manter o código (e o projeto) sempre pronto para um novo incremento e fácil de ser compreendido.
Implementação
O fluxo de implementação do RUP consiste na construção das partes do sistema, cujas unidades e componentes individuais são testados e combinados de forma incremental.
O principal foco do XP é a implementação do código por meio da programação em pares. O código é constantemente refatorado e integrado.
Testes
O RUP usa o fluxo de testes para verificar a interação entre objetos e componentes, a integração de todos os componentes do software, se todos os requisitos foram corretamente implementados, e para identificar os defeitos e certificar-se que os mesmos foram tratados antes que o software seja implantado.
No caso do XP os testes de unidade e os de aceitação são de responsabilidade tanto dos desenvolvedores quanto do cliente. Os desenvolvedores elaboram os testes de unidade, auxiliados pelo cliente. Durante a implementação do código, efetuam também os testes de integração de forma contínua. Os testes de aceitação (elaborados pelo cliente juntamente com os desenvolvedores) são executados antes da liberação do build.
Implantação
O fluxo implantação do RUP envolve: a produção e montagem de um release do software; o empacotamento do software; a distribuição do software; a instalação do software; o treinamento dos usuários; o fornecimento de ajuda e assistência aos usuários; o planejamento e condução de testes beta; a migração dos softwares e dados existentes; e a aceitação formal pelo cliente.
O XP utiliza a integração contínua, o que permite que diariamente exista uma versão funcional do software. Portanto, se o desenvolvimento for no ambiente físico do cliente, a implantação pode ocorrer de forma diária.



 [amlv1]Esta questão será anulada, pois na literatura existem duas: top-down e bottom-up, mas a combinação das mesmas gera a estratégia sandwich

Share:

0 comentários

POPULAR POSTS