FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Gerenciamento de Desenvolvimento de Software
Introdu¸c˜ao(Aula 2)
Leonardo Medeiros
Instituto Federal de Alagoas
Roteiro
1 FAQs 2 Engenharia de Software Motiva¸c˜ao da ES Hist´orico Crise do Software 3 Elementos4 Modelos de Ciclo de Vida Modelos Sequenciais Modelos Incrementais Modelos Iterativos 5 Outros elementos Linguagem 6 Processo
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Pergunta
O que ´e software ?
Resposta
Programas de computador e documenta¸c˜ao associada. Os produtos de software podem ser desenvolvidos para um cliente espec´ıfico ou para um mercado geral.
Pergunta
O que ´e software ?
Resposta
Programas de computador e documenta¸c˜ao associada. Os produtos de software podem ser desenvolvidos para um cliente espec´ıfico ou para um mercado geral.
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Pergunta
O que ´e Engenharia de Software?
Resposta
´
E uma disciplina da Engenharia relacionada a todos os aspectos de produ¸c˜ao de software.
Pergunta
O que ´e Engenharia de Software?
Resposta
´
E uma disciplina da Engenharia relacionada a todos os aspectos de produ¸c˜ao de software.
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Pergunta
Qual o Objetivo Principal e final da constru¸c˜ao de um sistema ?
Resposta
O objetivo principal e final da constru¸c˜ao de sistema ´e “adi¸c˜ao de valor” `a empresa ou pessoas que dele necessitam. Isso implica que pelo menos a produtividade dos envolvidos deve ser melhorada para que tenha sentido a sua existˆencia.
Pergunta
Qual o Objetivo Principal e final da constru¸c˜ao de um sistema ?
Resposta
O objetivo principal e final da constru¸c˜ao de sistema ´e “adi¸c˜ao de valor” `a empresa ou pessoas que dele necessitam. Isso implica que pelo menos a produtividade dos envolvidos deve ser melhorada para que tenha sentido a sua existˆencia.
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Motiva¸c˜ao da ES
Motiva¸c˜ao
A principal motiva¸c˜ao para a produ¸c˜ao de software utilizando metologias de desenvolvimento. ´E justamente o crescimento exponencial da complexidade dos softwares produzidos.
A complexidade n˜ao se restringe apenas a tecnologia utilizada, mas tamb´em a tudo que tange o pr´oprio desenvolvimento.
Complexidade de Desenvolvimento
Complexidade Pessoas Tecnologia Cultura Legisla¸c˜ao Capacidade de processamento Frequˆencia de acessoFAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Motiva¸c˜ao da ES
Engenharia de Software
Segundo Friedrich Ludwig Bauer, ”Engenharia de Software ´e a cria¸c˜ao e a utiliza¸c˜ao de s´olidos princ´ıpios de engenharia a fim de obter software de maneira econˆomica, que seja confi´avel e que trabalhe eficientemente em m´aquinas reais”
Hist´
orico (1/3)
Antes 1969
desenvolvimento fora de controle
surge termo ENGENHARIA DE SOFTWARE
1969-1971
desenvolvimento top-down e modularizado novas linguagens de programa¸c˜ao
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Hist´orico
Hist´
orico (2/3)
1972-1973
programa¸c˜ao estruturada
propostas de apoio ao Desenvolvimento e Gerˆencia
1974-1975
conceitos de confiabilidade
controle da qualidade (teste sistem´atico, prova formal, tolerˆancia a falhas))
1976-1977
foco em requisitos
especifica¸c˜ao e projeto integra¸c˜ao e valida¸c˜ao das fases do ciclo de vida
Hist´
orico (3/3)
1978-1980uso de ferramentas automatizadas cursos de engenharia de software
1980-1989
era CASE
1999 em diante
t´ecnicas de IA aplicas a Engenharia de Software, gerando as “ferramentas inteligentes”
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Hist´orico
Era Qualidade
Foco no processo de desenvolvimento Artefatos de entrada e sa´ıda
Redu¸c˜ao de custos
Surgimento do processo interativo e incremental (Rational Unified Process)
Modelos de matura¸c˜ao de processos CMMI Busca por confiabilidade de prazos PMBOK
Qualidade na Pr´
atica
Opera¸c˜ao profissional
Processo de desenvolvimento transparente Retorno r´apido ao cliente
Alta produtividade
1 Ferramentas e processos padronizados
Alta qualidade
1 Dados hist´oricos, previsibilidade e an´alise de risco
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Hist´orico
Pergunta
O que ´e um Software de Qualidade ?
Resposta
´
E aquele que satisfaz os requisitos solicitados. Deve ser f´acil de manter, ter boa performance, ser confi´avel e f´acil de usar.
Pergunta
O que ´e um Software de Qualidade ?
Resposta
´
E aquele que satisfaz os requisitos solicitados. Deve ser f´acil de manter, ter boa performance, ser confi´avel e f´acil de usar.
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Crise do Software
Crise do Software
A crise do software foi um termo utilizado nos anos 70, quando a engenharia de software era praticamente inexistente.
O termo expressava as dificuldades do desenvolvimento de software frente ao r´apido crescimento da demanda por software, da
complexidade dos problemas a serem resolvidos e da inexistˆencia de t´ecnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem ser validados.
Crise do Software
Resultados :
25 por cento dos projetos s˜ao cancelados
O tempo de desenvolvimento ´e bem maior do que o estimado 75 por cento dos sistemas n˜ao funcionam como planejado Manuten¸c˜ao e reutiliza¸c˜ao s˜ao dif´ıceis
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Crise do Software
Crise do Software
Raz˜oes :
Falta de envolvimento do usu´ario An´alise e projeto inadequados Falta de flexibilidade no projeto Prazos longos
Elevada rotatividade de pessoal
M´a qualidade dos m´etodos, linguagens, ferramentas e processos
Crise do Software
Custos Altos :
Pouco controle sobre prazos e planejamento da equipe Baixa Reutiliza¸c˜ao de software
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Crise do Software
Crise do Software
Cronogramas n˜ao cumpridos ?
Maior foco no gerenciamento no projeto e defini¸c˜ao de prazos com metas mais curtas;
Maior intera¸c˜ao entre usu´ario e analista para que haja um entendimento das necessidades do software;
Barreiras tecnol´ogicas
Crise do Software
Busca por m´etricas
Como medir a produtividade das equipes de desenvolvimento? Como medir a qualidade do software produzido?
Como detectar e consertar os erros em prazo h´abil?
1 M´etricas
2 Processo de Desenvolvimento
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Crise do Software
Chaos Report 2009
Chaos 2009
Desenvolvido pelo Standish Group.
Como medir a qualidade do software produzido?
Chaos Report – Relat´orio que demonstra as taxas de sucesso e falhas dos projetos de software.
Chaos Report 2009
Chaos 2009FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Elementos x Atividades
ElementosModelos do Ciclo de Vida Linguagens
M´etodos
Ferramentas Processos
Elementos
Modelagem de Neg´ocio Elicita¸c˜ao de Requisitos An´alise e Projeto Implementa¸c˜ao Testes
Modelos de Ciclo de Vida
Uma representa¸c˜ao abstrata e simplificada do processo de desenvolvimento software, tipicamente mostrando as principais atividades e dados usados na produ¸c˜ao e manuten¸c˜ao de software
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Modelos de Ciclo de Vida
Tipos:
Cascata Espiral Incremental Seq¨uencial linear Prototipa¸c˜ao
Modelos de Ciclo de Vida
3 Abordagens Principais:FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Modelos Sequenciais
Modelos de Ciclo de Vida
Modelos de Ciclo de Vida
Modelos Sequenciais
Organizam o processo em uma seq¨uˆencia linear de fases.
1 Waterfall (Cascata)
Quando empregar
1 Problema cujos requisitos s˜ao muito bem definidos
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Modelos Incrementais
Modelos de Ciclo de Vida
Modelos Incrementais:
Software produzido por incrementos (m´odulos); Incrementos
1 Seu desenvolvimento segue o modelo sequencial; 2 Exigem revis˜ao do cliente;
Modelos de Ciclo de Vida
Modelos Incrementais VantagensMenor custo e tempo para entrega da 1a vers˜ao;
Menor risco e n´umero de mudan¸cas nos req. (pelo fato dos inc. serem menores que o sw todo).
Desvantagens
Requisitos inst´aveis ou incompletos os quais geram muitas mudan¸cas nos incrementos;
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Modelos Incrementais
Modelos Incrementais
RAD - Desenvolvimento R´apido
Modelos Iterativos
N˜ao se preocupa em entregar de vers˜oes operacionais desde o primeiro ciclo;
1 Geralmente produzem prot´otipos ou modelos.
Vers˜oes operacionais s˜ao produzidas `a medida em que os requisitos v˜ao ficando mais claros e est´aveis;
Quando empregar
1 Problemas muito complexos
2 Requisitos s˜ao muito vol´ateis ou que n˜ao podem ser totalmente especificados no in´ıcio do desenvolvimento.
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Modelos Iterativos
Modelos Iterativos
Modelos Iterativos (Evolutivos ou Evolucion´arios)
Linguagem
Nota¸c˜ao com sintaxe e semˆantica bem definidas com representa¸c˜ao gr´afica ou textual
Usada para descrever os artefatos gerados durante o desenvolvimento de software
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Linguagem
M´etodo
Descri¸c˜ao sistem´atica de como deve-se realizar uma determinada atividade ou tarefa A descri¸c˜ao ´e normalmente feita atrav´es de padr˜oes e guias.
Ferramentas
Provˆe suporte computacional a um determinado m´etodo ou linguagem Ambiente de desenvolvimento: conjunto de ferramentas integradas (CASE).
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Processo de Software
bloco
Um conjunto de atividades cujo objetivo ´e o desenvolvimento ou evolu¸c˜ao do software
Conjunto coerente de atividades para especifica¸c˜ao, projeto, implementa¸c˜ao e teste de sistemas de software
As atividades que s˜ao envolvidas no desenvolvimento de produtos de software.
Processo
Conjunto de atividades: bem definidas
com respons´aveis
com artefatos de entrada e sa´ıda
com dependˆencias entre as mesmas e ordem de execu¸c˜ao com modelo de ciclo de vida
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
Vocˆ
es j´
a viram ?
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
O que ”sabemos”aqui?
Todo o Pressman ou Sommerville (Software Engineering)
ou seja: requisitos, especifica¸c˜oes, refinamento, valida¸c˜ao e verifica¸c˜ao, m´etodos, t´ecnicas, linguagens e ferramentas, componentes, reutiliza¸c˜ao, manuten¸c˜ao, modelagem de processos, qualidade, reengenharia,, verifica¸c˜ao, valida¸c˜ao e teste... al´em de programa¸c˜ao!...
FAQs Engenharia de Software Elementos Modelos de Ciclo de Vida Outros elementos Processo
´
E Necess´
ario saber:
O Escopo e Or¸camento do Projeto
Devemos ter a verdadeira no¸c˜ao de que ferramentas e t´ecnicas de engenharia de software ser˜ao realmente ´uteis para o projeto que iremos desenvolver.
Inicialmente devemos focar na necessidade do cliente e de que maneira poderemos atendˆe-lo.