Você está na página 1de 22

Análise e Projeto

de Sistema
Material Teórico
Desenvolvimento da Análise e Projeto de Sistemas

Responsável pelo Conteúdo:


Prof. Ms. Rodrigo da Rosa

Revisão Textual:
Profª. Esp. Vera Lidia de Sá Cicaroni
Desenvolvimento da Análise e Projeto
de Sistemas

• Introdução

• Análise e Projeto de um Sistema

• Verificação – Testes

• Teste de Sistemas

• Manutenção

• Visão Geral do Desenvolvimento da Análise


e Projeto de Sistemas

·· Nesta unidade, faremos um estudo sobre a importância de


realizar testes em projetos de sistemas. Além disso, você
perceberá que, normalmente, haverá a necessidade de
realização de manutenções no sistema.
·· Para total aproveitamento da disciplina é fundamental que
você leia o conteúdo teórico, assista às videoaulas, acesse os
fóruns e participe de todas as atividades.

Atenção

Para um bom aproveitamento do curso, leia o material teórico atentamente antes de realizar as
atividades. É importante também respeitar os prazos estabelecidos no cronograma.

5
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

Contextualização

Imagine que você contratou uma determinada empresa para desenvolver um software capaz
de resolver um problema sobre o qual você não tem mais controle. As etapas de construção
dele já foram todas concluídas, ou seja, foi feita a análise de requisitos, modelos foram
propostos, diagramas elaborados, e a programação está completa. Tudo isso já foi devidamente
documentado também.
Durante um tempo considerável, a equipe de desenvolvimento de software não poupou
esforços para que todos os seus ideais fossem satisfeitos, criando um programa que executasse
cada operação para beneficiá-lo em algum ponto específico de dificuldade apresentada nas
primeiras etapas do projeto.
Desse modo, estaria o software pronto para ser entregue, instalado e colocado em execução?
É claro que não. Mas por quê?
Ao desenvolver um software, os profissionais especialistas tomam bastante cuidado para que
nada falhe, porém sempre haverá algum tipo de ajuste que será necessário realizar, uma vez que
defeitos aparecem na etapa em que são feitos os testes. Esse software precisa ser testado quanto
ao seu desempenho diante dos requisitos levantados. Precisa também ser testado, integrando-o
ao sistema com o qual deverá funcionar. Nesta etapa, é possível que você mesmo faça testes,
já que foi quem contratou os serviços dessa empresa desenvolvedora de sistema e sabe melhor
do que ninguém do que realmente precisa. Sempre que um defeito for encontrado, a equipe de
desenvolvimento deverá agir para que seja corrigido.
Nesta unidade iremos abordar os conceitos relacionados aos testes de software. Além disso,
serão apresentadas informações importantes a respeito da manutenção exigida para os softwares,
quando ele já se encontra em operação no ambiente para o qual foi projetado.

6
Introdução

O desenvolvimento de sistemas envolve, como já é de nosso conhecimento, diversas


etapas que são cuidadosamente tratadas para que haja qualidade em todo o trabalho
despendido nesse processo.
O projeto de software não termina no momento em que ele está apto para uso, quando já
existe uma estrutura de programação capaz de realizar as tarefas idealizadas para o sistema.
As etapas seguintes e necessárias estão relacionadas ao trabalho de testes no sistema e
também à sua manutenção.
Nesta unidade, abordaremos os processos que envolvem os testes no software e no sistema
como um todo. Identificaremos a importância de dedicar o tempo que for necessário para
que o software, de alguma forma, sinalize se contém falhas que poderão comprometer suas
operações quando estiver em uso. Além disso, serão apresentados conceitos relacionados à
manutenção do sistema, ou seja, quando ele apresentar defeitos durante as atividades dele
exigidas em ambiente para o qual ele foi projetado.

Análise e Projeto de um Sistema

Como é de conhecimento, o desenvolvimento de um projeto de sistemas contempla


diversas fases, estruturadas de tal maneira que os detalhes que envolvem a análise sejam
estabelecidos para que o produto final possa satisfazer a todas as necessidades que o
usuário/cliente idealizou no momento em que optou por investir em um software para seus
interesses ou de sua empresa.
Vale a pena relembrar que a fase inicial do desenvolvimento de um projeto de software
é conhecida como Requisitos. Nesta etapa, um analista assume o papel de intermediador
entre o usuário, que está interessado em obter um sistema que atenda a necessidades
pontuais, e a equipe de desenvolvimento que irá projetar o software. O analista, através de
determinadas técnicas, identifica junto ao usuário, todas as características que um sistema
deve possuir para aquela demanda.
Como já é de nosso conhecimento, o ciclo de vida de um software é descrito conforme
figura abaixo:

7
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

Figura 1: Ciclo de Vida do Software.

A segunda fase é conhecida como Projeto e, nela, são utilizados modelos que visam representar
o sistema de maneira tal que facilite a compreensão mais detalhada do projeto por parte do
usuário e também por parte do analista e dos desenvolvedores. São considerados modelos em
forma de diagramas, fluxogramas, dicionários e também técnicas de modelagem considerando
orientação a objetos. Esta fase é também aquela em que os desenvolvedores irão criar o sistema
utilizando técnicas de programação.
Todas as formas de documentos gerados desde os primeiros contatos entre usuário e analista
(questionários, entrevistas, formulários, anotações) e entre analista e equipe de desenvolvimento
(identificação das necessidades captadas através dos contatos realizados), além dos modelos e
códigos-fonte elaborados na fase Projeto, são aproveitadas e analisadas para que, na etapa
Implementação, se torne uma documentação que detalhará toda a parte de funcionalidades do
sistema e as formas de manipulação dele. Características técnicas também são registradas.
As duas próximas etapas são conhecidas como Verificação e Manutenção. São as etapas que
visam garantir a qualidade do software desenvolvido, uma vez que:
• a Verificação diz respeito aos testes que serão realizados no software na tentativa de
identificar problemas, defeitos ou falhas, ou seja, é nesta fase que deve ser percebido se
o software cumpre o que foi especificado e se faz o que o usuário deseja. Além disso, os
testes podem ser realizados para comprovar que o sistema funciona adequadamente;

Diálogo com o Autor

Segundo Paula Filho (2009, p. 349), um teste é uma atividade na qual um produto, sistema ou
componente é executado sob condições especificadas, com observação e registro dos resultados e
avaliação de um ou mais aspectos.

8
• a Manutenção diz respeito aos reparos que o software deverá receber por apresentar
defeitos após ser colocado em funcionamento no ambiente para o qual foi projetado.
Existe, ainda, a possibilidade de, na fase anterior, o usuário perceber que alguma nova
funcionalidade deva ser acrescentada ao projeto. Esta etapa permite a inclusão dela.

Verificação – Testes

O processo de testes de software ocorre posteriormente à fase de codificação, ou seja, no


momento em que a equipe de desenvolvimento sinalizar que o programa está concluído.

Mas por que testar?


Imagine que a especificação indique que o sistema deverá cadastrar um cliente somente se for
inserido um número de telefone ou qualquer outro tipo de contato que o identifique. Se, após o
preenchimento do formulário, faltarem os devidos contatos do cliente e, mesmo assim, o sistema
armazenar esses dados, considera-se que o sistema possui um defeito e este precisa ser corrigido.
PFLEEGER (2004, pp. 271 e 272) indica alguns tipos de defeitos que poderão ocorrer em
um software:

• Defeito no algoritmo: ocorre quando a codificação do software não apresenta


o resultado que deveria apresentar. Testes de mesa ou inserção de dados de entrada
diferentes são facilitadores para que os defeitos no algoritmo sejam encontrados.

Glossário
Teste de mesa é um procedimento que os desenvolvedores geralmente adotam, utilizando apenas
papel e caneta, livre de computador, para identificação de falhas no algoritmo do programa através
de simulação do comportamento dele, instrução por instrução, no momento em que suas variáveis
são manipuladas.
Variáveis são espaços na memória de um computador que alocam um determinado dado e que
possuem nomes para tornar possível o acesso a tais dados. Exemplo: sejam duas variáveis, x e
y. x = ‘João’ e y = ‘Maria’, significa que haverá, na memória, um espaço ocupado pelo dado
‘João’ e outro espaço ocupado pelo dado ‘Maria’, que poderão ser acessados quando x ou y forem
referenciados.
Instruções são comandos básicos que sugerem ao software o que ele deverá fazer. Por exemplo:
Escrever x = 1; Ler y = 7; Subtrair y de x.
Algoritmo é uma composição de instruções que possibilitarão a execução de determinada tarefa. Um
programa de computador é formado por um conjunto de tarefas (algoritmos) e estes são formados
por um conjunto de instruções.

9
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

Considere o algoritmo abaixo para exemplificação de um teste de mesa. Deseja-se que duas
variáveis (x e y) recebam valores diferentes e que, ao ser executado o algoritmo, haja a troca de
valores entre essas variáveis, ou seja, o valor que era de x passe a ser de y e o valor que era de
y passe a ser de x.
1 principal()
2 início
3 x=5
4 y=4
5 fim
6 imprima x = y
7 imprima y = x
8 fim

O teste de mesa poderá ser montado da seguinte maneira:

Linha x y
1
2
3 5
4 5 4
5 5 4
6 4 4
7 4 4

Perceba que o algoritmo apresenta um defeito, já que o resultado final apresenta x e y como
contendo o valor 4, quando o esperado era que x tivesse o valor 4 e y tivesse o valor 5.
Neste caso, o problema seria solucionado acrescentando certo detalhe no algoritmo, conforme
exemplo a seguir:

1 principal()
2 início
3 x=5
4 y=4
5 z=0
6 fim
7 z=x
8 imprima x = y
9 imprima y = z
10 fim

10
Verifique, no teste de mesa, que agora o algoritmo satisfaz a exigência proposta, pois o
resultado final indica que x, que era 5, passou a ser 4 e y, que era 4, passou a ser 5:

Linha x y z
1
2
3 5
4 5 4
5 5 4 0
6 5 4 0
7 5 4 5
8 4 4 5
9 4 5 5

• Defeito de sintaxe: para que um código consiga executar alguma tarefa programada,
deve seguir um padrão de estrutura denominada sintaxe. Um defeito de sintaxe pode
se manifestar quando uma vírgula ou um ponto-e-vírgula não são devidamente
inseridos no código, por exemplo.
• Defeito de computação: ocorre quando o programa exige que, em determinado
momento, alguma operação matemática seja realizada e seu resultado seja exibido ou
utilizado por outro módulo do software, porém a solução apresentada não reflete o que se
deseja. Pode acontecer, por exemplo, que o usuário queira que apenas duas casas decimais
sejam mostradas quando houver uma divisão entre valores e que sejam arredondados os
números delas, mas o programa apresenta três ou mais.
• Defeito de documentação: ocorre quando a documentação do software indica
algo que ele não faz ou quando deixa de indicar algo que realmente faz. Durante as
fases de construção do sistema, muitas modificações são realizadas e, algumas vezes,
é possível que os desenvolvedores se esqueçam de fazer as anotações ou anotem,
equivocadamente, uma situação.
• Defeito por sobrecarga ou por stress: ocorre quando o sistema recebe uma quantidade
de dados superior à que foi dimensionada com base nas especificações. O sistema é
projetado para atender a um determinado número limite de usuários e dispositivos. Se
este limite é ultrapassado, este defeito pode aparecer.
• Defeito de desempenho ou throughput: ocorre quando a velocidade com que o
sistema executa suas tarefas é inferior à que foi especificada.
• Defeito de recuperação: ocorre quando o sistema demonstra que não consegue se
recuperar de falhas da maneira como os desenvolvedores gostariam. Por exemplo, se
o programa fechar inesperadamente sem a intervenção do usuário, ele deverá, ao ser
reaberto, garantir que os dados não sejam perdidos e que outros recursos não tenham
sido prejudicados.
Embora nenhum projeto de sistema esteja isento de possuir tais defeitos apresentados, o
autor Ian Sommerville comenta que os testes possuem dois focos, sendo um deles a busca dos
defeitos mencionados.

11
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

Diálogo com o Autor

Sommerville (2007, pp. 355 e 356) aponta que o processo de teste de software tem duas metas distintas:
1) Demonstrar ao desenvolvedor e ao cliente que o software atende aos requisitos;
2) Descobrir falhas ou defeitos no software que apresenta comportamento incorreto, não desejável
ou em não conformidade com sua especificação.

A primeira meta indicada pelo autor é atendida no momento em que os testes ocorrem para
cada requisito especificado na primeira fase do projeto. O software passa por um processo
de execução de todas as suas funcionalidades e, nesse momento, as respostas recebidas são
comparadas com aquilo que foi tratado com o usuário/cliente em relação ao que o sistema
precisa fazer. A equipe de desenvolvimento é que realiza tais testes.
A segunda meta é atendida no momento em que o sistema é submetido a uma situação na
qual não irá, normalmente, funcionar, como, por exemplo, ser submetido a uma quantidade de
dados superior àquela para a qual foi dimensionado.

Teste de Sistemas

Um software, quando é projetado, deve ser utilizado em conjunto com outros softwares,
sistemas ou dispositivos. Por exemplo, se ele for desenvolvido para fazer registros de clientes,
deverá estar integrado a um sistema de gerenciamento de banco de dados de forma a poder
recuperar ou armazenar dados.
Testar sistemas significa que todos os meios envolvidos nas atividades cotidianas do usuário
serão integrados para que o comportamento do software seja analisado.

Teste de Integração
É aplicado no momento em que os componentes de um sistema são combinados, para que
sejam estudadas as causas de eventuais falhas. Nem sempre é uma tarefa simples identificar, em
um sistema integrado, a origem da falha.
Se um sistema for complexo, é aconselhável que o software seja integrado a um ou, no
máximo, dois componentes para serem submetidos a testes. Não havendo falhas, podem-
se acrescentar novos componentes paulatinamente e realizar os testes cada vez que forem
integrados. Esse trabalho poderá ser demorado, porém costuma ser a única maneira de se
encontrar um defeito. Este procedimento recebe o nome de teste de integração incremental,
de acordo com Sommerville (2007, p.358). Abaixo, a figura extraída da referência deste autor:

12
Figura 2: Testes de integração incremental.

Os retângulos nomeados de A, B, C e D são considerados componentes (hardware ou


software) do sistema, que pode ser um sistema gerenciador de banco de dados, o software
desenvolvido, uma impressora e recursos de rede, por exemplo. Os círculos nomeados de T1,
T2, T3, T4 e T5 são considerados testes.
O conjunto de testes T1, T2 e T3 é realizado, em primeiro lugar, quando os componentes A
e B estão integrados. Desse modo, se houver falhas, devem ser corrigidas e, após a correção,
deverão os componentes (A e B integrados) ser submetidos aos mesmos testes. Caso não mais
ocorram falhas, um novo componente (C) é integrado ao grupo, e T1, T2 e T3 devem ser
realizados. Se houver problemas, existe grande possibilidade de ter ocorrido por causa do novo
componente e, assim, o defeito pode ser identificado facilmente. Se não houver falha, T4 deverá
ser realizado. O procedimento continua dessa forma até que todos os componentes estejam
integrados e todos os testes tenham sido feitos.

Teste Funcional
Este tipo de teste acontece para verificar se ele atende aos requisitos estabelecidos na fase
inicial do projeto. Neste caso, o sistema é também utilizado pelo usuário/cliente, que verifica as
funcionalidades apresentadas pelo projeto. Este procedimento, que envolve a participação do
usuário, é definido, geralmente, como teste de aceitação. Espera-se que os clientes explorem o
sistema integrado e, caso as saídas estejam em desacordo com a proposta, este pode ser um
defeito que precisa ser corrigido.

Diálogo com o Autor

PFLEEGER (2004, p. 315) sugere, como exemplo, que o teste funcional de um pacote de controle de
contas bancárias verifique se o pacote pode, corretamente, creditar um depósito, fazer uma retirada,
calcular juros, imprimir o extrato e assim por diante.

13
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

Teste de Desempenho
Durante o desenvolvimento de um software, diversas especificações são elencadas, sendo
uma delas a capacidade máxima de carga que poderá suportar sem que haja a redução do
tempo de resposta. Ou seja, o teste procura saber, ao se fazer a integração com outros sistemas
e dispositivos, qual será seu comportamento diante dos dados de entrada que passará a receber.
Neste cenário, os testes são realizados explorando ao máximo a capacidade ou limites do
sistema, impondo a ele uma determinada carga além daquela pela qual ele foi projetado para
resistir sem apresentar falhas. Isso significa que o sistema receberá uma dose de stress. Por
exemplo, um sistema desenvolvido para realizar 30 cadastros de clientes por segundo, poderá
ser testado em relação ao seu desempenho de maneira a receber mais do que esse limite pré-
definido até que ocorra uma falha.

Manutenção

Mesmo depois que um sistema foi construído, testado e entregue ao cliente, algumas
alterações poderão ou necessitarão ocorrer. Acontece que, no momento em que o sistema está
sendo executado no local onde o cliente idealizou, ao recorrer aos serviços de desenvolvimento
do software, ele é considerado entregue e finalizado. Ajustes poderão ser feitos, porém serão
vistos como um processo de manutenção do sistema.

Diálogo com o Autor

Segundo PFLEEGER (2004, p. 386), a manutenção enfoca, simultaneamente, quatro aspectos


principais da evolução do sistema:
• manter o controle sobre as funções do dia a dia do sistema;
• manter o controle sobre as modificações do sistema;
• aperfeiçoar as funções aceitáveis já existentes;
• tomar medidas preventivas para que o desempenho do sistema não diminua para níveis inaceitáveis

Problemas
Realizar manutenção em um sistema nem sempre é tarefa simples. Pelo contrário, muitas vezes
o trabalho é problemático. Isso porque consideramos, como foi anteriormente comentado, que
o sistema já estará em funcionamento e, sendo assim, torna-se complicado deixá-lo desativado
durante o tempo em que a manutenção precisa acontecer.

14
A manutenção em sistemas é realizada, geralmente, por uma equipe diferente daquela que
desenvolveu o software. Por esse motivo, é importante que a documentação dê condições
suficientes para que essa equipe consiga compreender todas as funcionalidades do sistema.
Esse pessoal deve ter muita habilidade para lidar com os desenvolvedores e também com os
usuários. Além disso, os componentes da equipe de manutenção, muitas vezes, trabalham em
diversos projetos simultaneamente e isso pode fazer com que detalhes se percam entre a análise
de um projeto e outro. É fundamental que possuam concentração para evitar que problemas
assim aconteçam.

Custos
A manutenção de um sistema envolve, evidentemente, custo.

Diálogo com o Autor

Observe atentamente o que comenta PFLEEGER (2004, p. 391) acerca dos custos de software:
Na década de 70, a maior parte do orçamento de um sistema de software era gasta no desenvolvimento.
A proporção entre o valor investido no desenvolvimento e o investido na manutenção foi revertida, nos
anos 80, e várias estimativas supõem que a manutenção representa de 40 a 60 por cento do custo total
do ciclo de vida de um sistema.

A autora continua seus comentários informando que as estimativas no ano 2000 sugerem
que os custos de manutenção aumentaram em até 80% do custo referente ao tempo de vida
de um sistema.

Diálogo com o Autor

Souza et al. (2010 apud Pressman, 2010) indicam que a manutenção de um software pode chegar a até
70 por cento do esforço de uma organização.

Isso tudo quer nos dizer que, se o desenvolvimento de um software custar R$ 300.000,00,
o custo de manutenção poderá chegar a um valor aproximado de R$ 210.000,00. É claro
que existem vários aspectos a serem considerados quanto à manutenção de sistemas, como,
por exemplo:
• Incorporação de novas funcionalidades no software. Além do trabalho de modificação ou
ajuste no sistema, é necessário também que a documentação seja atualizada com base
nas alterações ou complementos realizados;

15
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

• Correção de defeitos por uso indevido do sistema. Ocorre, geralmente, quando, tendo
sido identificada certa quantidade de carga que o sistema pode suportar, os usuários,
inadvertidamente, sobrecarregam o sistema com aplicações ou dispositivos que são
desnecessários;
• Esforço humano: consideram-se os salários e demais benefícios dos envolvidos no
processo de manutenção. A equipe de profissionais, muitas vezes, precisa de bastante
tempo para, a princípio, compreender o sistema. Precisará também de certo tempo para
localizar defeitos e outro tempo para corrigi-los.
• Treinamento da equipe do usuário/cliente: é comum haver a necessidade de gastos com
apostilas, manuais, impressos publicitários;
• Visitas de profissionais capacitados aos clientes; custos com passagens, estadias,
alimentação e outros são considerados aqui;
• Consumo de energia elétrica, telefonemas, despesas com Internet, etc.
• Dentre outros.

Visão Geral do Desenvolvimento da Análise e Projeto de Sistemas

Conforme nosso conhecimento, desenvolver softwares envolve um conjunto de técnicas,


levantamento de requisitos, procedimentos, modelos, estruturas de programação, documentação
apropriada, testes, manutenção, dentre outros. Este trabalho envolve empenho e especial atenção
por parte dos envolvidos, geralmente os usuários/clientes, o analista e a equipe de desenvolvimento.
A tabela 1 apresenta um panorama geral das etapas de desenvolvimento de um projeto
de software:

Requisitos
• Os envolvidos no processo geralmente se dividem em: usuário (aquele que necessita do
projeto de software), o analista (responsável por identificar as necessidades do usuário) e
a equipe de desenvolvimento (os que irão projetar o sistema).
• Técnicas de levantamento de requisitos (questionários, entrevistas, análise etnográfica,
etc.) são utilizadas pelo analista na tentativa de captar todas as funcionalidades que o
usuário deseja que o sistema possua.
• O analista transmite os resultados do levantamento de requisitos para a equipe de
desenvolvimento, que irá analisar as informações apontadas.

16
Projeto

• Modelos de dados são gerados, utilizando-se diagramas, fluxogramas, dicionários de dados, etc.
• O uso de técnicas envolvendo a UML (Linguagem de Modelagem Unificada) é importante nesta
fase, pois estes modelos, orientados a objetos (diagramas de classes, de objetos, de atividades, de
caso de uso, de interação, etc.), descrevem de maneiras diferentes a proposta de desenvolvimento
do projeto. A visualização torna-se simples por parte dos usuários e demais pessoas envolvidas.
• O software é desenvolvido utilizando a linguagem de programação que melhor se enquadrar na
proposta do projeto.

Implementação

• Os desenvolvedores deverão utilizar todos os registros feitos desde a primeira fase (requisitos)
para a elaboração da documentação do software. Esta documentação deverá conter informações
gerais de apoio tanto para usuários como para equipe de desenvolvimento ou de manutenção,
como, por exemplo, os requisitos identificados, os diagramas e dicionários de dados utilizados,
os códigos-fonte (se houver este acordo), etc.
• Os modelos de documentação sugerem a inclusão dos objetivos, da estrutura, das funcionalidades
do software. Além disso, devem constar informações referentes a fabricantes de outros sistemas
agregados, dos modelos utilizados, dos módulos de programação, da estrutura de arquivos, de
referências cruzadas, dentre outros.

Validação

• Também conhecida por fase dos testes, utiliza diversas técnicas que servirão para identificar falhas
no software e/ou no sistema ou, ainda, para comprovar que o sistema funciona adequadamente.
• Os defeitos poderão ocorrer por falhas no algoritmo, na sintaxe, na documentação, por
sobrecarga, por desempenho, dentre outros.
• Os testes são realizados pela equipe de desenvolvimento, porém existe a possibilidade e, às
vezes, necessidade de serem testados também pelos usuários/clientes.

Manutenção

• Após o momento em que o software já foi disponibilizado para integrar-se ao sistema do usuário/
cliente, existe a possibilidades de haver falhas no software ou mesmo no sistema. Quando isso
ocorre, é necessário realizar-se a manutenção.
• Situações problemáticas normalmente estão associadas ao processo de manutenção de um
sistema, como, por exemplo, o elevado custo gerado pelo serviço de manutenção, a falta de
conhecimento sobre o projeto por parte da equipe de manutenção, a indisponibilidade do
sistema ficar inoperante durante a manutenção, etc.

Tabela 1: Visão geral das etapas de desenvolvimento de software.

De qualquer maneira, mesmo sendo uma tarefa complexa projetar um software, os usuários/
clientes normalmente ficam satisfeitos com o produto final, já que, em todas as fases de
desenvolvimento, existe a real preocupação dos envolvidos em cumprir rigorosamente todos os
requisitos especificados.
17
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

Material Complementar

Web:
http://computerworld.uol.com.br, portal de tecnologia do site UOL.
http://www.portalarquiteto.com.br, portal da Internet com notícias e artigos sobre o assunto
Arquitetura de Software.
http://www.omg.org, site da organização Object Management Group, que analisa e define
padrões de desenvolvimento de projetos orientados a objetos.

Livros:
PAULA FILHO, W. P. Engenharia de Software: fundamentos, métodos e padrões. Rio de
Janeiro. LTC, 2009. Disponível na biblioteca virtual da Unicsul.
PRESSMAN, R. S. Engenharia de Software. São Paulo. Pearson, 2011. Disponível na
biblioteca virtual da Unicsul.

18
Referências

PAULA FILHO, W. de P. Engenharia de software: fundamentos, métodos e padrões. Rio de


Janeiro. LTC, 2009.

PFLEEGER, S. L. Engenharia de Software: teoria e prática. 2ª ed. São Paulo: Prentice Hall,
2004.

PRESSMAN, R. S. Engenharia de Software. São Paulo: Pearson Makron Books, 1995.

SOMMERVILLE, Ian. Engenharia de Software. São Paulo. Pearson Addilson-Wesley, 2007.

SOUZA, Vinicius Rodriguez de; VALE, Ricardo Cunha; ARAÚJO, Marco Antônio Pereira. O
Papel Evolutivo do Software. Engenharia de Software Magazine. Edição 28, Devmedia,
p. 19-25, 2010.

19
Unidade: Desenvolvimento da Análise e Projeto de Sistemas

Anotações

20
www.cruzeirodosulvirtual.com.br
Campus Liberdade
Rua Galvão Bueno, 868
CEP 01506-000
São Paulo SP Brasil
Tel: (55 11) 3385-3000

Você também pode gostar