Você está na página 1de 45

Engenharia de Software I

Software é: instruções (programas de computador )


que quando executadas, produzem a função e o
desempenho desejados; estrutura de dados que
possibilitam que os programas manipulem
adequadamente a informação; documentos que
descrevem o operação e o uso dos programas.
Engenharia de Software I

Características
• Software é desenvolvido ou projetado por engenharia,
não manufaturado no sentido clássico.
• Software não se desgasta.
• A maioria dos softwares são feitos sob medida em vez
de ser montada a partir de componentes existentes.
Engenharia de Software I

Componentes
A reusabilidade é uma característica importante de um
componente de software de alta qualidade.
Os componentes são construídos usando uma linguagem de
programação que tem um vocabulário limitado, uma gramática
explicitamente definida e regras de sintaxe e semântica bem
formadas.
Engenharia de Software I

Esses atributos são essenciais para a tradução por


máquina. As formas de linguagem em uso são
linguagens de máquina, linguagens de alto nível e
linguagens não-procedimentais.
Engenharia de Software I

Aplicações
Software básico
Software de tempo real
Software Comercial
Software Científico e de engenharia
Software embutido
Software de computador pessoal
Software de inteligência artificial
Engenharia de Software I

Alguns problemas
As estimativas de prazo e de custo frequentemente são
imprecisas; produtividade das pessoas da área de
software não tem acompanhado a demanda por seus
serviços.
Engenharia de Software I

Estes problemas é a manifestação mais visível de outras


dificuldades do software:
• Não dedicamos tempo para coletar dados sobre o processo de
desenvolvimento do software;
• A insatisfação do cliente com o sistema concluído ocorre
muito freqüentemente;
• A qualidade do software é suspeita.
Engenharia de Software I

Alguns mitos que devem ser quebrados


Manuais (helps) não solucionam todos os problemas;
detalhamento das rotinas nunca são completos durante a
analise; os impactos causados pelas mudanças varia de
acordo com o tempo em que ela é introduzida; o trabalho
após a instalação nem sempre acaba; os programas podem
ser testados antes de serem instalados.
Engenharia de Software I

O software tornou-se o elemento-chave da evolução dos


sistemas e produtos baseados em computador. No decorrer
das ultimas quatro décadas, o software evoluiu de uma
ferramenta de analise de informações e de resolução de
problemas especializada para uma indústria em si mesma.
Mas logo a cultura e a historia da programação criaram um
conjunto de problemas que persistem ate hoje.
Engenharia de Software I

O software tornou-se um fator limitante na evolução


dos sistemas baseados em computador. 
A engenharia de software é uma disciplina que integra
métodos, ferramentas e procedimentos para o
desenvolvimento de software de computadores.
Engenharia de Software I

Gerência de projetos: métrica de software


• O processo de gerência de projetos

A gerência de projetos é a 1ª camada (pois abrange


todo o projeto) do processo de engenharia de software.
Engenharia de Software I

a) Iniciando um projeto de software


Antes que um projeto possa ser planejado, os objetivos
e o escopo devem ser estabelecidos, soluções
alternativas devem ser consideradas e as restrições
administrativas e técnicas, identificadas.
Engenharia de Software I

O desenvolvedor do software e o cliente devem se


reunir para definir os objetivos do escopo do projeto.

Soluções alternativas devem ser consideradas.


Engenharia de Software I

b) Medidas e métricas

O processo é medido para que possa ser melhorado ou


aumentar sua qualidade.

Quais são as métricas apropriadas para o processo e para o


produto? Como os dados que devem ser compilados devem
ser usados? É justo usar medições para se comparar
pessoas, processos e produtos?
Engenharia de Software I

c) Estimativa

Quando o projeto de software é planejado, estimativas


de esforço humano exigido (pessoas-mês), duração,
cronológica de projeto e custo devem ser observados.
Engenharia de Software I

d) Análise de risco

Sempre que um programa for construído haverá áreas


de incerteza. (Máquinas para desenvolvimento,
surgimento de problemas técnicos difíceis fora da visão
dos projetistas, mudanças durante a construção do
projeto).
Engenharia de Software I

e) Determinação de prazos

Um conjunto de tarefas pode ser identificado, podendo


gerar uma rede de tarefas onde podemos prever o
início e o fim.
Engenharia de Software I

f) Monitoração e controle

Assim que começar o desenvolvimento do software,


iniciam-se a atividade de monitoração e controle.
Engenharia de Software I

• Métricas de produtividade e qualidade de software


Referem-se a uma ampla variedade de medidas de
software, preocupando-se primeiramente com a
produtividade e qualidade, verificando informações
passadas no desenvolvimento de outros projetos.
Engenharia de Software I

• Medidas do software

a) Métricas orientadas ao tamanho são medidas do


software e do processo por meio do qual ele é
desenvolvido. (Ex.: dez mil linhas de código foram
desenvolvidas por 6 pessoas-mês de esforço, num custo
de R$ 4.500,00)
Engenharia de Software I

b) Métricas orientadas à função são medidas indiretas


do software e do processo por meio do qual ele é
desenvolvido(verificação da funcionalidade ou utilidade
do programa, medição da produtividade).
Engenharia de Software I

• Métricas de qualidade do software

Pode ser medida ao longo do processo de engenharia


de software e depois que o mesmo for entregue ao
cliente e aos usuários.
Engenharia de Software I

• Fatores que afetam a qualidade

Operação do produto (usando-o);


Revisão do produto (alterações);

Transição do produto (migração).


Engenharia de Software I

• Medida de qualidade

O programa opera corretamente;


Facilidade de correção de erros dentro do programa;

Integridade do programa, dados e documentos;


Usabilidade, pois quanto mais se usa, haverá um
aumento na produtividade, habilidade no uso, etc.
Engenharia de Software I

Coleta, computação e avaliação das métricas


Processo de coleta de métricas de software.
Engenharia de Software I

Administração de projetos: Estimativas


 
O processo de administração de projetos de software
inicia-se com um conjunto de atividades denominado
planejamento de projetos. A primeira destas atividades
é a realização de estimativas. Quando queremos que
estimativas sejas feitas, olhamos para o futuro e
aceitamos certo grau de incerteza como coisa
esperada.
Engenharia de Software I

Observações sobre a realização de estimativas:


A estimativa dos recursos, custos e programação de
atividades para um esforço de desenvolvimento de
software exige experiência, acesso a boas informações
históricas e a coragem para se comprometer com
medidas quantitativas quando dados qualitativos forem
tudo o que existir.
Engenharia de Software I

Objetivos do planejamento de projetos


O objetivo do planejamento de projetos de software é
fornecer uma estrutura que possibilite ao gerente fazer
estimativas razoáveis de recursos, custos e prazos.
Essas estimativas são realizadas dentro de um plano de
tempo limitado no início de um projeto de software e
devem ser regularmente atualizadas à medida que o
projeto progride.
Engenharia de Software I

Escopo do software
O escopo do software descreve a função (são avaliadas
e refinadas para oferecer mais detalhes antes do início
da estimativa), o desempenho (abrange os requisitos
de processamento e de tempo de resposta), as
restrições (indicam os limites impostos ao software
pelo hardware externo, memória disponível ou outros
sistemas existentes), as interfaces e a confiabilidade.
Engenharia de Software I
Recursos
• Recursos humanos
• Recursos de hardware (hardware de desenvolvimento,
de produção e outros elementos de hardware do novo
sistema)
• Recursos de software:
o Ferramentas de:
 Planejamento de sistemas de informações
(origem dos dados, para onde vão as
informações, como elas são usadas)
Engenharia de Software I
 Gerência de projetos (estimativas de esforço,
custo e duração)
 Apoio (produção de documentos, sistemas de
rede, banco de dados, correio eletrônico,...)
 Análise de projeto (criar modelo do sistema a
ser construído)
 Programação (editores, compiladores,...)
 Integração e testes
 Construção de protótipos e simulação
 Manutenção
Engenharia de Software I

Reusabilidade
 
Criação e reuso dos blocos de construção de software,
onde estes devem ser catalogados para que possam ser
facilmente consultados, padronizados para facilitar a
aplicação e validados para que sua integração seja fácil.
Engenharia de Software I

Gerenciamento de projetos: Planejamento


 
O planejamento de projetos de software obriga
gerentes e profissionais a organizar suas tarefas de
forma mais objetiva. O primeiro passo do planejamento
é a estimativa.
Engenharia de Software I

Análise de risco
Identificação dos riscos
• Riscos de projeto (orçamento, cronograma, de
pessoal, de recursos, de clientes e de
requisitos)
• Riscos técnicos (potenciais problemas de
projeto, implementação, interface, verificação
e manutenção.)
Engenharia de Software I

• Riscos de negócios (Construir um excelente


produto que ninguém quer construir, que não
se adéqua mais a realidade de mercado,
construir um produto que a equipe de vendas
não sabe vender, perder o enfoque do
projeto, perder o compromisso orçamentário
ou de pessoal)
Engenharia de Software I

Projeção dos riscos


 
Ou estimativa de riscos, tenta classificar cada risco de
duas maneiras: a probabilidade de que o risco seja real
e as consequências dos problemas associados ao risco,
caso ocorra.
Engenharia de Software I

Avaliação dos riscos

É necessário definir, na avaliação de riscos, as seguintes


etapas:
• Definir os níveis referentes ao projeto;
• Tentar desenvolver um relacionamento entre cada
risco, probabilidade do risco e impacto do risco e
cada um dos níveis referentes;
Engenharia de Software I

• Prever o conjunto de pontos referentes que define


uma região de encerramento, delimitada por uma
curva ou área de incerteza;
• Tentar prever como associações combinadas dos
riscos afetarão um nível referente.
Engenharia de Software I

Gerenciamento e monitoração dos riscos


 
Descrição, probabilidade e impacto dos riscos,
associado a cada risco é usado como uma base a partir
da qual os passos de gerenciamento dos riscos são
desenvolvidos.
Engenharia de Software I

Determinação de um cronograma para o projeto de


software
 
Pode ser vista a partir de duas perspectivas bem
diferentes:
• Uma data final para a entrega de um sistema
baseado em computador já foi (e de maneira
irrevogável) estabelecida;
Engenharia de Software I

• Determinação de um cronograma para objetos de


desenvolvimento de software presume que limites
cronológicos aproximados tenham sido discutidos,
mas que a data final seja estabelecida pela
organização de engenharia de software.
Engenharia de Software I

Outros aspectos que influenciam no cronograma


• Relação pessoas- trabalho
• Definição de tarefa e paralelismo
• Distribuição de esforço
• Métodos de determinação de cronogramas
Engenharia de Software I

Aquisição de software

As etapas envolvidas na aquisição de software são


definidas pela criticalidade do software a ser comprado
e o custo final. Para pacotes de softwares mais caros, as
seguintes diretrizes podem ser aplicadas:
• Desenvolva uma especificação funcional e de
desempenho do software desejado. Defina
características mensuráveis sempre que possível;
Engenharia de Software I

• Estime o custo interno para desenvolver e a data de


entrega;
• Escolha três ou quatro pacotes de software
candidatos que atendam melhor as suas
especificações.
• Desenvolva uma matriz de comparação que
confronte entre as funções-chave das alternativas;
Engenharia de Software I

• Avalie cada pacote de software baseado na


qualidade do produto, suporte do vendedor,
direcionamento do produto, reputação do
fornecedor,...
• Contrate outros usuários do software e peça
opiniões.

Você também pode gostar