Buscar

Aula01 - ARA0097 - ENGENHARIA DE SOFTWARE - HARDWARE x SOFTWARE e ENGENHARIA DE SOFTWARE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

2019.2
ARA0097
ENGENHARIA DE SOFTWARE
PROFESSOR: RAIMUNDO AGUIAR XAVIER 1
2019.2
Aula 01 - CONTEÚDO
2
➢ FUNDAMENTOS: SOFTWARE e ENGENHARIA DE SOFTWARE
➢ SOFTWARE
o Software
o A natureza do Software 
o A natureza mutante do Software 
o O desenvolvimento de Software
o A crise do software
o Os mitos do software 
o Processo de Software
➢ ENGENHARIA DE SOFTWARE
o Engenharia de Software
o Camadas
o O processo de desenvolvimento de software 
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
FUNDAMENTOS DE ENGENHARIA 
DE SOFTWARE
Software 
3PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Software - Conceitos
➢O sistema computacional é composto de 2 subsistemas fundamentais: O software e o
hardware.
➢O software é o subsistema computacional que instrui ao hardware o que deve ser
feito. Contém as instruções, na ordem, que devem ser executadas pelos
componentes do subsistema hardware.
➢O software é um elemento lógico do sistema computacional e o hardware um
elemento físico.
➢Um sistema de informação é um software. Um jogo é um software. Um aplicativo de
celular é um software. Um sistema de informações estratégicas é um software. As
redes sociais são softwares. Aplicativos de celular são software. Aplicativos que
rodam na nuvem são software.
2019.2
Software - Conceitos
➢Os softwares hoje estão presentes em todos os lugares, seja no lazer, seja nas
atividades laborais. Os eletrodomésticos como maquina de lavar roupa, geladeiras e
televisões são dotadas de software que lhes conferem determinadas possibilidades
de automação.
➢O papel desempenhado pelo software vem sofrendo profundas alterações ao longo
dos últimos 40 anos, resultando em softwares modernos, grandes, complexos e
integrados, na medida em que abrangem a empresa como um todo e precisam se
comunicar, de forma a evitar redundâncias e informações incoerentes.
2019.2
Software
A natureza do Software
➢ O papel do software passou por mudanças significativas, nos
últimos 50 anos, impulsionado por consistentes evoluções na
capacidade de processamento e armazenamento, internet, dispositivos
móveis e outras tecnologias.
➢ O software ganha relevância na empresa, na medida em que
distribui informação.
➢ O software ganha contorno de destaque e atenção, na medida
em que integra os diversos setores e softwares da empresa.
➢
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Software
A natureza do Software
➢ O software torna-se complexo na medida em que agrega muitas
funcionalidades e usuários, espalhados geograficamente.
➢ Os softwares legados desenvolvido há bastante tempo e
que vem sendo mantido para adequar-se a realidade do
negócio e a evolução das plataformas computacionais.
Softwares legados podem sofrer problemas derivados de sua
baixa qualidade, como: dificuldade de estender o software,
entender o código (linguagens com baixa legibilidade e/ou
código mal escrito), alterações mal gerenciadas.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Software
A natureza do Software
➢ O software legado sofre alterações quando: precisam de
adaptações para atender a novos ambientes, novas tecnologias e
plataformas computacionais, novos requisitos de negócio, ser
integrado com ferramentas mais modernas (softwares, bancos de
dados e etc).
➢ A engenharia de software visa propiciar o desenvolvimento de
software com maior capacidade evolutiva (maior e mais eficiente ciclo
de manutenção)
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Software
A natureza mutante do Software
➢ O software possui elementos complexos de serem desenvolvidos e gerenciado,
na medida em que faz uso de recursos caros (humanos e materiais).
➢ O software é criado e projetado com base em expressões das necessidades de
seus usuários(os requisitos do sistema).
➢ Por essência, os requisitos mudam, na medida em que as empresas evoluem,
mudam seus processos, reorganizam suas estratégicas, reagem a ações de seus
concorrentes e ainda sofrem influência do meio em que estão inseridos.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Software
A natureza mutante do Software
➢ Não bastassem as mudanças de requisitos, os softwares evoluem conforme as
tendências tecnológicas em função de plataformas computacionais mais adequadas,
especialmente aqueles que são promissoras na redução de custo ou maximização da
receita. Pode-se destacar:
o evolução de hiperlinks para webapps;
o aplicações da inteligência artificial;
o aplicativos móveis;
o Computação nas nuvens.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
FUNDAMENTOS DE ENGENHARIA 
DE SOFTWARE
O desenvolvimento do Software 
11PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
Evolução
➢ Da mesma forma que o papel do software vem se transformando e se
destacando na sociedade, o seu processo de desenvolvimento precisa
acompanhar essa evolução. De programadores solitários que interagia no
máximo com analistas de sistemas e projetistas de softwares, passamos a ter
uma equipe multidisciplinar, onde cada um concentra-se numa parte da
tecnologia.
➢ Apesar da mudança as questões que permeiam o desenvolvimento de
software, as problemáticas são as mesmas:
➢ Por que leva-se tanto tempo desenvolvendo software?
➢ Por que os custos são tão elevados?
➢ Por que nem todos os erros são detectados antes da entrega do produto
de software?
➢Por que ainda temos dificuldades em estimar e medir o progresso do
desenvolvimento do software ?
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
A crise do software
➢ O termo foi criando nos anos 70, quando os conceitos de
engenharia de software ainda não existiam.
➢ Crise do software caracterizou um momento, dessa época, em
que as necessidades de desenvolvimento eram superiores a
capacidade de produção de softwares, pela complexidade dos
problemas e da ausência de técnicas e diretrizes para o
desenvolvimento de software com qualidade.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
A crise do software
➢ As evidências da crise do software eram: Projetos mal sucedidos,
que não chegavam ao fim, ou quando chegavam, o software gerado
não atendia (plenamente) a seus usuários, ou os prazos eram
extrapolados, assim como os custos. Não havia uma gestão efetiva da
qualidade no processo de desenvolvimento, que a essa altura não era
visto como um projeto.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
Os mitos do software
➢ Mito: Se o cronograma atrasar, podemos acrescentar programadores
→ A inserção de programadores ou outros profissionais pode atrasar
mais ainda, pois aumenta a complexidade de controle, além do tempo
necessário a essa pessoa para entender o software.
➢ Mito: Se terceirizarmos o desenvolvimento poderemos relaxar e deixar
o terceiro desenvolver
→ Se a empresa não gerenciar e controlar o desenvolvimento terá dificuldades em
terceirizar a tarefa. O software em desenvolvimento pode demandar integração com
sistemas existentes e que o terceiro desconheça, por exemplo.
➢ Mito: Uma definição geral dos objetivos é suficiente para iniciar a
escrita dos programas
→ Dificilmente temos condições de reunir todos os requisitos no início,
além dos mesmos serem ambíguos, o que pode ser resolvido com efetiva
interação entre equipe de desenvolvimento e usuários.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
Os mitos do software
➢ Mito: Uma vez desenvolvidos e postos em uso os programas, finda o
trabalho da equipe de desenvolvimento.
→ Nesse momento, da implantação surgem os erros, derivados de um
processo mal concebido. Levantamentos indicam que de 60% a 80% de todo o
esforço será despendido após a entrega aos usuários pela primeira vez.
➢ Mito: Até que o programa entre em funcionamento não temos como
avaliar
→ Mecanismos de aferição de qualidade podem e devem ser inseridos
no processo desde a concepção do software ate seu completo
desenvolvimento. Processo e produtos precisam ser avaliados, quanto a
qualidade.
PROFESSOR: RAIMUNDO AGUIAR XAVIER2019.2
O desenvolvimento do Software
Os mitos do software
➢ Mito: A engenharia de software nos fará produzir documentação
volumosa e desnecessária e, invariavelmente vai retardar o desenvolvimento
→ Engenharia de software não foca em documentação e sim no
desenvolvimento de qualidade, o que tende a reduzir o trabalho.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
O processo de software
➢ Embora sejam duas tecnologias integradas, em que ambas
demandam qualidade, a forma e o processo do desenvolvimento é
diferenciado, em função das diferentes característica de ambos. É
notório o maior sucesso e possibilidade de padronização no processo
de desenvolvimento de hardware.
➢ Os custos do software estão concentrados no processo de
desenvolvimento.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
O processo de software
➢ O software não se desgasta, como os componentes físicos do
hardware. No processo de desenvolvimento do hardware os problemas
tendem a acontecer em 2 momentos:
✓ No inicio do processo de fabricação por erro ou defeito no
componente (que uma vez substituído resolve o problema)
✓ No final, por desgaste físico dos componentes.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
O processo de software
➢ No processo de desenvolvimento do software os erros não
descobertos inicialmente resultarão em taxas de erro no inicio de sua
vida. Como não há desgaste, se resolvido, tende a se estabilizar. Mas
isso não tem sido fato !!!. Porém software requer alterações, que
podem demandar novos erros, ao longo de sua vida. Antes que o
software se estabilize novas demandas de alterações podem ser
solicitadas. Ou seja o software se deteriora pelas alterações necessárias
a sua atualização.
➢ Outro aspecto: defeito de hardware podem ser resolvidos com a
substituição do componente problemático. Com software isso não
acontece, pois o erro indica falha no projeto ou no processo.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
O desenvolvimento do Software
O processo de software
➢ Embora o desenvolvimento de software almeje aproximar-se do
desenvolvimento do hardware, a construção com base em
componentes ainda não é efetiva.
➢ No mundo do hardware a reutilização de componentes é natural.
Já no software esse componente deve ser projetado e construído de
forma a ser usados em diferentes softwares, o que nem sempre é bem
feito.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
FUNDAMENTOS DE ENGENHARIA 
DE SOFTWARE
Engenharia de Software 
22PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Engenharia de Software
Conceitos
➢ A Engenharia de software compreende a escolha de um processo, de
um conjunto de métodos, com auxilio de ferramentas que permitam o
desenvolvimento de um software que atendam as necessidades de seus
usuários, com alto padrão de qualidade.
➢ O foco da engenharia de software ocorre na medida em que possibilita
o desenvolvimento de softwares grandes e complexos, dentro do prazo,
usando os recursos destinados e com qualidade.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Engenharia de Software
Conceitos
➢ Na prática, a engenharia de software abrange: compreensão do
problema (levantamento e entendimento dos requisitos), Planejamento de
uma solução (analise e projeto do software), execução do plano (codificação
da solução analisada e projetada) e examine o resultado (testes e garantias
de qualidade).
➢ A engenharia de software preconiza a aferição da qualidade durante o
processo do desenvolvimento e no produto de software resultante.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Engenharia de Software
Camadas
➢ A engenharia de software é uma tecnologia em camadas.
➢ As camadas da engenharia de software são: Foco na qualidade,
Processo, Métodos e Ferramentas.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Engenharia de Software
Camadas
➢ A camada de processos é a base, onde se define a metodologia de
trabalho, para o desenvolvimento do software.
➢ A camada de métodos é que a da sustentação técnica para o
desenvolvimento do software. Os métodos envolvem as tarefas do processo:
requisitos, análise, projeto, codificação, testes e manutenção. Os métodos
definem ainda as atividades de modelagem, por exemplo.
➢ A camada de Ferramentas fornece apoio para automação do processo e
de determinados métodos.
➢ A camada de apoio a qualidade define um conjunto de métricas,
aspectos de qualidade, gestão e monitoramento da qualidade não apenas do
processo, mas também do produto de software.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Engenharia de Software
processo desenvolvimento software
➢ Segundo Pressman, uma metodologia genérica de processos para
engenharia de software compreende 5 atividades metodológicas.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Engenharia de Software
processo desenvolvimento software
➢ 1. Comunicação - A interlocução com os interessados no sistema é
fundamental.
➢ 2. Planejamento - o desenvolvimento de software envolve a gestão de
recursos (financeiro, tempo e materiais), diante da possibilidade de riscos ,
para que os produtos resultantes possam ser desenvolvidos com qualidade.
➢ 3. Modelagem - para que se possam compreende as necessidades dos
usuários, as ideias de solução são esboçadas em diagramas, desde modelos
iniciais até modelos mais detalhados e complexos. Os modelos ajuda na
comunicação e no planejamento.
➢ 4. Construção - construção de código e testes para identificar erros.
➢ 5. Emprego - feedback dado pelo usuário, ao emprego do software,
após sua entrega.
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Engenharia de Software
processo desenvolvimento software
➢ Com essas 5 atividades é possível desenvolver software grandes e
pequenos, simples e complexos.
➢ Além dessas 5 atividades metodológicas temos as atividades de
apoio que são:
➢ Controle e acompanhamento do projeto,
➢Administração de riscos,
➢Garantia da qualidade,
➢Revisões técnicas,
➢Medição,
➢Gerenciamento de configurações de software,
➢Gerenciamento de usabilidade,
➢Produção de artefatos de software
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2
Aula 02 - CONTEÚDO
30
➢GERENCIAMENTO DE PROJETOS
➢ ???????????
o ?????????????
o ???????????????????????
o ?????????????????????????????????????????
oAGUARDEM...
o ?????????????
o ????????????????????????????????
o ?????????????????????????????????????????????
➢ ????????????????
o ??????????????
PROFESSOR: RAIMUNDO AGUIAR XAVIER
2019.2 31
OBRIGADO
PROFESSOR: RAIMUNDO AGUIAR XAVIER

Outros materiais