Engenharia de Software 1
Engenharia de Software 1
ENGENHARIA DE SOFTWARE
Faculdade de Minas
Sumário
INTRODUÇÃO ........................................................................................................ 4
Software .............................................................................................................. 4
Problemas associados ao software ..................................................................... 5
A Importância do Software .................................................................................. 6
O Papel Evolutivo do Software ............................................................................ 6
APLICAÇÕES DO SOFTWARE ........................................................................... 11
1
Faculdade de Minas
O Ciclo de Vida Clássico ................................................................................... 38
Prototipação ...................................................................................................... 39
O MODELO ESPIRAL .......................................................................................... 42
2
Faculdade de Minas
NOSSA HISTÓRIA
3
Faculdade de Minas
INTRODUÇÃO
No inicio da década de 1980, uma reportagem de primeira pagina da revista
Business Week apregoava a seguinte manchete: "Software: A Nova Força
Propulsora". O software amadurecera - tornara-se um tema de preocupação
administrativa. Em meados da década de 1980, uma reportagem de capa da Fortune
lamentava "Uma Crescente Defasagem de Software" e, ao final da década, a
Business Week avisava os gerentes sobre a "Armadilha do Software - Automatizar
ou Não?" . No começo da década de 1990, uma reportagem especial da Newsweek
perguntava: "Podemos Confiar em Nosso Software?" enquanto o Wall Street Journal
relacionava as "dores de parto" de uma grande empresa de software com um artigo
de primeira página intitulado "Criar Software Novo: Era Uma Tarefa Agonizante..." .
Essas manchetes, e muitas outras iguais a elas, eram o anuncio de uma nova
compreensão da importância do software de computador - as oportunidades que ele
oferece e os perigos que apresenta.
O software agora ultrapassou o hardware como a chave para o sucesso de
muitos sistemas baseados em computador. Seja o computador usado para dirigir um
negócio controlar um produto ou capacitar um sistema, o software é um fator que
diferencia. A inteireza e a oportunidade.
Das informações oferecidas pelo software (e bancos de dados relacionados)
diferenciam uma empresa de suas concorrentes. O projeto e a capacidade de ser
"amigável ao ser humano" (human-friendly) de um produto de software diferenciam-
no dos produtos concorrentes que tenham função idêntica em outros aspectos. A
inteligência e a função oferecidas pelo software muitas vezes diferenciam dois
produtos de consumo ou industrias idênticas. E o software que pode fazer a
diferença.
Software
Há 20 anos, menos de 1% do público poderia descrever de forma inteligível o
que significa "software de computador". Hoje, a maioria dos profissionais bem como
4
Faculdade de Minas
a maior parte do público, acham que entendem o que é software. Será que
entendem?
Uma descrição de software num livro didático poderia assumir a seguinte
forma: "Software é: (1) instruções (programas de computador) que, quando
executadas, produzem a função e o desempenho desejados; (2) estruturas de dados
que possibilitam que os programas manipulem adequadamente a informação; e (3)
documentos que descrevem a operação e o uso dos programas". Não há dúvida de
que outras definições, mais completas, poderiam ser oferecidas. Mas precisamos de
algo mais que uma definição formal.
O software é um elemento de sistema lógico, e não físico. Portanto, o
software tem características que são consideravelmente diferentes das do hardware:
O software é desenvolvido e projetado por engenharia, não manufaturado no
sentido clássico.
O software não se desgasta.
A maioria dos softwares é feita sob medida em vez de ser montada a partir de
componentes existentes.
5
Faculdade de Minas
A Importância do Software
6
Faculdade de Minas
"revolução do computador", Osborne caracterizou uma "nova revolução industrial",
Toffler chamou o advento da microeletrônica de "a terceira onda de mudança" na
história humana e Naisbitt previu que a transformação de uma sociedade industrial
em uma "sociedade de informação" terá um profundo impacto sobre nossas vidas.
Feigenbaum e McCorduck sugeriram que a informação e o conhecimento
(controlados por computador) serão o foco principal de poder no século XXI, e Stoll
argumentou que a "comunidade eletrônica" criada por redes e software e a chave
para a troca de conhecimentos em todo o mundo.
Quando se iniciava a década de 1990, Toffler descreveu uma "mudança de
poder", em que as velhas estruturas de poder (governamental, educacional,
industrial, econômico e militar) se desintegrarão enquanto os computadores e o
software levarão a uma "democratização do conhecimento" .
7
Faculdade de Minas
dedicava-se a execução de um único programa que, por sua vez, dedicava-se a
uma aplicação específica.
Durante os primeiros anos, o hardware de propósito geral tornara-se lugar
comum. O software, por outro lado, era projetado sob medida para cada aplicação e
tinha uma distribuição relativamente limitada. O produto software (isto e, programas
desenvolvidos para serem vendidos a um ou mais clientes) estava em sua infância.
A maior parte do software era desenvolvida e, em última análise, usada pela própria
pessoa ou organização. Você escrevia-o, colocava-o em funcionamento e, se ele
falhasse, era você quem o consertava. Uma vez que a rotatividade de empregos era
baixa, os gerentes podiam dormir tranquilos com a certeza de que você estaria lá se
defeitos fossem encontrados. Por causa desse ambiente de software personalizado,
o projeto era um processo implícito realizado no cérebro de alguém, e a
documentação muitas vezes não existia.
Durante os primeiros anos, aprendemos muito sobre a implementação de
sistemas baseados em computador, mas relativamente pouco sobre engenharia de
sistemas de computador. Por justiça, entretanto, devemos reconhecer os muito
surpreendentes sistemas baseados em computador desenvolvidos durante essa
época. Alguns deles permanecem em uso até hoje e constituem feitos que são um
marco de referência e que continuam a justificar a admiração.
A segunda era da evolução dos sistemas computadorizados estendeu-se de
meados da década de 1960 até o final da década de 1970. A multiprogramação e os
sistemas multiusuários introduziram novos conceitos de interação homem-máquina.
As técnicas interativas abriram um novo mundo de aplicações e novos níveis de
sofisticação de software e hardware. Sistemas de tempo real podiam coletar,
analisar e transformar dados de múltiplas fontes, daí controlando processos e
produzindo saída em milissegundos, e não em minutos. Os avanços da
armazenagem on-line levaram à primeira geração de sistemas de gerenciamento de
bancos de dados. A segunda era também foi caracterizada pelo uso do produto de
software e pelo advento das "software houses". O software era desenvolvido para
ampla distribuição num mercado interdisciplinar. Programas para mainframes e
minicomputadores eram distribuídos para centenas e, às vezes, milhares de
8
Faculdade de Minas
usuários. Empresários da indústria, governos e universidades puseram-se
"desenvolver pacotes de software" e a ganhar muito dinheiro.
A medida que o número de sistemas baseados em computador crescia,
bibliotecas de software de computador começaram a se expandir. Projetos de
desenvolvimento internos nas empresas produziram dezenas de milhares de
instruções de programa. Os produtos de software comprados no exterior
acrescentaram centenas de milhares de novas instruções. Uma nuvem negra
apareceu no horizonte. Todos esses programas todas essas instruções tinham de ser
corrigidos quando eram detectadas falhas, alterados conforme as exigências do
usuário se modificavam ou adaptados a um novo hardware que fosse comprado.
Essas atividades foram chamadas coletivamente de manutenção de software. O
esforço despendido na manutenção de software começou a absorver recursos em
índices alarmantes. E, ainda pior, a natureza personalizada de muitos programas
tornava-os virtualmente impossíveis de sofrer manutenção. Uma "crise de software"
agigantou-se no horizonte.
A terceira era da evolução dos sistemas computadorizados começou em
meados da década de 1970 e continua até hoje. Os sistemas distribuídos múltiplos
computadores, cada um executando funções concorrentemente e comunicando-se
um com o outro aumentaram intensamente a complexidade dos sistemas baseados
em computador. As redes globais e locais, as comunicações digitais de largura de
banda (handwidth) elevada e a crescente demanda de acesso "instantâneo" a dados
exigem muito dos desenvolvedores de software.
A terceira era também foi caracterizada pelo advento e generalização do uso
de microprocessadores, computadores pessoais e poderosas estações de trabalho
(workstations) de mesa. O microprocessador gerou um amplo conjunto de produtos
inteligentes de automóveis a fornos de micro-ondas, de robôs industriais a
equipamentos para diagnostico de soro sanguíneo. Em muitos casos, a tecnologia
de software está sendo integrada a produtos por equipes técnicas que entendem de
hardware mas que frequentemente são principiantes em desenvolvimento de
software.
O computador pessoal foi o catalisador do crescimento de muitas empresas
de software. Enquanto as empresas de software da segunda era vendiam centenas
9
Faculdade de Minas
ou milhares de copias de seus programas, as empresas da terceira era vendem
dezenas e até mesmo centenas de milhares de cópias. O hardware de computador
pessoal está se tornando rapidamente um produto primário, enquanto o software
oferece a característica capaz de diferenciar. De fato, quando a taxa de crescimento
das vendas de computadores pessoais se estabilizou em meados da década de
1980, as vendas de software continuaram a crescer.
Na indústria ou em âmbito doméstico, muitas pessoas gastaram mais dinheiro
cm software do que aquilo que despenderam para comprar o computador no qual o
software seria instalado. A quarta era do software de computador está apenas
começando. As tecnologias orientadas a objetos estão rapidamente ocupando o
lugar das abordagens mais convencionais para o desenvolvimento de software em
muitas áreas de aplicação. Autores tais como Feigenhaum, McCorduck e Allman
preveem que os computadores de "quinta geração", arquiteturas de computação
radicalmente diferentes, e seu software correlato exercerão um profundo impacto
sobre o equilíbrio do poder político e industrial em todo o mundo. As técnicas de
"quarta geração" para o desenvolvimento de software já estão mudando a maneira
segundo a qual alguns segmentos da comunidade de software constroem programas
de computador.
Os sistemas especialistas e o software de inteligência artificial finalmente
saíram do laboratório para a aplicação pratica em problemas de amplo espectro do
mundo real. O software de rede neural artificial abriu excitantes possibilidades para
o reconhecimento de padrões e para capacidades de processamento de
informações semelhantes as humanas. Quando nos movimentamos para a quinta
era, os problemas associados ao software de computador continuam a se
intensificar:
A sofisticação do software ultrapassou nossa capacidade de construir um
software que extraia o potencial do hardware.
Nossa capacidade de construir programas não pode acompanhar o ritmo da
demanda de novos programas.
Nossa capacidade de manter os programas existentes é ameaçada por
projetos ruins e recursos inadequados.
10
Faculdade de Minas
Em resposta a esses problemas, estão sendo adotadas práticas de
engenharia em toda a indústria.
APLICAÇÕES DO SOFTWARE
O software pode ser aplicado a qualquer situação em que um conjunto
previamente especificado de passos procedimentais (um algoritmo) tiver sido
definido. O conteúdo de informações e a previsibilidade são fatores importantes na
determinação da natureza de um aplicativo.
Desenvolver categorias genéricas para as aplicações de softwares é uma
tarefa muito difícil. Quanto mais complexo é o sistema, mais difícil é determinar de
forma clara os vários componentes do software.
Pode-se dividir as aplicações em:
Software Básico – que é um conjunto de programas para dar apoio a outros
programas. Tem como característica uma forte interação com o hardware,
operações concorrentes, compartilhamento de recursos, uso por múltiplos usuários
e múltiplas interfaces.
Software de Tempo Real – são programas que monitora, analisa e controla
eventos do mundo real, devendo responder aos estímulos do mundo externo com
restrições de tempo pré-determinadas.
Software Comercial – é a maior área de aplicação de softwares, são
aplicações que gerenciam as operações comerciais de modo a facilitar o
gerenciamento comercial do negócio da empresa, permitindo também a tomada de
decisões.
Software Cientifico e de Engenharia – são caracterizados por algoritmos de
processamento numérico, dependentes da coleta e processamento de dados para
as mais variadas áreas do conhecimento.
Software Embutido – são desenvolvidos para executar atividades muito
específicas e inseridos em produtos inteligentes tanto para atividades comerciais
como para atividades domesticas.
Software de Computador Pessoal – são produtos desenvolvidos para o uso
pessoal do computador, tais como planilhas eletrônicas, processadores de textos,
jogos, etc..
11
Faculdade de Minas
Software de Inteligência Artificial – faz uso de algoritmos não-numéricos para
resolver problemas complexos que não apresentam facilidades computacionais
numéricas ou de análise direta.
Urna primeira definição de engenharia de software foi proposta por Fritz Bauer
na primeira grande conferencia dedicada ao assunto: "O estabelecimento e uso de
sólidos princípios de engenharia para que se possa obter economicamente um
software que funcione eficientemente cm máquinas reais."
A engenharia de software é uma derivação da engenharia de sistemas e de
hardware. Ela abrange um conjunto de três elementos fundamentais métodos,
ferramentas e procedimentos que possibilita ao gerente o controle do processo de
desenvolvimento do software e oferece ao profissional uma base para a construção
de software de alta qualidade produtivamente.
Os métodos de engenharia de software proporcionam os detalhes de "como
fazer" para construir o software. Os métodos envolvem um amplo conjunto de
tarefas que incluem: planejamento com estimativa de projeto, análise de requisitos
de software e de sistemas, projeto da estrutura de dados, arquitetura de programa e
algoritmo de processamento, codificação, teste e manutenção. Os métodos da
engenharia de software muitas vezes introduzem uma notação gráfica ou orientada a
linguagem especial e introduzem um conjunto de critérios para a qualidade do
software.
As ferramentas de engenharia de software proporcionam apoio automatizado
ou semi-automatizado aos métodos. Atualmente, existem ferramentas para
sustentar cada um dos métodos anotados anteriormente. Quando as ferramentas
são integradas de forma que a informação criada por uma ferramenta possa ser
usada por outra, é estabelecido um sistema de suporte ao desenvolvimento de
software chamado engenharia de software auxiliada por computador (CASE -
Computer-Aided Software Engineering).
12
Faculdade de Minas
O CASE combina software, hardware e um banco de dados de engenharia de
software (uma estrutura de dados contendo importantes informações sobre analise,
projeto, codificação e teste) para criar um ambiente de engenharia de software que
seja análogo ao projeto auxiliado por computador/engenharia auxiliada por
computador para o hardware.
Os procedimentos da engenharia de software constituem o elo de ligação que
mantém juntos os métodos e as ferramentas e possibilita o desenvolvimento racional
e oportuno do software de computador. Os procedimentos definem a sequência em
que os métodos serão aplicados, os produtos (deliverables) que se exige que sejam
entregues (documentos, relatórios, formulários etc.), os controles que ajudam a
assegurar a qualidade e a coordenar as mudanças, e os marcos de referência que
possibilitam aos gerentes de software avaliar o progresso.
A engenharia de software compreende um conjunto de etapas que envolve
métodos, ferramentas e os procedimentos. Essas etapas muitas vezes são citadas
como paradigmas da engenharia de software. Um paradigma de engenharia de
software e escolhido tendo-se como base a natureza do projeto e da aplicação, os
métodos e as ferramentas a serem usados, os controles e os produtos que precisam
ser entregues.
13
Faculdade de Minas
Um método é uma prescrição explícita de como chegar a uma atividade
requerida por um modelo de ciclo de vida, visando otimizar a execução das
atividades que foram especificadas.
As ferramentas proporcionam apoio automatizado ou semi-automatizado aos
métodos.
Os Métodos de Desenvolvimento de Sistema se diferenciam pela maneira
como o problema deve ser visualizado e como a solução do problema deve ser
modelada. São eles:
14
Faculdade de Minas
Paradigmas de Engenharia de Software
Segundo Roger Pressman, “Paradigmas são os modelos de processos que
possibilitam:
Ao gerente: o controle do processo de desenvolvimento de sistemas de
software,
Ao desenvolvedor: a obter a base para produzir, de maneira eficiente,
software que satisfaça os requisitos preestabelecidos. ”
Os paradigmas especificam algumas atividades que devem ser executadas,
assim como a ordem em que devem ser executadas. A função dos paradigmas é
diminuir os problemas encontrados no processo de desenvolvimento do software, e
deve ser escolhido de acordo com a natureza do projeto e do produto a ser
desenvolvido, dos métodos e ferramenta a ser utilizado e dos controles e produtos
intermediários desejados.
Os paradigmas serão estudados no em outro capitulo.
15
Faculdade de Minas
PROCESSOS DE SOFTWARE
Segundo Ian Sommerville, “Um processo de software é um conjunto de
atividades e resultados associados que levam à produção de um produto de
software.” Embora existam muitos processos de software diferentes, há
atividades fundamentais comuns a todos eles, tais como:
Especificação de software;
Projeto e implementação de software;
Validação de software;
Evolução do software.
A melhoria dos processos de software podem ser implementadas de
diferentes maneiras, como serão estudados posteriormente.
Este texto apresenta algumas diretrizes para as entrevistas que você fará
durante a fase de análise de sistemas do projeto de desenvolvimento de um
sistema. Provavelmente entrevistará usuários, gerentes, auditores,
20
Faculdade de Minas
programadores e auxiliares que utilizam sistemas já existentes (informatizados
ou manuais) e também várias outras pessoas envolvidas.
Tipos de Entrevistas
A forma mais comum de entrevista é uma reunião pessoal e direta entre
você (talvez acompanhado por até dois analistas auxiliares do projeto) e um ou
mais interlocutores (entrevistados). Normalmente são efetuadas anotações por
um dos entrevistadores; menos costumeiramente, a entrevista pode ser gravada
ou um(a) secretário(a) tomará notas durante a entrevista.
Pode-se perceber que as informações obtidas em uma entrevista também
podem ser obtidas por outros meios, por exemplo, solicitando-se que os
entrevistados respondam por escrito a um questionário formal, ou solicitando
que descrevam por escrito os requisitos do novo sistema. Também podemos
aumentar as entrevistas pela presença de vários especialistas (que podem até
conduzir a entrevista enquanto o analista de sistemas participa como
assistente), como peritos em indústria/comercio, psicólogos comportamentais e
negociadores. E, finalizando, deve-se lembrar que outros meios de obtenção de
dados (ex.: videocassete, gravadores, etc...) podem ser utilizados para registrar
uma entrevista.
Durante a década de 80, uma forma especializada de entrevista tornou-se
popular em algumas empresas; conhecida como JAD (Joint Application
Development) ou projeto acelerado, ou análise em equipe, e por vários outros
21
Faculdade de Minas
nomes. Ela consiste em uma rápida entrevista e um processo acelerado de
coleta de dados em que todos os principais usuários e o pessoal da análise de
sistemas agrupam-se em uma única e intensiva reunião (que pode prolongar-se
de um dia a uma semana) para documentar os requisitos do usuário. A reunião
costuma ser supervisionada por um profissional experiente e bem treinado que
atua como mediador para encorajar melhores comunicações entre os analistas
de sistemas e os usuários. Frequentemente, este supervisor é apoiado por
algumas pessoas que se dedicam integralmente ao processo. Embora todas
essas variações tenham de fato sido utilizadas, elas são relativamente raras e
não serão discutidas em maiores detalhes neste texto. A entrevista mais
utilizada ainda é a reunião pessoal entre um analista de sistemas e um usuário
final.
Problemas Fundamentais
Inicialmente pode parecer que o processo de entrevistar um usuário seja
uma questão simples e direta. Afinal, o analista e o usuário são pessoas
inteligentes e capazes de expressarem. Os dois são pessoas racionais e ambos
têm o mesmo objetivo: passar informações relativas a um novo sistema proposto
da mente do usuário para a do analista. Qual é o problema?
Na realidade, existem muitos problemas que podem ocorrer. Em muitos
projetos de alta tecnologia, tem-se observado que a maioria dos problemas
difíceis não envolvem hardware nem software, mas sim o pleopleware. Os
problemas de peopleware na análise de sistemas são muitas vezes encontrados
nas entrevistas. Os problemas mais comuns a que você deve estar atento são:
Entrevistar a pessoa errada no momento errado. É muito fácil, por
causa dos problemas e interesses organizacionais, falar com a pessoa que é o
perito oficial na orientação do usuário, que demonstra nada saber a respeito dos
verdadeiros requisitos do sistema; também é possível perder a oportunidade de
falar com o usuário desconhecido que realmente sabe quais são os requisitos.
Mesmo que encontre a pessoa certa, talvez o analista tente entrevistá-la durante
22
Faculdade de Minas
um período em que o usuário não está disponível ou esteja mergulhado sob
outras pressões e emergências.
Fazer perguntas erradas e obter respostas erradas. A análise de
sistemas é, como Tom DeMarco gosta de dizer, uma forma de comunicação
entre estranhos. Os usuários e os analistas de sistemas têm vocabulários
diferentes, experiências básicas diferentes e muitas vezes um diferente conjunto
de pressuposições, percepções, valores e prioridades. Desse modo, é fácil fazer
ao usuário uma pergunta racional sobre os requisitos do sistema e o usuário não
entender absolutamente a pergunta, sem que nenhum dos dois perceba o fato. E
é fácil para o usuário prestar-lhe algumas informações sobre os requisitos e o
analista não entender essas informações, novamente sem que nenhum dos dois
perceba o fato. As ferramentas de modelagem são uma tentativa de fornecer
uma linguagem comum e sem ambiguidades para diminuir esses mal
entendidos. Porém as entrevistas costumam ser realizadas em uma língua
comum (inglês, espanhol, francês, português etc.),portanto o problema é real.
Isso explica porque é tão importante marcar entrevistas subsequentes para
confirmar que ambas as partes entenderam as perguntas e as respostas.
Criar ressentimentos recíprocos. existem algumas razões pelas quais o
usuário pode não se sentir à vontade ou mesmo colocar-se em posição
antagônica na entrevista com um analista de sistema (ex.: porque ele percebe
que o verdadeiro objetivo do novo sistema que o analista está especificando é
tomar-lhe o emprego). E o analista pode ressentir-se do modo como o usuário
está respondendo as perguntas. Em qualquer caso, o ressentimento pode surgir
entre as duas partes, tornando a comunicação muito mais difícil.
23
Faculdade de Minas
As seguintes diretrizes podem ser de grande auxílio na direção de
entrevistas bem-sucedidas com o usuário.
24
Faculdade de Minas
isso não é comum em empresas grandes; é politicamente perigoso vagar pela
organização usuária realizando entrevistas sem prévia autorização.
Na maioria dos casos, a autorização virá ou do encarregado de um setor
usuário (um departamento ou divisão) ou do representante da empresa que
estará auxiliando o projeto de desenvolvimento do sistema. Em qualquer caso,
os usuários têm legítimas razões em querer aprovar, antecipadamente, quem
será entrevistado:
Eles podem saber que alguns usuários não serão capazes de
compreender ou exprimir bem os requisitos do sistema.
Eles podem desconfiar de que alguns dos usuários do nível operativo
sejam rebeldes que apresentarão requisitos falsos (ou requisitos que a direção
não aprova).
Eles podem recear que as entrevistas interfiram com as atribuições
normais de trabalho que os usuários tenham de executar. Por causa disso,
desejarão marcar as entrevistas para os momentos apropriados.
Eles podem recear que as entrevistas sejam vistas como o início de um
esforço de substituição dos usuários humanos por um sistema computadorizado,
provocando demissões e coisas desse gênero.
Eles podem considerar que eles próprios (os diretores) sabem mais a
respeito dos requisitos do sistema do que qualquer outro e por isso não desejam
que você entreviste qualquer usuário de nível operativo.
Pode estar havendo uma batalha política em andamento em um nível de
chefia muito mais elevado, entre o setor usuário e a organização de
desenvolvimento de sistemas. Desse modo, o gerente usuário pode não ter reais
objeções a suas entrevistas, porém, impedindo que elas sejam feitas, ele estará
enviando uma mensagem política para o chefe do chefe do seu chefe.
Por todos esses motivos, é uma boa medida obter uma prévia autorização.
Na maior parte dos casos, basta uma autorização verbal; se a organização for
terrivelmente burocrática ou paranóica, pode–se precisar de uma autorização
escrita. Isso, a propósito, também significa que o analista deve estar atento à
política organizacional se tiver certeza da necessidade de falar com um usuário
25
Faculdade de Minas
(normalmente um usuário do nível operativo) com quem tenha sido avisado para
não conversar.
26
Faculdade de Minas
organizar a entrevista para abranger um escopo relativamente limitado,
focalizando normalmente uma parte do sistema. Isso também pode significar que
tenha de marcar algumas entrevistas com o mesmo usuário para abranger
inteiramente a área em que ele está envolvido.
Finalizando, marcar uma reunião subsequente para rever o material que
foi coletado. Normalmente, após a entrevista, o analista irá para sua mesa com
todas as informações colhidas na entrevista, e executará bastante trabalho com
os dados brutos. Pode haver DFD a serem desenhados ou itens a serem criados
no dicionário de dados; cálculos de custo/benefício podem precisar ser feitos; as
informações provenientes da entrevista podem precisar ser correlacionados com
dados de outras entrevistas, e assim por diante. Em qualquer caso, os dados
dessa entrevista serão manipulados, documentados, analisados e convertidos
em uma forma que o usuário pode nunca ter visto antes. Desse modo, pode ser
necessário marcar uma entrevista posterior para verificar:
que o analista não cometeu nenhum engano em seu entendimento do que
o usuário lhe disse,
que o usuário não mudou de opinião nesse ínterim,
que o usuário entende a notação ou a representação gráfica dessas
informações.
27
Faculdade de Minas
registrar o conhecimento de um requisito do usuário e corrigir imediatamente
quaisquer erros que tenha sido cometido.
Se, a tecnologia introduzir-se no assunto, deve-se deixar fora da
entrevista. Se o usuário tiver de aventurar-se além de seu ambiente normal de
atividade (para outro prédio, na sala do computador) poderá encarar a
ferramenta como um aborrecimento. Se o usuário não estiver familiarizado com
a tecnologia de computadores e for solicitado a utilizar a ferramenta, poderá
rejeitá-la. E se o analista não estiver familiarizado com a ferramenta (ou se a
ferramenta for lenta, apresentar erros ou de emprego limitado) isso interferirá
sensivelmente na entrevista. Em qualquer desses casos, talvez seja preferível
usar a ferramenta off-line depois da entrevista; então, poderá mostrar ao usuário
a saída da ferramenta sem causar quaisquer problemas desnecessários.
28
Faculdade de Minas
Use um Estilo Adequado de Entrevistar
Como diz William Davis [Davis, 1983]: Sua atitude em relação à entrevista é
importante na determinação de seu sucesso ou fracasso. Uma entrevista não é
uma competição. Evite ataques; evite o uso excessivo do jargão técnico; conduza
uma entrevista, não uma tentativa de persuasão. Fale com as pessoas, não fale
muito alto, nem muito baixo, nem indiretamente. Uma entrevista não é um
julgamento. Faça perguntas detalhadas, mas não faça perguntas para confirmar
outras respostas. Lembre-se que o entrevistado é o perito e que é você que
precisa de respostas. Para concluir, de modo algum critique a credibilidade de
outras pessoas. Fazer perguntas detalhadas nem sempre é fácil; dependendo
da personalidade do entrevistado e do tema da entrevista, pode-se precisar de
um conjunto de estilos para extrair as informações necessárias. Alguns estilos
que podem mostrar-se úteis:
Relacionamentos. Pedir ao usuário para explicar o relacionamento entre
o que está em discussão e as demais partes do sistema. Se o usuário estiver
falando sobre um assunto (p.ex.: um cliente), pedir-lhe que explique seu
relacionamento sob outros aspectos; se ele estiver descrevendo uma função
(ex.: uma bolha de um DFD), pedir- lhe que explique seu relacionamento com
outras funções. Isso não só o auxiliará a descobrir mais detalhes sobre o item
em pauta, mas também o ajudará a descobrir interfaces (ex.: fluxos de dados
de uma bolha para outra no DFD) e relacionamentos formais.
Pontos de vista alternativos. Solicitar ao usuário que descreva o ponto
de vista de outros usuários em relação ao item que esteja sendo discutido.
Perguntar ao usuário, por exemplo, o que seu chefe pensa sobre uma bolha
do DFD, ou um tipo de objeto do DER; ou pergunte o que pensa seu
subordinado.
Detalhamento. Solicitar ao usuário uma informal descrição narrativa do
item em que estiver interessado. Fale-me sobre o modo como você calcula o
valor das remessas. Ou, se estiver falando com o usuário sobre um tipo de
objeto no DER, poderia dizer- lhe: Fale-me a respeito de um cliente. O que
você sabe (ou precisa saber) sobre um cliente?
29
Faculdade de Minas
Dependências. Perguntar ao usuário se o item em discussão depende,
para sua existência, de alguma outra coisa. Isso é especialmente útil quando
se discutem possíveis tipos de objetos e relacionamentos no DER. Em um
sistema de controle de pedidos, por exemplo, pode-se perguntar ao usuário
se seria possível haver um pedido sem que haja um cliente.
Confirmação. Dizer ao usuário o que acha que ouviu ele dizer; usar suas
próprias palavras em lugar das dele e peça confirmação. Pode-se dizer:
Deixe-me ver se entendi o que você disse...
30
Faculdade de Minas
Você não conhece nossa empresa, como você quer dizer-nos como
deve ser o novo sistema? A resposta a essa pergunta é: Você tem razão! E por
isso que o estou entrevistando para saber o que você pensa sobre quais devam
ser os requisitos!. Por outro lado, deverá sugerir várias maneiras de melhorar as
coisas (especialmente se parte ou todo o serviço realizado atualmente pelo
usuário for em um antigo e ineficiente sistema); assim, esse tipo de comentário
pode ser inevitável. Entretanto, o verdadeiro truque é continuar sendo tão
respeitoso quanto possível e reconhecer constantemente a experiência do
usuário na sua área, embora continuando a perguntar se ele poderia explicar-lhe
porque sua ideia não funcionaria.
Você está tentando mudar o modo como as coisas são feitas aqui. O
artifício neste caso é mostrar ao usuário que embora possa estar propondo
algumas (radicais) mudanças na implementação do sistema atual, não é
pensamento modificar as características essenciais desse sistema, exceto nas
áreas onde eles mesmos tenham solicitado uma alteração. Devemos lembrar,
que algumas das características da implementação do sistema atual podem ser
preservadas, por causa das interfaces do sistema atual com outros sistemas
externos que exijam que as entradas ou saídas apresentem formatos prescritos.
Não queremos esse sistema. Esta é uma variação da queixa você está
querendo tirar meu emprego. A verdadeira resposta é que o analista está ali,
conduzindo a entrevista, porque a direção quer o novo sistema. Não é da sua
competência convencer os usuários operativos que eles devem querer o novo
sistema; fazer isso é colocar o peso da responsabilidade sobre seus ombros,
onde ela não deve ficar.
Por que você está desperdiçando nosso tempo com esta entrevista?
Sabemos o que queremos, e se você fosse competente, você saberia
imediatamente o que queremos. Por que você não vai em frente e constrói o
sistema? Esta é uma reclamação difícil de se lidar, porque relaciona-se com o
fato fundamental de que os usuários e os analistas de sistemas estão falando
línguas diferentes e estranhas. Lembre-se, que com a disponibilidade das
31
Faculdade de Minas
linguagens de quarta geração e dos computadores pessoais, o usuário pode
achar que pode construir ele próprio o sistema; sucessos fáceis com projetos
simples (planilhas eletrônicas, por exemplo) podem ter-lhe dado a impressão de
que todos os sistemas são fáceis de implementar. Isso pode explicar a
impaciência em relação ao analista.
Outros Problemas
As diretrizes acima alertaram sobre os inúmeros problemas políticos com
que o analista pode se defrontar em uma entrevista e os muitos motivos pelos
quais o usuário pode mostrar- se hostil. Mas ainda existem alguns problemas
para os quais deve-se estar atento:
O usuário pode ser incapaz de explicar o que ele quer que o sistema
faça ou pode mudar de opinião. Esse é um problema comum e o analista de
32
Faculdade de Minas
sistemas deve estar preparado para ele. Quanto maior for esse problema mais
importante torna-se a prototipação.
33
Faculdade de Minas
decidir se o produto é uma boa solução, mas também revelar funções e dados
armazenados que você pode não ter percebido.
Questionário de Pesquisa
Essa ferramenta é muito conveniente quando há um grande número de
usuários ou vários grupos de usuários em locais diferentes. Nestas situações
não é prático entrevistar todas as pessoas, mas tão logo as informações obtidas
através dos questionários tenham sido analisadas, podem ser realizadas
entrevistas com usuários selecionados.
Preparação do questionário:
34
Faculdade de Minas
Identifique o tipo de informação que deseja obter, como problemas
experimentados ou oportunidades a explorar;
Definidos os requisitos, escolha um formato apropriado para o
questionário;
Monte questões de forma simples, clara e concisa;
Se incluir questões abertas, observar o espaço necessário para a
resposta;
Agrupar as questões por tópicos ou áreas afins;
Se possível, enviar junto com o questionário uma carta da direção da
empresa explicando os motivos e a importância da pesquisa para a organização.
Identificação dos respondentes
O questionário deve ser personalizado com o nome, função e localização
do respondente;
Elaborar um controle de identificação das pessoas que receberão os
questionários. Utilizar o controle para monitorar a situação dos questionários.
Distribuição do questionário
Distribua o questionário junto com as instruções de preenchimento;
Indique claramente o prazo para a devolução do questionário e a forma de
devolução.
Análise das respostas
Consolide e análise as informações fornecidas pelos questionários
devolvidos;
Documente as principais descobertas;
Envie uma cópia do relatório com as principais descobertas para cada
respondente como uma cortesia pelo tempo dedicado à pesquisa.
Observações no ambiente
A análise de observação é uma técnica de observação de fatos muito
efetiva. Ela pode ser usada para diversas finalidades, como processamento e
confirmação de resultados de uma entrevista, identificação de documentos que
35
Faculdade de Minas
devem ser coletados para análise, esclarecimento do que está sendo feito no
ambiente atual.
Esta técnica é simples. Durante algum tempo, o analista fica observando
os usuários em seu ambiente enquanto eles executam suas tarefas diárias.
Frequentemente o analista fará perguntas para conhecer o funcionamento e as
atividades desenvolvidas. É importante explicar para as pessoas que serão
observadas o que será observado e porquê. Os passos para a observação são:
Antes:
36
Faculdade de Minas
Reveja os resultados consolidados com as pessoas observadas e/ou com
seus superiores.
37
Faculdade de Minas
38
Faculdade de Minas
máquina.
2. Testes e Integração do sistema: deve-se testar todas os programas a
procura de erros. A Integração consiste das junções das várias unidades e
programas desenvolvidos. O resultado real deve concordar com o projeto ou
resultado exigido. Depois de testado, o software é entregue ao usuário.
3. Manutenção e Operação: o sistema é instalado e colocado em uso,
indubitavelmente o software sofrerá mudanças depois que foi entregue ao
cliente, e, mesmo software embutido sofre upgrade de tempos em tempos. A
manutenção ocorre basicamente com a correção de erros não detectados
(manutenção corretiva), com a adaptação da aplicação às mudanças do
ambiente (manutenção adaptativa) e na adição de novas características e
qualidades do software (manutenção evolutiva).
Prototipação
Muitas vezes, as dúvidas do cliente e do programador, em relação ao
software, levam ao processo de prototipação. A prototipação capacita o
desenvolvedor a criar um modelo de software que será implementado. O objetivo é
antecipar ao usuário final um modelo de sistema para que ele possa avaliar sua
finalidade, identificar erros e omissões, quando em utilização, efetuando de
imediato correções e ajustes. O modelo pode assumir uma das três formas citadas:
39
Faculdade de Minas
Um protótipo em papel ou em PC, que retrata a interação homem máquina,
podendo ver quantas interação haverá.
Um protótipo que implemente funções específicas, da função exigida pelo
software.
Um programa existente que executa parte ou toda a função desejada, mas
que tem características que deverão ser melhoradas.
Fim Início
40
Faculdade de Minas
O cliente quer resultados, e, muitas vezes não saberá, ou não entenderá, que um
protótipo pode estar longe do software ideal, que ele nem sequer imagina como é.
Mesmo assim, a gerência de desenvolvimento cede às reclamações e tenta encurtar o
prazo de entrega, o qual já estava prolongado.
O desenvolvedor, na pressa de colocar um protótipo em funcionamento, é levado
a usar um SO ou linguagem de programação imprópria por simplesmente estar a
disposição ou estar mais familiarizado. Essa atitude poderá levar à um algoritmo
ineficiente.
41
41
Faculdade de Minas
O MODELO ESPIRAL
Foi desenvolvido para abranger as melhores características do ciclo de vida
clássico e da prototipação, ao mesmo tempo que adiciona um novo elemento, que é a
análise de risco. Este modelo de ciclo de vida se utiliza de protótipos por se adequar
muito bem com esta filosofia de desenvolvimento. Cada passo através do ciclo inclui:
planejamento, análise e projeto, prototipação e avaliação. Os passos vão sendo
repetidos até que um produto seja obtido. Sendo assim definiu-se 4 importantes
atividades:
Planejamento, determinação de objetivos, alternativas e restrições do ciclo,
considerando os resultados do ciclo anterior ou da análise dos requisitos.
Análise dos riscos, análise das alternativas e identificação (resolução) dos riscos.
Engenharia, Desenvolvimento e verificação da solução escolhida.
Avaliação do Cliente, avaliação dos resultados e planejamento do ciclo seguinte.
Os riscos são circunstancias adversas que podem atrapalhar o processo de
desenvolvimento e a qualidade do produto a ser desenvolvido, assim é possível prever e
eliminar os problemas de alto risco através de um planejamento e projetos cuidadosos.
Este é um modelo que atende os seguintes casos:
o problema a ser resolvido não está totalmente entendido;
a realidade pode mudar enquanto o sistema está sendo desenvolvido;
a própria solução adotada pode ter algum efeito colateral desconhecido;
a preocupação está centrada mais na qualidade e funcionalidade do que se
produz.
42
42
Faculdade de Minas
43
43
Faculdade de Minas
grande risco não for descoberto, com certeza ocorrerão problemas.
Esse paradigma é relativamente novo, e não tem sido amplamente usado como
os 2 paradigmas anteriormente explicados. Somente o tempo, que gera a experiência,
poderá comprovar a eficácia do modelo espiral.
44
44
Faculdade de Minas
e que a manutebilidade de grandes sistemas de software desenvolvidos pelas 4GT
estão abertas a questionamentos.
A prós e contras na discussão sobre este paradigma:
Com raras exceções as 4GT’s se limitam a aplicações de sistemas de informação
comercial. Mas, utilizando ferramentas CASE, que agora suportam o uso das 4GT’s,
para a geração automática de esqueleto de código para as aplicações de engenharia
em tempo real.
Os dados preliminares, coletados em empresas que estão usando 4GT parecem
indicar redução na quantidade de planejamento e análise para aplicações pequenas e
intermediárias.
Entretanto, o uso das 4GTs ainda exige tanto ou mais análise, planejamento e
teste.
A projeção é que a demanda de software continue em ascensão, mas, que os
paradigmas convencionais perderão espaço no mercado de desenvolvimento, para as
4GTs.
45
45
Faculdade de Minas
determinando o fim do ciclo de vida do software.
Incapacidade de integrar novos incrementos
São usados em grandes projetos e também em softwares desenvolvidos para
distribuição em grande escala, por permitir evolução e melhorias sem descaracterizar o
software.
Combinando Paradigmas
Os paradigmas podem e devem ser combinados de forma que as potencialidades
de cada um, possam ser utilizados em um único projeto. Qualquer paradigma pode
constituir a base a qual os outros poderão ser integrados.
O processo começa com a determinação dos objetivos, alternativas e restrições e
depois disso, qualquer caminho pode ser tomado. A natureza da aplicação é que vai
determinar o paradigma a ser utilizado, e a combinação de paradigmas só tende a
beneficiar o processo como um todo.
OS PROCESSOS DE SOFTWARE
Um processo de software é um conjunto de atividades e resultados associados
que levam à produção de um produto de software. Esse processo pode envolver o
desenvolvimento de software desde o início, embora, cada vez mais, ocorra o caso de
um software novo ser desenvolvido mediante a expansão e a modificação de sistemas
já existentes.
46
46
Faculdade de Minas
Modelo em Cascata
É o primeiro modelo publicado do processo de desenvolvimento de software, já
estudado no capitulo 2.
O resultado de cada fase envolve um ou mais documentos que são aprovados e
assinados. A fase seguinte só é iniciada após a conclusão da fase precedente, mas na
prática eles se sobrepõem e trocam informações. Durante o projeto, são identificados
problemas com os requisitos; durante a codificação são verificados problemas do projeto,
e assim por diante. O processo não é um modelo linear simples, mas envolve uma
sequência de iterações das atividades de desenvolvimento.Devido aos custos de
produção e aprovação de documentos, as iterações são onerosas e envolvem muito
retrabalho. Depois de algumas iterações é normal suspender partes do desenvolvimento da
fase e passar para o próximo estágio, postergando soluções ainda não encontradas. Essa
suspensão prematura pode resultar em problemas futuros, quando da finalização do
software.Desenvolvimento Evolucionário
47
47
Faculdade de Minas
Tem como ideia o desenvolvimento da versão inicial que é exposta aos comentários
do usuário e a partir destes é desenvolvido uma versão intermediária que é exposta aos
comentários do usuário e assim sucessivamente (gera várias versões) até que um sistema
48
48
Faculdade de Minas
A transformação formal:
Cada etapa acrescenta mais detalhes, mas ainda é matematicamente correta, até
que a especificação formal seja convertida em um programa equivalente.
49
49
Faculdade de Minas
rápida do software. Contudo, as adequações nos requisitos podem ser inevitáveis e
pode resultar em um sistema que não atenda as necessidades do usuário, além de que
novas versões dos componentes reutilizáveis podem não estar sob controle da equipe
de desenvolvimento.
Fase de Definição
Planejamento do software: descrição do escopo, análise do esforço, análise de
riscos, levantamento dos recursos exigidos, estimativas de custos e de prazos. O
objetivo é fornecer uma indicação da viabilidade do software; fase de análise e
requisitos do software: a análise forma do domínio da informação é utilizada para
estabelecer modelos de fluxo de dados e da estrutura da informação. Alternativamente
pode ser feito um protótipo. Estes modelos são detalhados para se tornar uma
especificação do software, que é o documento produzido com resultado desta fase.
Planejamento do Análise de
Funções do Projeto de Revisão Requisitos ou Revisão
Sistema Software Prototipação
Fase de Desenvolvimento
50
50
Faculdade de Minas
Projeto de Projeto de
arquitetura R Projeto R arquitetura R
Revisão Revisão Revisão
Procedimental
Testes de
Unidades, de Depuração Liberação e R Manutenção
Integração e Validação Distribuição evisão
Ferramentas
Diagrama de Transição
51
de Estados
51
Faculdade de Minas
TÉCNICA ESTRUTURADA
Neste capitulo serão apresentadas as técnicas estruturadas utilizadas no
desenvolvimento de sistemas, e que podem também ser chamadas de: técnicas de
melhoria de produtividade, técnicas de produtividade na programação ou ainda técnicas
de engenharia de software. Elas incluem os seguintes tópicos:
Análise estruturada;
Projeto estruturado;
Programação estruturada;
Desenvolvimento top-down;
Equipes de programação;
52
52
Faculdade de Minas
Revisões estruturadas.
Análise Estruturada
Como o próprio nome sugere, ela refere-se ao extremo inicial de um projeto de
desenvolvimento de sistemas, durante o tempo em que os requisitos do usuário são
definidos e documentados.
Por que a análise estruturada é tão importante? Simplesmente porque a análise
clássica é não atendeu as necessidades. O problema é muito simples de ser
expressado: em qualquer coisa diferente de um projeto de desenvolvimento de sistemas
trivial, o usuário não tem um bom entendimento do que está sendo feito para ele. Os
problemas da análise clássica podem ser resumidos como:
As especificações funcionais clássicas são monolíticas;
Todos esses fatores contribuem para tornar a fase de análise dos sistemas
convencionais, na maioria dos grandes projetos, uma atividade dolorosa e demorada.
Em muitos casos, todos estão desesperados para passar para pela aprovação. Tendo
acabado a fase de análise de sistemas, poucos pensam em voltar atrás e reexaminar ou
revisar as especificações formais.
Lista de Eventos
Diagrama de Contexto
53
53
Faculdade de Minas
Diagrama de fluxo de dados (DFD);
Especificação de processo.
Diagrama de Contexto
Documenta o âmbito do estudo, apresentando os fluxos de dados que entram e
saem do sistema e sua interação com as entidades externas. Tem como função delinear
a área de observação.
função a ser executada, o seu nome é sempre no imperativo e o mais objetivo possível.
Depósito de Dados – é o local onde serão armazenadas as informações (dados)
processadas e de onde serão recuperadas quando necessárias.
Dicionário de dados
Fornece a informação de texto de suporte para complementar a informação gráfica
54
54
Faculdade de Minas
mostrada no DFD, é simplesmente um grupo organizado de definições de todos o s elementos
de dados no sistema sendo modelado. Deverá conter a definição dos elementos que tornam o
Modelo de Dados e o Diagrama de Fluxo de Dados precisos, quais sejam: Fluxos de dados,
Depósitos de dados e Atributos dos depósitos.
Por exemplo, o elemento de dados pedido-cliente mostrado no DFD da figura acima
poderia ser definido da seguinte forma:
PEDIDO-CLIENTE = NOME-CLIENTE + NRO-CONTA + ENDEREÇO + 1{ITEM-
PEDIDO}6 ITEM-PEDIDO = COD-PRODUTO + DESC-PRODUTO + QTD-PROD + PRECO
Símbolo Significado
= É composto de
+ E
{ } Interações de
* * Comentário
55
55
Faculdade de Minas
existentes entre elas.
Exemplo:
O(s) atributo(s) que ocorrem mais de uma vez (repetitivos) são identificados por
56
56
Faculdade de Minas
uma inclusão entre parêntesis.
Exemplo:
SEXO = [ M | F ]
DEPENDENTE
VÁRIAS, UMA EMPREGADO
OU NENHUMA
OCORRÊNCIA
UMA E
SOMENTE UMA
OCORRÊNCIA
NÍVEL
L EMP SALARIAL
OTAÇÃO REGADO
PELO UMA
MENOS UMA OCORRÊNCIA OU
OCORRÊNCIA NENHUMA
G
ERENTE
Símbolos especiais colocados nas extremidades de uma linha que representa o
relacionamento. Exemplo:
57
57
Faculdade de Minas
Empregados pertencem a departamentos;
58
58
Faculdade de Minas
ocupa parte da mudança de estado).
Começar pelo estado inicial, continuando metodicamente seu caminho para o(s)
estado(s) seguinte(s). depois do(s) estado(s) secundário(s) para o(s) terciário(s).
Todos os estados foram atingidos? Algum estado foi definido sem que haja
caminhos que levem a ele?
Especificação de Processos
Sua finalidade é permitir que o analista de sistemas descreva, rigorosa e
precisamente, a política representada por cada um dos processos atômicos de baixo
nível nos diagramas de fluxo de dados de baixo-nível.
59
59
Faculdade de Minas
no seguinte:
Um grupo limitado de verbos de ação, como calcular e validar – um grupo de mais ou menos 40
verbos;
Nomes que foram definidos no dicionário de dados ou que estão definidos dentro
da própria especificação de processo.
1. Se o valor da fatura vezes o número de semana em atraso for maior que R$ 1000,00 Faça:
a) Chamar o Cliente;
b) Examinar o Cliente em duas semanas;
c) Incrementar Contador de notas em atraso em um;
2. Caso contrário se menos de quatro notas de atraso foram enviadas, Faça:
a) Chamar o Cliente;
b) Examinar a fatura em uma semana;
c) Incrementar Contador de notas em atraso em um;
3. Caso contrário:
a) Enviar ao Cliente uma cópia da fatura contendo o número de semanas e atraso;
b) Examinar a fatura em uma semana;
60
60
Faculdade de Minas
Para desenvolver, pode-se seguir:
Projeto Estruturado
Talvez o ponto mais importante a entender seja que o projeto estruturado não
é apenas programação modular, ou projeto modular, como foi chamado inicialmente,
e nem apenas um projeto top-down. O projeto estruturado pode ser definido como a
determinação de quais módulos, interconectados de que forma, melhor solucionarão
algum problema bem definido.
Técnicas de documentação;
Heurísticas de projeto;
61
61
Faculdade de Minas
Estratégias de projeto.
Programação Estruturada
A programação estruturada foi a primeira das técnicas estruturadas a ser
discutida e praticada amplamente. Para muitas pessoas, o termo programação
estruturada é genérico e inclui filosofias de projeto, estratégias de implementação,
conceitos de organização de programas, e as virtudes básicas de prosperidade,
lealdade e bravura. Para as finalidades desta discussão, no entanto, a programação
estruturada deve ser pensada como uma técnica de codificação e só deve ser
discutida no contexto da programação.
62
62
Faculdade de Minas
O ponto principal é que este conjunto de construções é suficiente
para formar todo e qualquer tipo de lógica de programa; e em particular,
não é necessário usar os comandos de desvio em programação
estruturada.
Desenvolvimento Top-down
Em muitos casos, por motivos históricos, o desenvolvimento top-
down é confundido com projeto top-down, mas estamos pensando em
implementação top-down. Três aspectos top- down estão relacionados,
mas distintos, da seguinte forma:
Equipes de Programação
Outro aspecto do método de desenvolvimento de sistemas
estruturados é o conceito de equipes de programação, em particular, as
equipes de programador-chefe e equipes abertas.
63
Faculdade de Minas
O conceito de equipe aberta é baseada na teoria da participação de
toda a equipe na solução dos problemas sem a supervisão direta de
qualquer um.
Revisões Estruturadas
Uma revisão estruturada é um procedimento organizado para que um
grupo de examinadores (analistas de sistemas, programadores, etc)
revisem um produto técnico para fins de correção e garantia de qualidade.
64
Faculdade de Minas
REFERÊNCIA BIBLIOGRAFICA
65
Faculdade de Minas
OURDON, Edward. Administrando o ciclo de vida do sistema – 2ª edição.
Rio de Janeiro: Editora Campus. 1989.
66