Você está na página 1de 77

5082-Introdução aos sistemas

de informação

Técnico/a Especialista em Aplicações


Informáticas de Gestão
Gonçalo Feiteira 9/21/2020

Desenvolvimento de Software
• Opções para desenvolvimento de software:
• - software adquirido
▫ instalado
▫ alterado e instalado

• - software desenvolvido
▫ de raiz, desenvolvido à medida
▫ adaptado com base em anterior desenvolvimento
▫ adaptado, com base em software parametrizado
Gonçalo Feiteira 9/21/2020

Como decidir?
• Em função de variáveis como:
▫ - custo
▫ - prazos
▫ - recursos humanos
▫ - subcontratação
▫ - oferta do mercado em soluções e preços
Software
• Uma característica de sistemas de informação é a
complexidade de seu desenvolvimento, que aumenta à
medida que cresce o tamanho do sistema.

• ◦Comparação: Construir uma casa para o cão, uma casa para


família e um edifício.

• Assim como na construção civil, existe uma escala de


complexidade na construção de software.

• Quanto mais complexo um sistema de software, mais deverá


ser planeado.

• ◦Comparação: Sistema de stocks, sistema de controle de tráfego


aéreo.
Desenvolvimento de Software
• A necessidade de planeamento no
desenvolvimento de sistemas de informação
leva ao conceito de modelação de software, ou
seja, antes do software ser concebido deve-se
criar um modelo para o mesmo

• Um modelo pode ser visto como uma


representação idealizada de um sistema a ser
construído
Modelação de Software
• A modelação de sistemas de software consiste
na utilização de ferramentas gráficas e textuais
com o objetivo de construir modelos que
representam as partes essenciais de um sistema

• São várias as razões para se utilizar modelos na


construção de sistemas.
Modelação de Software
• Razões para se utilizar modelos:
▫ Gestão de complexidade
▫ Comunicação entre as pessoas envolvidas
▫ Redução dos custos no desenvolvimento
▫ Previsão do comportamento futuro de sistema
Modelação de Software
• Apesar de um diagrama conseguir expressar
diversas informações de forma gráfica, em
diversos momentos há a necessidade de
adicionar informações na forma de texto, com o
objetivo de explicar ou definir certas partes
desse diagrama.
• A modelação de um sistemas em forma de
diagrama, juntamente com a informação textual
associada, formam a documentação de um
sistema de software.
Evolução da modelação de
Sistemas
• Década de 1950/60: os sistemas de software
eram bastante simples e dessa forma as técnicas
de modelação também.
▫ Era a época dos fluxogramas e diagramas de
módulos
• Década de 1970: época de grande expansão do
mercado computacional.
• Sistemas complexos começavam a surgir e por
consequência, modelos mais robustos foram
propostos.
Evolução da modelação de
Sistemas
• Década de 1980: surge a necessidade de
interfaces homem-máquina mais sofisticados, o
que deu origem a produção de sistemas de
software mais complexos

• A análise estruturada consolidou-se na primeira


metade dessa década e em 1989 Edward
Yourdon lança o livro Análise Estruturada
Moderna, tornando-o uma referência no
assunto
Evolução da modelação de
Sistemas
• Década de 1990: período onde surge um novo
paradigma de modelação, a Análise Orientada a
Objetos, como resposta a dificuldades
encontradas na aplicação da Análise
Estruturada a certos domínios de aplicação.
Evolução da modelação de
Sistemas
• Finais da década de 90 até aos nossos dias: o
paradigma da orientação a objetos atinge a sua
maturidade.
• Os conceitos de padrões de projetos (design
patterns), frameworks de desenvolvimento,
componentes e padrões de qualidade começam
a ganhar espaço.
• Nesse período surge a Linguagem de modelação
Unificada (UML), que é ainda a ferramenta de
modelação mais utilizada no desenvolvimento
atual de sistemas.
O Processo do Desenvolvimento de
Software
 O processo de desenvolvimento de software é
uma atividade bastante complexa. Isso se
reflete no alto número de projetos de software
que não chegam ao fim, ou que extrapolam
recursos de tempo e de dinheiro alocados.
 Em um estudo clássico sobre projetos de
desenvolvimento de software realizado em 1994
foi constatado que:
O Processo do Desenvolvimento de
Software
• Quando falamos de grandes projetos:
▫ Percentagem de projetos que terminam dentro do
prazo estimado: 10%
▫ Percentagem de projetos que são descontinuados
antes de chegarem ao fim: 25%
▫ Percentagem de projetos acima do custo
esperado: 60%
▫ Atraso médio nos projetos: um ano
O Processo do Desenvolvimento de
Software
• Para lidar com essa complexidade e minimizar
os problemas envolvidos no desenvolvimento
de software, temos a definição de processos de
desenvolvimento de software.

• Um processo de desenvolvimento de software


compreende todas as atividades necessárias
para definir, desenvolver, testar e manter um
produto de software.
O Processo do Desenvolvimento de
Software
• Entre os objetivos de um processo de
desenvolvimento de software, temos:

◦Definir quais as atividades a serem executadas ao


longo do projeto

◦Quando, como e por quem tais atividades serão


executadas

◦Prover pontos de controlo para verificar o andamento


do desenvolvimento

◦Padronizar a forma de desenvolver software numa


organização
Atividades Típicas de um Processo
de Desenvolvimento
• Cada processo tem as suas particularidades em
relação as atividades de desenvolvimento, no
entanto algumas atividades são comuns à
maioria dos processos existentes.

• A saber:
◦Levantamento de requisitos
◦ Análise
◦ Projeto
◦ Implementação
◦ Testes
◦ Implantação
◦ Manutenção
Levantamento de Requisitos
• A atividade de levantamento de requisitos
corresponde à etapa de compreensão do problema
aplicada ao desenvolvimento do software

• O principal objetivo é que os utilizadores e


“desenvolvedores” tenham a mesma visão do
problema a ser resolvido

• Nesta etapa, os “desenvolvedores” juntamente com


os clientes, tentam levantar e definir as
necessidades dos futuros utilizadores do sistema a
ser desenvolvido

• Essas necessidades são denominadas requisitos.


Levantamento de Requisitos
• Durante o levantamento de requisitos, a equipa de
desenvolvimento tentar entender o domínio que deve ser
automatizado pelo sistema de software.

• Essa etapa compreende também um estudo exploratório das


necessidades dos utilizadores e da situação do sistema atual
(caso exista).

• Existem várias técnicas utilizadas para isso, como, exemplo:


▫ leitura de obras de referência
▫ observação do ambiente do utilizador
▫ realização de entrevistas com os utilizadores e especialista do
domínio
▫ reutilização de análises anteriores
▫ comparação com sistemas preexistentes.
Levantamento de Requisitos
• O produto desse levantamento de requisitos é um documento
de requisitos, que declara os diversos tipos de requisitos do
sistema.
• Os tipos de requisitos encontrados num documento de
requisitos são:

▫ Requisitos funcionais: definem as funcionalidades do


sistema.

exemplos:
O sistema deve permitir que cada professor realize o lançamento de notas
das turmas nas quais lecionou

O sistema deve permitir que um aluno realize a sua matricula nas


disciplinas que chumbou e em disciplinas em disciplinas que não
tenha precendência até um determinado numero por semestre .
Levantamento de Requisitos
• Requisitos não-funcionais: relacionados com
as características de qualidade que o sistema deve
possuir , como sendo as suas funcionalidades.

Alguns tipos de requisitos não funcionais são:


▫ Desempenho: requisitos que definem tempos de
resposta esperados para as funcionalidades do
sistema
▫ Segurança: limitações sobre a segurança do sistema
em relação a acessos não autorizados
▫ Portabilidade: restrições sobre a plataforma de
hardware e software nas quais o sistema será
implantado
Levantamento de Requisitos
• Restrições normativas: declaração de restrições
impostas sobre o desenvolvimento do sistema

• Relacionadas, por exemplo, com:


▫ adequação a custos e prazos
▫ plataforma tecnológica
▫ aspectos legais
▫ limitações sobre as interfaces com os utilizadores
▫ eventuais necessidades de comunicação do novo sistema
com sistemas dependentes
▫ componentes de hardware e software a serem adquiridos,
etc.
Levantamento de Requisitos
• Os requisitos devem ser descritos de forma a que
possam ser verificados e comunicados a
intervenientes técnicos e não-técnicos

• Um ponto importante sobre o documento de


requisitos é que ele não deve conter informações
sobre as soluções técnicas que serão adotadas para
desenvolver o sistema

• O foco prioritário do levantamento de requisitos é:


“o que o utilizador necessita do novo sistema?”.
Levantamento de Requisitos
• O documento de requisitos serve como um termo de
consenso entre a equipa técnica (desenvolvedores) e o
cliente.

• Esse documento constitui a base para as atividades


subsequentes do desenvolvimento do sistema e fornece um
ponto de referência para qualquer validação futura do
software construído.

• Além disso, o documento de requisitos estabelece o alcance


do sistema (isto é, o que faz parte e o que não faz parte do
sistema).

• O alcance de um sistema muda muitas vezes durante o


desenvolvimento, contudo o planeamento inicial do projeto
deve basear-se nesse alcance inicial
Análise
• Nesta etapa os analistas realizam um estudo detalhado
dos requisitos levantados na atividade anterior

• A partir desse estudo, são construídos modelos para


representar o sistema a ser construído

• Assim como na etapa anterior (levantamento de


requisitos, a etapa de análise não leva em conta a
tecnologia a ser utilizada

• Nesta atividade o objetivo é obter a melhor solução para


o problema sem haver ainda a preocupação com os
detalhes da tecnologia a ser usada.
Análise
• Os modelos construídos na fase de análise
devem ser cuidadosamente validados e
verificados.

• O objetivo da validação é assegurar que as


necessidades do cliente estão a ser atendidas

• Nesta atividade, os analistas apresentam os


modelos criados para representar o sistema aos
futuros utilizadores para que esses modelos
sejam validados
Projeto
• O foco principal da análise são os aspectos lógicos e
independentes de implementação de um sistema

• Na fase de projeto, determina-se “como” o sistema


irá funcionará para atender aos requisitos, de
acordo com os recursos tecnológicos existentes

• Aos modelos construídos na fase de análise são


agora adicionados alguns aspectos como:
arquitetura do sistema, padrão de interface gráfica,
a linguagem de programação, o tipo de SGBD (base
de dados), etc.
Implementação
• Na fase de implementação, o sistema programado, ou seja,
ocorre a tradução da descrição computacional obtida na fase
de projeto em código executável mediante o uso de uma ou
mais linguagens de programação

• A implementação envolve a criação do código fonte


correspondente às classes de objetos do sistema utilizando
linguagens de programação como C#, C++, Java, etc.

• Além da codificação desde o início, a implementação pode


também reutilizar componentes de software, bibliotecas de
classes e frameworks já existentes para agilizar a atividade.
Testes
• Diversas atividades de teste são realizadas para
verificação do sistema construído, levando-se em
conta a especificação feita na fase de projeto

• O principal produto desta fase é o relatório de


testes, com informações sobre erros detectados no
software

• Após a atividade de testes, os diversos módulos do


sistema são integrados, resultando finalmente no
produto de software
Implantação
• O sistema é neste fase distribuído e instalado no
ambiente do utilizador

• Os manuais do sistema são escritos, os arquivos


são carregados, os dados são incorporados para
o sistema e os utilizadores treinados para
utilizar o sistema corretamente

• Em alguns casos, ocorre a migração de sistemas


de software e de dados preexistentes.
Participantes do processo
• Uma equipa de desenvolvimento de sistemas de
software pode envolver vários especialistas tais como,
profissionais de informática para fornecer o
conhecimento técnico necessário ao desenvolvimento
do sistema e especialistas do domínio para o qual o
sistema de software será desenvolvido

• Uma equipa típica consiste de: gestores de projetos,


analistas, projetistas, programadores, clientes,
especialistas na área e grupos de avaliação de qualidade

• Esta divisão tem mais um fim didático, na prática, a


mesma pessoa desempenha muitas vezes diferentes
funções.
Gestor de Projeto
• É o profissional responsável pela gestão ou
coordenação das atividades necessárias à
construção do sistema

• Tem a responsabilidade tais como:


▫ Fazer o orçamento do projeto
▫ Estimar o tempo necessário de desenvolvimento
▫ Definir qual o processo de desenvolvimento
▫ Elaborar o cronograma de execução das atividades
▫ Escolher/Prever mão-de-obra especializada
necessária
▫ Defenir os recursos de hardware e software, etc.
Analistas
• O analista de sistemas deve entender os problemas do
domínio do negócio para que possa definir os requisitos
do sistema a ser desenvolvido

• Uma característica do analista é ser o profissional


responsável por entender as necessidades dos
clientes/utilizadores em relação ao sistema a ser
desenvolvido e passar esse conhecimento aos demais
envolvidos na criação do sistema

• O analista representa uma ponte de comunicação entre


duas “facções”: a dos programadores e a dos
profissionais de negócio.
Analistas
• Em alguns casos há profissionais nas equipas de
desenvolvimento para desempenhar dois papéis:
analista de negócios e o analista de sistema

• O analista de negócios é responsável por entender o


que o cliente faz, por que é que ele o faz e
determinar se as práticas atuais da organização
realmente fazem sentido

• O analista de sistemas é especializado em traduzir


as necessidades do utilizador em características de
um produto de software
Analistas
• Uma característica importante que um analista
deve ter é a capacidade de comunicação tanto
escrita quanto falada, pois ele é um agente
facilitador entre o cliente e a equipa técnica.

• Outra característica é a ética profissional pois


muitas vezes este profissional está em contato
com informações sigilosas e estratégicas dentro
da organização na qual está a trabalhar.
Arquiteto de software
• Profissional encontrado principalmente em
grandes equipas criadas para desenvolver sistemas
complexos

• O objetivo desse profissional é elaborar a


arquitetura do sistema como um todo.

• É ele quem toma decisões sobre quais são os


subsistemas que compõem o sistema como um todo
e quais são as interfaces entre esses subsistemas.
Programadores
• Responsáveis pela implementação do sistema

• No entanto na maioria das equipas de


desenvolvimento encontramos analistas que
realizam alguma programação e programadores
que realizam alguma análise
Especialista de domínio
 Também conhecido como especialista do
negócio. Possui conhecimento acerca da área ou
do negócio em que o sistema em
desenvolvimento estará inserido.

 Normalmente o especialista de domínio é o


próprio cliente. Podem-se distinguir dois tipos
de clientes: o cliente utilizador e o cliente
contratante.
Avaliadores de qualidade
• São responsáveis por assegurar a adequação do
processo de desenvolvimento e do produto de
software para que seja desenvolvido segundo os
padrões de qualidade estabelecidos pela
organização.

• O desempenho e a confiabilidade são exemplos


de características que devem ser encontradas
num sistema de software de boa qualidade
Classificação dos sistemas
• Os Sistemas de informação podem ser classificados de
acordo com o nível organizacional atendido, ou seja, o
tipo de informação gerado pelo sistema e o perfil do
utilizador que utiliza ou necessita daquelas informações

• Quanto mais alto o nível do utilizador, mais


consolidadas devem ser as informações

• Quanto mais baixo ele se encontrar na pirâmide


organizacional, mais detalhada deve ser a informação

• Dessa forma podemos classificar os sistemas em 3


categorias(Operacional,Tático,Estratégico)
SISTEMAS DE INFORMAÇÕES
• Sistemas de informação Operacionais (SIO)
▫ tratam das transações do dia a dia da organização

• Sistemas de Informação Gestão(SIG)


▫ agrupam e sintetizam os dados das operações da
organização para facilitar a tomada de decisão pelos
gestores da organização

• Sistemas de Informação Estratégico (SIE)


▫ integram e sintetizam dados de fontes internas e
externas à organização, para a tomada de decisão da
cúpula estratégica da organização.
• Executive Information Systems - EIS:
Ferramenta de consulta a bases de dados (funções empresariais) para
apresentação de informações de forma simples e amigável
Atende a necessidade de todos os níveis empresariais, principalmente a
alta administração
• Sistema de Apoio a Decisões - SAD:
Une conceitos de administração de empresas e de informática;
Utiliza a regra “e se” para geração de dados e informações de simulações,
cenários, etc,

exemplo: e se eu aumentar o salário em 20 % qual o impacto


sobre os custos de produção.
• Enterprise Resource Planning - ERP:
São pacotes de software de gestão ou sistemas integrados, com recursos
de automação e informatização com objetivo de contribuir para a gestão
dos negócios empresariais
Utiliza a tecnologia de informática que está ligada á adaptabilidade,
facilidade de uso, técnicas de acesso, segurança e performace
• Data Warehouse - DW:
Grandes bases de dados que armazenam infomações integradas a partir
de bases de dados operacionais de uma organização
As informações analíticas e intregadas, em vez dos dados crus, permitem
que uma empresa tome descisões sobre missões importantes e negócios
estratégicos;
• Inteligência Artificial - IA :
O termo Inteligência Artificial pode ser generalizado como a simulação
da “inteligência” humana, na realização de atividades elaboradas por
pessoas
A IA facilita o diálogo do sistema entre os utilizadores e os recursos
computacionais e pode ser empregue em todos os tipos de sistema de
informações
• Sistemas Especialistas - SE:
É um agrupamento organizado de pessoas, procedimentos, bases de
dados e dispositivos usados para gerar um parecer especializado ou
sugerir uma decisão numa determinada área
Contém uma base de conhecimentos, uma base de regras e um motor de
inferência

Mercado bolsista
• Data Mining - DM:
Composto de recursos avançados como os de IA e redes neuronais, sendo
capazes de extrair deduções, levantar hipóteses que as pessoas jamais
poderiam imaginar
As ferramentas de Data Mining tem a capacidade de correlacionar coisas
aparentemente desvinculadas

(exemplo clássico: a cerveja e as fraldas descartaveis)


• Sistemas de Telecomunicações - ST :
É um conjunto organizado de pessoas, procedimentos e dispositivos
usados para partilhar e transmitir informações
Sistema de telefone/telemóveis, Fax, Teleconferência, VideoConferência,
Redes (Internet) que permitem às pessoas partilharem dados, mensagens
e informações
• Business Inteligence - BI :
Uma solução de BI tem o objetivo de melhorar a qualidade da informação
disponível seja ela oriunda do ERP ou de outros sistemas empresariais
Fornece relatórios, análises, pesquisas e visualizações extraindo
informação dos vários sistemas de informação
• Planeamento estratégico :
Análises SWOT (Strengths, Weaknesses, Opportunities and Treats ou em
português : Forças, Fraquezas, Oportunidades e Ameaças).
Pontos Fortes (Forças) = Oportunidades
Pontos Fracos (Fraquezas) = Ameaças.
Gonçalo Feiteira 9/21/2020
• Planeamento estratégico :
Listar os pontos Fortes : (capital para investir, tecnologia, conhecimento,
mercado, marcas, etc...).
Com base nos pontos fortes levanta-se quais as oportunidades devem ser
exploradas.
• Planeamento estratégico :
Listar os pontos fracos : (falta de capital para investir, tecnologia
obsoleta, alta rotatividade da mão de obra, perda de mercado, marca
fraca, etc...).
Com base nos pontos fracos levanta-se e analisam-se quais as ameaças
que pairam sobre a empresa.
• Planeamento estratégico - Comportamento:
Todas as empresas interagem com o ambiente que a envolve através de
dois tipos de comportamento, que embora distintos, se complementam e
que toda a organização deve ter :
•comportamento operacional
•comportamento estratégico.
• Planeamento estratégico - Comportamento:
Comportamento Operacional, é o meio através do qual a empresa
procura lucrar realizando as operações de compra de matérias-primas e
venda de seus produtos, aumentando a eficiência dos processos de
produção e conquistando mais e mais mercados
• Planeamento Estratégico - Comportamento:
Comportamento Estratégico, como a empresa procura melhorar ou
substituir os produtos ou serviços produzidos atualmente por outros que
lhe dêem maior participação de mercado.
Isso significa procurar resolver todos os problemas que possam afetar o
futuro da empresa por meio de ações cuidadosamente estudadas e
criadas com muita antecedência.
Gonçalo Feiteira 9/21/2020

Processos de desenvolvimento
• Existem diversos métodos de desenvolvimento
de software, cada um com as suas
particularidades e cada um mais ou menos
adequado a cada situação
Gonçalo Feiteira 9/21/2020

• O resultado de um esforço de desenvolvimento


deve resultar normalmente num produto

• O processo de desenvolvimento corresponde ao


conjunto de atividades e um ordenamento destas
de modo a que o produto desejado seja obtido
Gonçalo Feiteira 9/21/2020

• Um modelo de desenvolvimento corresponde a


uma representação abstrata do processo de
desenvolvimento

• No geral, vai definir como as etapas relativas ao


desenvolvimento do software serão conduzidas e
interrelacionadas para atingir o objetivo do
desenvolvimento

• A obtenção de um produto de software de alta


qualidade a um custo relativamente baixo
61

Gonçalo Feiteira 9/21/2020

Modelos
• Modelo Queda d'Água
62

Gonçalo Feiteira 9/21/2020

• Prototipação
▫ O objetivo da Prototipação é ser um modelo de
processo de desenvolvimento que procura
contornar algumas das limitações existentes no
modelo Queda d'Água

▫ É construído um protótipo, que vai sendo


evoluído ao longo do processo, mas permite ter
uma ideia no inicio do que se pretende atingir no
final
63

Gonçalo Feiteira 9/21/2020

• Desenvolvimento Iterativo
▫ Este modelo também foi concebido com base numa das
limitações do modelo Queda d'Água, e pretende combinar as
vantagens desse modelo com as do modelo Prototipação

▫ A ideia principal deste modelo, é a de que um sistema deve ser


desenvolvido de forma incremental, sendo que cada incremento
vai adicionando ao sistema novas capacidades funcionais, até a
obtenção do sistema final, sendo que, a cada passo realizado,
podem ser introduzidas modificações

▫ Uma vantagem desta abordagem é a facilidade em testar o


sistema, uma vez que a realização de testes é em cada nível de
desenvolvimento, sendo mais fácil do que testar o sistema final.
64

Gonçalo Feiteira 9/21/2020

• Modelo Espiral
Gonçalo Feiteira 9/21/2020

Problemática do desenvolvimento
de software
• Segundo o Standish Group:
▫ Percentagem de projetos que terminam dentro do
prazo estimado: 32%;
▫ Percentagem de projetos que são descontinuados
antes de chegarem ao fim ou entregues e nunca
usados: 24%;
▫ Percentagem de projetos acima do custo ou que
não atendem a todas as funções exigidas: 44%.
Gonçalo Feiteira 9/21/2020

VISÃO GERAL DA ENGENHARIA DE


SOFTWARE
• Analisando os modelos, é possível observar que,
apesar de apresentarem denominações diferentes e
de estarem associadas de modo relativamente
distinto, as etapas apresentadas são caracterizadas
por atividades similares

• De um modo geral, podemos organizar o processo


de desenvolvimento de um software a partir de três
grandes fases: a fase de definição, a fase de
desenvolvimento e a fase de manutenção
Gonçalo Feiteira 9/21/2020

Fase de Definição
• A fase de definição está associada à determinação do
que vai ser feito

• O profissional encarregue do desenvolvimento do


software deve identificar as informações que deverão ser
manipuladas, as funções a serem processadas, qual o
nível de desempenho desejado, que interfaces devem ser
oferecidas, as restrições do projeto e os critérios de
validação

• Isto terá de ser feito independentemente do modelo de


desenvolvimento adotado para o software e
independentemente da técnica utilizada para fazê-lo
Gonçalo Feiteira 9/21/2020

• Esta fase é caracterizada pela realização de três etapas específicas:

• Análise (ou Definição) do Sistema, a qual vai permitir


determinar o papel de cada elemento (hardware, software,
equipamentos, pessoas) no sistema, cujo objetivo é determinar,
como resultado principal, as funções atribuídas ao software

• Planeamento do Projeto de Software, no qual, a partir da


definição do alcance do software, será feita uma análise de riscos e a
definição dos recursos, custos e a programação do processo de
desenvolvimento

• Análise de Requisitos, que vai permitir determinar o conjunto


das funções a serem realizadas assim como a principais estruturas
de informação a serem processadas
Gonçalo Feiteira 9/21/2020

Fase de Desenvolvimento
• Nesta fase, será determinado como realizar as
funções do software.

• Aspetos como a arquitetura do software, as


estruturas de dados, os procedimentos a serem
implementados, a forma como o projeto será
transformado em linguagem de programação, a
criação do código e os procedimentos de teste
devem ser estabelecidos nesta fase
Gonçalo Feiteira 9/21/2020

• Normalmente, esta fase é também organizada em


três principais etapas:

• o Projeto de Software, o qual traduz, num


conjunto de representações gráficas, tabelas ou
textuais, os requisitos do software definidos na fase
anterior; estas representações (diversas técnicas de
representação podem ser adotadas num mesmo
projeto) permitirão definir, com um alto grau de
abstração aspetos do software como a arquitetura,
os dados, lógicas de comportamento (algoritmos) e
características do interface
Gonçalo Feiteira 9/21/2020

• Codificação, onde as representações realizadas


na etapa de projeto serão mapeadas numa ou em
várias linguagens de programação, a qual será
caracterizada por um conjunto de instruções
executáveis no computador; nesta etapa,
considera-se também a geração de código de
implementação, aquele obtido a partir do uso de
ferramentas (compiladores) e que será
executado pelo hardware do sistema;
Gonçalo Feiteira 9/21/2020

• Testes de Software, onde o programa obtido


será submetido a uma bateria de testes para
verificar (e corrigir) defeitos relativos às funções,
lógica de execução, interfaces, etc...
Gonçalo Feiteira 9/21/2020

Fase de Manutenção
• A fase de manutenção, que se inicia a partir da
entrega do software, é caracterizada pela
realização de alterações de naturezas as mais
diversas, seja para corrigir erros residuais da
fase anterior, para incluir novas funções exigidas
pelo cliente, ou para adaptar o software a novas
configurações de hardware
Gonçalo Feiteira 9/21/2020

• Sendo assim, pode-se caracterizar esta fase pelas seguintes


atividades:

• Correção ou Manutenção Corretiva, a qual consiste da


atividade de correção de erros observados durante a operação do
sistema

• Adaptação ou Manutenção Adaptativa, a qual realiza


alterações no software para que ele possa ser executado sobre um
novo ambiente (CPU, arquitetura, novos dispositivos de hardware,
novo sistema operativo, etc...)

• Melhoramento Funcional ou Manutenção de


Aperfeiçoamento, onde são realizadas alterações para melhorar
alguns aspetos do software, como por exemplo, o seu desempenho, a
sua interface, a introdução de novas funções, etc...
Gonçalo Feiteira 9/21/2020

• A manutenção do software envolve, normalmente,


etapas de análise do sistema existente (entendimento do
código e dos documentos associados), teste das
mudanças, teste das partes já existentes, o que a torna
uma etapa complexa e de alto custo

• Além disso, considerando a atual situação industrial, foi


criado, mais recentemente, o conceito de Engenharia
Reversa, onde, através do uso das técnicas e
ferramentas da Engenharia de Software, o software
existente sofre uma "reforma geral", cujo objetivo é
aumentar a sua qualidade e atualizá-lo no que diz
respeito às novas tecnologias de interface e de hardware
Gonçalo Feiteira 9/21/2020

• Os softwares atuais, por muitas vezes, são mal


definidos e projetados

• Necessidade de atualização constante no conteúdo


(informações)

• Elevado grau de complexidade

• Rápida evolução tecnológica

• Falta de métricas para estimativas


Gonçalo Feiteira 9/21/2020

• Planeamento errado e impossibilidade de cumprir


prazos e custos

• Equipas mal organizadas e sem competência


adequada

• Falta de documentação e dificuldades de


implementação e manutenção

• Falta de modelos no processo de desenvolvimento.

Você também pode gostar