SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Introdução à Engenharia de
Software
Leinylson Fontinele Pereira
Engenharia de Software
Roteiro
• Introdução
Introdução
Conceitos de Software
“Software é abstrato, intangível , não é limitado por
materiais, ou controlado por leis físicas ou por processos
de manufatura”
(Sommerville, 2003)
“Software de computador é o produto que profissionais de
software constroem e, depois, mantêm ao longo do
tempo”
(PRESSMAN, 2011)
• Software não é apenas o programa executável...
Primeiros Passos
• Processo
– Conjunto de passos e instruções para executar
determinadas atividades
• Desenvolvimento
– Criação ou manutenção de um produto ou serviço
• Software
– Conjunto de código-fonte e documentação
Introdução
• Tipos de Software
– Software básico
– Software de tempo real
– Software comercial (gerencial, operacional)
– Software científico ou de engenharia
– Software embutido ou embarcado
– Software para inteligência artificial
– Jogos...
7
Categorias de Software
• Software Básico: uma coleção de programas escritos para servir a outros
programas. Ex: compiladores, editores, sistemas operacionais, drivers etc.
• Software de Tempo Real: programas que monitoram, analisam e
controlam eventos do mundo real. Um sistema de tempo real precisa
responder dentro de restrições de tempo especificadas, requerendo um bom
tempo de resposta (diferente de sistemas interativos ou on-line). Ex: software
de controle de metrô, de usina nuclear, de satélites etc.
• Software para o Negócio: a maior área de desenvolvimento de software.
Sistemas de Informação: controle escolar, controle de estoque, sistema de
biblioteca, comércio eletrônico, pontos de venda etc.
• Software Aplicativo: softwares de escritório, para computadores pessoais.
Ex: editores de texto, planilhas eletrônicas, software de acesso a e-mails etc.
8
Categorias de Software
• Software de Inteligência Artificial: fazem uso de algoritmos não numéricos
para a resolução de problemas complexos, que não podem ser tratados de forma
convencional. Softwares baseados em heurísticas e em conhecimento. Ex: Redes
Neurais (reconhecimento de voz, de imagem), Sistemas Nebulosos (jogos inteligentes,
gerenciamento de informações imprecisas) etc.
• Software Embarcado (ou embutido): normalmente residem em memória
não volátil (ROM) e são usados para controle de produtos e sistemas para o mercado
consumidor industrial. Ex: programas em forno de microondas, celulares,
computadores de bordo em automóveis etc.
• Software para Engenharia e Científicos: software para apoio a cálculos
matemáticos, físicos e para apoio a atividades de engenharia. Ex: simulação de
sistemas, ferramentas CASE (computer-aided software engineering), ferramentas CAD
(computer-aided design) etc.
Introdução
Com a evolução do software começaram a surgir vários problemas relacionados
ao seu processo de desenvolvimento, dando início a “Crise do Software”
10
1ª Era
❑ Programação de computadores era
vista como uma arte "secundária"
para a qual havia poucos métodos
sistemáticos;
❑ Evolução e aperfeiçoamento do
hardware eram colocados em
primeiro plano;
❑ Softwares eram projetados sob
medida nas organizações.
11
2ª Era
❑ Multi-programação e Sistemas Multi-
usuários;
❑ Sistemas Interativos Através de Terminais
de Acesso;
❑ Armazenagem On-line Leva à 1ª Geração
de Sistemas de Gerenciamento de Bancos
de Dados;
❑ Altos Custos e Esforço em Manutenção:
Primeira "Crise do Software”.
A Crise do software
A Crise do software
“Any fool can write code that a computer can
understand. Good programers write code that
humans can understand”
Martin Fowler
Causas da Crise do software
❑ Cumprimento dos prazos;
❑ Custos elevados;
❑ Dificuldades na manutenção dos
sistemas;
❑ Baixa qualidade;
❑ Clientes insatisfeitos;
❑ Construção informal de software.
15
3ª Era
❑ Advento e generalizado uso de
microcomputadores, computadores
pessoais e poderosas estações de
trabalho (workstations);
❑ Sistemas distribuídos x Sistemas
centralizados;
❑ Redes locais: sistemas departamentais e
em pequenas e médias empresas;
❑ Crescem as “software houses”.
16
4ª Era
❑ Problemas genéricos:
❑ Nossa capacidade de construir
programas não acompanha o ritmo da
demanda de novos programas;
❑ Nossa capacidade de manter
programas existentes é ameaçada por
projetos ruins e recursos inadequados.
❑ Mudança de paradigma em função da
tecnologia de orientação a objetos.
17
5ª Era (do ano 2000 em diante)
❑ Desenvolvimento geograficamente
distribuído;
❑ Componentes de software;
❑ Fortalecimento dos especialistas do
domínio;
❑ Desenvolvimento para a Web.
18
Acontecimentos Marcantes:
• 1969 - 1971: boas práticas de programação - surge a
linguagem Pascal.
• 1972 - 1973: programação estruturada, ciclo de vida.
• 1974 - 1975: procedimentos para teste sistemático e
prova formal de programas;
• 1976-1977: focos: requisitos, especificação e projeto;
paradigma de desenvolvimento estruturado.
• 1978 - 1980: era CASE.
• 1990 – 2004: orientação a objetos, desenvolvimento
para Web, desenvolvimento baseado em componentes.
19
Componentes do Software:
• Componentes executáveis em máquina, como:
instruções de programas, estruturas de dados
(bancos de dados), interfaces.
• Componentes não executáveis, como:
documentação de projeto e análise, manual de
usuário e de produção.
– A reutilização é uma característica importante de um
componente de software de alta qualidade!!!
Engenharia de Software
“Aplicação sistemática, disciplinada e com abordagem
quantitativa para desenvolvimento, operação e manutenção
de software”
(IEEE)
“Ramo da engenharia cujo foco é o desenvolvimento dentro de
custos adequados de sistemas de software de qualidade”
(SOMMERVILLE, 2003)
“Conjunto de processos, métodos, técnicas e ferramentas que
ajudam a produzir software com maior qualidade e com
menor custo”
(PRESSMAN, 2011)
21
Papéis no Desenvolvimento de Software
• Analista de Sistemas: responsável pela elicitação de
requisitos e especificação do “que” o software fará.
• Projetista: responsável pela especificação de “como” o
software irá implementar os requisitos definidos na
análise.
• Programador: responsável pela construção dos módulos e
programas, especificados no projeto, em uma linguagem
de programação.
• Gerente de Projeto: responsável por definir o processo e
os planos de desenvolvimento. Estabelece cronograma,
estima prazo, custo e recursos. Acompanha o
desenvolvimento.
22
Papéis no Desenvolvimento de Software
• Arquiteto: responsável pela elaboração da estrutura
modular do software. Está surgindo no mercado.
Arquitetos em tecnologias específicas, como J2EE.
• Desenvolvedor: atua em todas as etapas do
desenvolvimento. Normalmente, o mercado exige
especialidade em tecnologias e linguagens específicas.
• Usuário: pessoas, organizações ou departamentos que
utilizam o sistema. Podem ser usuários diretos, que de
fato operam o software, ou indiretos, que enviam dados
ou recebem resultados do software.
• Cliente: companhia, organização ou pessoa que contrata e
paga o sistema de software a ser desenvolvido.
Conceitos no Desenvolv. de Software
• O que é?
– Papel
– Disciplina
– Artefato
Papéis
• Administrador de Rede
• Analista de Qualidade
• Analista de Requisitos
• Analista de Negócios
• Analista de Testes
• Arquiteto de Software
• Consultor
• Desenvolvedor
• Gerente de Configuração
• Gerente de Projetos
• Testador
• ...
Cada papel tem sua importância,
disciplina, artefatos associados e
atividades pré-definidas
Disciplina
• Análise e projeto de software
• Desenvolvimento de software
• Gerência de Configuração
• Gerência de Requisitos
• Gerência de Projetos
• Implantação
• Modelagem de Negócios
• Teste de Software
Categorização de processos que
são, teoricamente, independente
dos demais
Artefato
• Ator
• Burndown chart
• Caso de Teste
• Caso de Uso
• Código fonte
• E-mail
• Glossário
• Plano de iteração
• Requisito
• Exemplo:
• Coleção de Requisitos
• Caso de Uso
• Regra de Negócio
Documento ou elemento
pertencente a este, que deve ser
criado ou alterado
Artefato
28
Outros conceitos...
• Método: procedimento formal para a produção de um
resultado. Um método define as tarefas que serão realizadas e
de que forma as mesmas deverão ser executadas. Define que
tecnologias e linguagens deverão ser adotadas e os produtos
que serão produzidos.
– Ex: metodologia de Análise Essencial, OMT (Object Modeling
Technique), RUP (Rational Unified Process) etc.
• Ferramenta: instrumento ou sistema automatizado (software)
para suportar a realização de uma tarefa.
– Ex: DFD (diagrama de fluxo de dados), Rational Rose (ferramenta
CASE)
• Paradigma: uma maneira, estilo ou filosofia para a construção
de software, envolvendo um conjunto de princípios. Ex:
paradigma estruturado e paradigma de orientação a objetos
(OO).
• Domínio: família de aplicações com requisitos similares.
– Ex: escolar, agropecuário, legislativo etc.
Processo de Software
• Engenharia de software propõe o uso de:
– Processos,
– Modelagem,
– Gestão da qualidade
Processo de Software
• Conjunto estruturado de atividades, práticas,
artefatos e ferramentas necessários para o
desenvolvimento de um sistema de software
– Especificação;
– Desenvolvimento;
– Validação;
– Evolução.
• Exemplos: Processo Unificado (RUP), Programação
Extrema, UML Components
Processo de Software
Processo de Software
• Estudo de viabilidade
– Econômica – relação custo/benefício;
– Técnica – tecnologia e capacitação;
– Jurídica – aspectos legais
• Levantamento de Análise de Requisitos
– Entrevista
– Observação
– Reuniões
Processo de Software
• Especificação de requisitos
– Documento contendo os requisitos do usuário e do
sistema
• Funcionais e não funcionais
• Validação de requisitos
– Avaliação dos requisitos (consistência e integridade)
Processo de Software
• Alguns elementos de um processo:
– Modelos de sistema:
• Modelos gráficos e notações empregadas;
• Restrições aplicadas aos modelos de sistema;
– Recomendações de boas práticas de projeto;
– Atividades de execução ordenada;
– Às vezes também prescrevem ferramentas.
• Um processo adere a um ou mais modelos de processo
Modelo de processo de software
• Representação simplificada de um processo de
software, apresentado sob uma perspectiva específica
• Inclui algumas atividades e sua organização
• Propósitos:
– Melhor entendimento do sistema que está sendo construído
– Especificar a estrutura e comportamento
– Guia a construção do sistema
– Documenta as decisões tomadas
Modelo de processo de software
• Objetivo
– Auxiliar ao gerente: controlar o processo de
desenvolvimento de sistemas de software.
– Auxiliar ao desenvolvedor: obter a base para
produzir, de maneira eficiente, software que
satisfaça os requisitos pré-estabelecidos.
Modelo de processo de software
• Modelos gerais de processo
– Modelo Cascata
– Prototipação
– Modelo Incremental
– Modelo Espiral
– Modelo RAD
– Modelo RUP
– Modelo Ágil
– .... Vários outros
• Representações de modelos de processo:
– Modelo de workflow – seqüência de atividades;
– Modelo de fluxo de dados – fluxo de informações;
– Modelo de papel/ação – quem faz o quê.
Modelo X Processo
• Modelo de software:
– Documento teórico, conjunto de possíveis ações
• Processo de software:
– Determina as ações práticas a serem realizadas
pela equipe como: prazos definidos e métricas
para de avaliação
Gestão da Qualidade
• Diferentes visões de qualidade:
– Visão transcedental: algo que se reconhece, mas não
consegue definir;
– Visão do usuário: atendimento das metas específicas
de um usuário final;
– Visão do fabricante: atendimento das especificação
original do produto;
Gestão da Qualidade
– Visão do produto: relacionada às características do
produto (funções e recursos)
– Visão baseada em valor: mede o quanto um cliente
estaria disposto a pagar
• Gestão de qualidade:
– Estabelecer um conjunto de tarefas de desenvolvimento,
– Controle de qualidade,
– Métricas.
Gestão da Qualidade
Gestão da Qualidade
Gestão da Qualidade
Suporte
Velocidade
Qualidade no atendimento
Aparência
Prazo de entrega
Correção
Facilidade de uso
Escalabilidade
Disponibilidade
Preço de manutenção
Preço de aquisição
Confiabilidade
Parte Visível
Parte InvisívelPráticas de codificação
Complexidade
Redundância
Eficiência
Facilidade de integração
Normalização da base de dados
Reusabilidade
Testabilidade
Flexibilidade
Manutenibilidade
Linguagem de codificação
Documentação do código
Ciclo de Vida do Software
• Uma estratégia de desenvolvimento que englobe
processos, métodos e ferramentas, e as fases de
desenvolvimento...
– Modelo em Cascata - ciclo clássico
– Paradigma Evolucionário
• Prototipação
• Incremental
• Espiral
• Métodos Ágeis
– Modelos Formais
– Técnicas de 4ª Geração
– Orientado a Reuso
Desafios da Engenharia de Software
• Heterogeneidade
– Sistemas de software devem ser capaz de lidar com diferentes
plataformas de hardware e ambientes de execução;
• Entrega
– O sistema deve ser entregue ao cliente no menor tempo
possível, com o menor custo possível;
• Confiança
– O usuário deve poder justificadamente depositar sua
confiança no sistema
• Escala
– O sistema deve funcionar adequadamente mesmo quando um
grande número de usuários o está usando
Modelo Cascata
• Método sistemático e sequencial
• O resultado de uma fase se constitui na entrada
da outra
• Cada fase é estruturada como um conjunto de
atividades que podem ser executadas por
pessoas diferentes
Modelo Cascata
Modelo Cascata
Modelo Cascata
• Análise de Requisitos
– Envolve a coleta de requisitos (nível de usuário) de
forma intensa
– Compreensão do domínio, função, desempenho e
interface necessários
– Os requisitos são documentados e revistos com o
cliente
Modelo Cascata
• Projeto
– Requisitos do software -> Representações
– Avaliação de qualidade
– Anterior a codificação
• Concentram em 4 atributos
– Estrutura de dados
– Arquitetura
– Detalhes de procedimentos
– Caracterização de interface
Modelo Cascata
• Codificação
– Implementação
– Tradução do projeto em código computacional
– Instruções executáveis pelo computador
– Linguagens de programação ( alto ou baixo nível )
– Quanto mais coeso o projeto e os requisitos mais
rápida é a codificação
Modelo Cascata
• Testes
– Concentra os aspectos lógicos internos
– Garante o teste de funcionalidade (código)
– Nos aspectos funcionais externos
– Descobrir erros (teste de funcionalidade)
– Entrada x produz saída y
– Garantir a confiabilidade
Modelo Cascata
• Manutenção
– Alterações depois de entrega efetuada
– Mudanças ocorrem por:
• Erros
• Adaptação para acomodação de mudanças em
processo organizacional
• Exigência do cliente para acréscimo funcional
• Em decorrência do desempenho
Modelo Cascata
• Problemas:
– Projetos raramente seguem o fluxo do modelo
– Dificuldade de estabelecer os requisitos no início
do projeto
– O cliente deve ter paciência
• Uma versão do produto só ficará disponível numa etapa
avançada de desenvolvimento
Modelo Cascata
• Mesmo com as fragilidades, ele é
significativamente melhor que uma
abordagem aleatória de desenvolvimento.
• Embora a entrega de uma versão “beta” seja
tardia o resultado é satisfatório porem
demorado.
Atividade 1
• Escreva um roteiro dos processos envolvidos
na reserva de um livro em um sistema de
controle para biblioteca da instituição.

Mais conteúdo relacionado

Mais procurados

Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasGustavo Gonzalez
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoDaniel Brandão
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 

Mais procurados (20)

Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de Informação
 
Aula4 levantamento requisitos
Aula4 levantamento requisitosAula4 levantamento requisitos
Aula4 levantamento requisitos
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 

Semelhante a Aula 1 - Introdução a Engenharia de Software

aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxMarcondesTiburcio
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
 
Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Fernanda Ramos
 
IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08Gilson Silva
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...Janynne Gomes
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdfPedro Alcantara
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentaisWaldemar Roberti
 
2 engenharia de software
2   engenharia de software2   engenharia de software
2 engenharia de softwareFelipe Bugov
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 

Semelhante a Aula 1 - Introdução a Engenharia de Software (20)

aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptx
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
Aula1.pdf
Aula1.pdfAula1.pdf
Aula1.pdf
 
P2_Aula1-convertido.pptx
P2_Aula1-convertido.pptxP2_Aula1-convertido.pptx
P2_Aula1-convertido.pptx
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
ES - 02
ES - 02ES - 02
ES - 02
 
Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]
 
IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
2 engenharia de software
2   engenharia de software2   engenharia de software
2 engenharia de software
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 

Mais de Leinylson Fontinele

Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto WordLeinylson Fontinele
 
Aula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoAula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoLeinylson Fontinele
 
Aula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaAula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaLeinylson Fontinele
 
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Leinylson Fontinele
 
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Leinylson Fontinele
 
Aula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesAula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesLeinylson Fontinele
 
A história da Segurança da Informação
A história da Segurança da InformaçãoA história da Segurança da Informação
A história da Segurança da InformaçãoLeinylson Fontinele
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaLeinylson Fontinele
 
Aula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaAula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaLeinylson Fontinele
 

Mais de Leinylson Fontinele (20)

Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto Word
 
Prática com slide.pptx
Prática com slide.pptxPrática com slide.pptx
Prática com slide.pptx
 
A galinha carijó
A galinha carijóA galinha carijó
A galinha carijó
 
Descrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzleDescrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzle
 
Aula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoAula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramento
 
Aula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaAula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurança
 
Aula 02 - Agentes Inteligentes
Aula 02 - Agentes InteligentesAula 02 - Agentes Inteligentes
Aula 02 - Agentes Inteligentes
 
Aula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IAAula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IA
 
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
 
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
 
Aula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesAula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informações
 
A história da Segurança da Informação
A história da Segurança da InformaçãoA história da Segurança da Informação
A história da Segurança da Informação
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. Costa
 
Caso 1 - Boing 777
Caso 1 - Boing 777Caso 1 - Boing 777
Caso 1 - Boing 777
 
Caso 2 - Aeroporto de Denver
Caso 2 - Aeroporto de DenverCaso 2 - Aeroporto de Denver
Caso 2 - Aeroporto de Denver
 
Aula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaAula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de busca
 
Aula 01 - Visão geral da IA
Aula 01 - Visão geral da IAAula 01 - Visão geral da IA
Aula 01 - Visão geral da IA
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Aula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequenciaAula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequencia
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 

Último

planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 

Último (20)

planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 

Aula 1 - Introdução a Engenharia de Software

  • 1. Introdução à Engenharia de Software Leinylson Fontinele Pereira Engenharia de Software
  • 2.
  • 4. Introdução Conceitos de Software “Software é abstrato, intangível , não é limitado por materiais, ou controlado por leis físicas ou por processos de manufatura” (Sommerville, 2003) “Software de computador é o produto que profissionais de software constroem e, depois, mantêm ao longo do tempo” (PRESSMAN, 2011) • Software não é apenas o programa executável...
  • 5. Primeiros Passos • Processo – Conjunto de passos e instruções para executar determinadas atividades • Desenvolvimento – Criação ou manutenção de um produto ou serviço • Software – Conjunto de código-fonte e documentação
  • 6. Introdução • Tipos de Software – Software básico – Software de tempo real – Software comercial (gerencial, operacional) – Software científico ou de engenharia – Software embutido ou embarcado – Software para inteligência artificial – Jogos...
  • 7. 7 Categorias de Software • Software Básico: uma coleção de programas escritos para servir a outros programas. Ex: compiladores, editores, sistemas operacionais, drivers etc. • Software de Tempo Real: programas que monitoram, analisam e controlam eventos do mundo real. Um sistema de tempo real precisa responder dentro de restrições de tempo especificadas, requerendo um bom tempo de resposta (diferente de sistemas interativos ou on-line). Ex: software de controle de metrô, de usina nuclear, de satélites etc. • Software para o Negócio: a maior área de desenvolvimento de software. Sistemas de Informação: controle escolar, controle de estoque, sistema de biblioteca, comércio eletrônico, pontos de venda etc. • Software Aplicativo: softwares de escritório, para computadores pessoais. Ex: editores de texto, planilhas eletrônicas, software de acesso a e-mails etc.
  • 8. 8 Categorias de Software • Software de Inteligência Artificial: fazem uso de algoritmos não numéricos para a resolução de problemas complexos, que não podem ser tratados de forma convencional. Softwares baseados em heurísticas e em conhecimento. Ex: Redes Neurais (reconhecimento de voz, de imagem), Sistemas Nebulosos (jogos inteligentes, gerenciamento de informações imprecisas) etc. • Software Embarcado (ou embutido): normalmente residem em memória não volátil (ROM) e são usados para controle de produtos e sistemas para o mercado consumidor industrial. Ex: programas em forno de microondas, celulares, computadores de bordo em automóveis etc. • Software para Engenharia e Científicos: software para apoio a cálculos matemáticos, físicos e para apoio a atividades de engenharia. Ex: simulação de sistemas, ferramentas CASE (computer-aided software engineering), ferramentas CAD (computer-aided design) etc.
  • 9. Introdução Com a evolução do software começaram a surgir vários problemas relacionados ao seu processo de desenvolvimento, dando início a “Crise do Software”
  • 10. 10 1ª Era ❑ Programação de computadores era vista como uma arte "secundária" para a qual havia poucos métodos sistemáticos; ❑ Evolução e aperfeiçoamento do hardware eram colocados em primeiro plano; ❑ Softwares eram projetados sob medida nas organizações.
  • 11. 11 2ª Era ❑ Multi-programação e Sistemas Multi- usuários; ❑ Sistemas Interativos Através de Terminais de Acesso; ❑ Armazenagem On-line Leva à 1ª Geração de Sistemas de Gerenciamento de Bancos de Dados; ❑ Altos Custos e Esforço em Manutenção: Primeira "Crise do Software”.
  • 12. A Crise do software
  • 13. A Crise do software “Any fool can write code that a computer can understand. Good programers write code that humans can understand” Martin Fowler
  • 14. Causas da Crise do software ❑ Cumprimento dos prazos; ❑ Custos elevados; ❑ Dificuldades na manutenção dos sistemas; ❑ Baixa qualidade; ❑ Clientes insatisfeitos; ❑ Construção informal de software.
  • 15. 15 3ª Era ❑ Advento e generalizado uso de microcomputadores, computadores pessoais e poderosas estações de trabalho (workstations); ❑ Sistemas distribuídos x Sistemas centralizados; ❑ Redes locais: sistemas departamentais e em pequenas e médias empresas; ❑ Crescem as “software houses”.
  • 16. 16 4ª Era ❑ Problemas genéricos: ❑ Nossa capacidade de construir programas não acompanha o ritmo da demanda de novos programas; ❑ Nossa capacidade de manter programas existentes é ameaçada por projetos ruins e recursos inadequados. ❑ Mudança de paradigma em função da tecnologia de orientação a objetos.
  • 17. 17 5ª Era (do ano 2000 em diante) ❑ Desenvolvimento geograficamente distribuído; ❑ Componentes de software; ❑ Fortalecimento dos especialistas do domínio; ❑ Desenvolvimento para a Web.
  • 18. 18 Acontecimentos Marcantes: • 1969 - 1971: boas práticas de programação - surge a linguagem Pascal. • 1972 - 1973: programação estruturada, ciclo de vida. • 1974 - 1975: procedimentos para teste sistemático e prova formal de programas; • 1976-1977: focos: requisitos, especificação e projeto; paradigma de desenvolvimento estruturado. • 1978 - 1980: era CASE. • 1990 – 2004: orientação a objetos, desenvolvimento para Web, desenvolvimento baseado em componentes.
  • 19. 19 Componentes do Software: • Componentes executáveis em máquina, como: instruções de programas, estruturas de dados (bancos de dados), interfaces. • Componentes não executáveis, como: documentação de projeto e análise, manual de usuário e de produção. – A reutilização é uma característica importante de um componente de software de alta qualidade!!!
  • 20. Engenharia de Software “Aplicação sistemática, disciplinada e com abordagem quantitativa para desenvolvimento, operação e manutenção de software” (IEEE) “Ramo da engenharia cujo foco é o desenvolvimento dentro de custos adequados de sistemas de software de qualidade” (SOMMERVILLE, 2003) “Conjunto de processos, métodos, técnicas e ferramentas que ajudam a produzir software com maior qualidade e com menor custo” (PRESSMAN, 2011)
  • 21. 21 Papéis no Desenvolvimento de Software • Analista de Sistemas: responsável pela elicitação de requisitos e especificação do “que” o software fará. • Projetista: responsável pela especificação de “como” o software irá implementar os requisitos definidos na análise. • Programador: responsável pela construção dos módulos e programas, especificados no projeto, em uma linguagem de programação. • Gerente de Projeto: responsável por definir o processo e os planos de desenvolvimento. Estabelece cronograma, estima prazo, custo e recursos. Acompanha o desenvolvimento.
  • 22. 22 Papéis no Desenvolvimento de Software • Arquiteto: responsável pela elaboração da estrutura modular do software. Está surgindo no mercado. Arquitetos em tecnologias específicas, como J2EE. • Desenvolvedor: atua em todas as etapas do desenvolvimento. Normalmente, o mercado exige especialidade em tecnologias e linguagens específicas. • Usuário: pessoas, organizações ou departamentos que utilizam o sistema. Podem ser usuários diretos, que de fato operam o software, ou indiretos, que enviam dados ou recebem resultados do software. • Cliente: companhia, organização ou pessoa que contrata e paga o sistema de software a ser desenvolvido.
  • 23. Conceitos no Desenvolv. de Software • O que é? – Papel – Disciplina – Artefato
  • 24. Papéis • Administrador de Rede • Analista de Qualidade • Analista de Requisitos • Analista de Negócios • Analista de Testes • Arquiteto de Software • Consultor • Desenvolvedor • Gerente de Configuração • Gerente de Projetos • Testador • ... Cada papel tem sua importância, disciplina, artefatos associados e atividades pré-definidas
  • 25. Disciplina • Análise e projeto de software • Desenvolvimento de software • Gerência de Configuração • Gerência de Requisitos • Gerência de Projetos • Implantação • Modelagem de Negócios • Teste de Software Categorização de processos que são, teoricamente, independente dos demais
  • 26. Artefato • Ator • Burndown chart • Caso de Teste • Caso de Uso • Código fonte • E-mail • Glossário • Plano de iteração • Requisito • Exemplo: • Coleção de Requisitos • Caso de Uso • Regra de Negócio Documento ou elemento pertencente a este, que deve ser criado ou alterado
  • 28. 28 Outros conceitos... • Método: procedimento formal para a produção de um resultado. Um método define as tarefas que serão realizadas e de que forma as mesmas deverão ser executadas. Define que tecnologias e linguagens deverão ser adotadas e os produtos que serão produzidos. – Ex: metodologia de Análise Essencial, OMT (Object Modeling Technique), RUP (Rational Unified Process) etc. • Ferramenta: instrumento ou sistema automatizado (software) para suportar a realização de uma tarefa. – Ex: DFD (diagrama de fluxo de dados), Rational Rose (ferramenta CASE) • Paradigma: uma maneira, estilo ou filosofia para a construção de software, envolvendo um conjunto de princípios. Ex: paradigma estruturado e paradigma de orientação a objetos (OO). • Domínio: família de aplicações com requisitos similares. – Ex: escolar, agropecuário, legislativo etc.
  • 29. Processo de Software • Engenharia de software propõe o uso de: – Processos, – Modelagem, – Gestão da qualidade
  • 30. Processo de Software • Conjunto estruturado de atividades, práticas, artefatos e ferramentas necessários para o desenvolvimento de um sistema de software – Especificação; – Desenvolvimento; – Validação; – Evolução. • Exemplos: Processo Unificado (RUP), Programação Extrema, UML Components
  • 32. Processo de Software • Estudo de viabilidade – Econômica – relação custo/benefício; – Técnica – tecnologia e capacitação; – Jurídica – aspectos legais • Levantamento de Análise de Requisitos – Entrevista – Observação – Reuniões
  • 33. Processo de Software • Especificação de requisitos – Documento contendo os requisitos do usuário e do sistema • Funcionais e não funcionais • Validação de requisitos – Avaliação dos requisitos (consistência e integridade)
  • 34. Processo de Software • Alguns elementos de um processo: – Modelos de sistema: • Modelos gráficos e notações empregadas; • Restrições aplicadas aos modelos de sistema; – Recomendações de boas práticas de projeto; – Atividades de execução ordenada; – Às vezes também prescrevem ferramentas. • Um processo adere a um ou mais modelos de processo
  • 35. Modelo de processo de software • Representação simplificada de um processo de software, apresentado sob uma perspectiva específica • Inclui algumas atividades e sua organização • Propósitos: – Melhor entendimento do sistema que está sendo construído – Especificar a estrutura e comportamento – Guia a construção do sistema – Documenta as decisões tomadas
  • 36. Modelo de processo de software • Objetivo – Auxiliar ao gerente: controlar o processo de desenvolvimento de sistemas de software. – Auxiliar ao desenvolvedor: obter a base para produzir, de maneira eficiente, software que satisfaça os requisitos pré-estabelecidos.
  • 37. Modelo de processo de software • Modelos gerais de processo – Modelo Cascata – Prototipação – Modelo Incremental – Modelo Espiral – Modelo RAD – Modelo RUP – Modelo Ágil – .... Vários outros • Representações de modelos de processo: – Modelo de workflow – seqüência de atividades; – Modelo de fluxo de dados – fluxo de informações; – Modelo de papel/ação – quem faz o quê.
  • 38. Modelo X Processo • Modelo de software: – Documento teórico, conjunto de possíveis ações • Processo de software: – Determina as ações práticas a serem realizadas pela equipe como: prazos definidos e métricas para de avaliação
  • 39. Gestão da Qualidade • Diferentes visões de qualidade: – Visão transcedental: algo que se reconhece, mas não consegue definir; – Visão do usuário: atendimento das metas específicas de um usuário final; – Visão do fabricante: atendimento das especificação original do produto;
  • 40. Gestão da Qualidade – Visão do produto: relacionada às características do produto (funções e recursos) – Visão baseada em valor: mede o quanto um cliente estaria disposto a pagar • Gestão de qualidade: – Estabelecer um conjunto de tarefas de desenvolvimento, – Controle de qualidade, – Métricas.
  • 44. Suporte Velocidade Qualidade no atendimento Aparência Prazo de entrega Correção Facilidade de uso Escalabilidade Disponibilidade Preço de manutenção Preço de aquisição Confiabilidade Parte Visível Parte InvisívelPráticas de codificação Complexidade Redundância Eficiência Facilidade de integração Normalização da base de dados Reusabilidade Testabilidade Flexibilidade Manutenibilidade Linguagem de codificação Documentação do código
  • 45. Ciclo de Vida do Software • Uma estratégia de desenvolvimento que englobe processos, métodos e ferramentas, e as fases de desenvolvimento... – Modelo em Cascata - ciclo clássico – Paradigma Evolucionário • Prototipação • Incremental • Espiral • Métodos Ágeis – Modelos Formais – Técnicas de 4ª Geração – Orientado a Reuso
  • 46. Desafios da Engenharia de Software • Heterogeneidade – Sistemas de software devem ser capaz de lidar com diferentes plataformas de hardware e ambientes de execução; • Entrega – O sistema deve ser entregue ao cliente no menor tempo possível, com o menor custo possível; • Confiança – O usuário deve poder justificadamente depositar sua confiança no sistema • Escala – O sistema deve funcionar adequadamente mesmo quando um grande número de usuários o está usando
  • 47. Modelo Cascata • Método sistemático e sequencial • O resultado de uma fase se constitui na entrada da outra • Cada fase é estruturada como um conjunto de atividades que podem ser executadas por pessoas diferentes
  • 50. Modelo Cascata • Análise de Requisitos – Envolve a coleta de requisitos (nível de usuário) de forma intensa – Compreensão do domínio, função, desempenho e interface necessários – Os requisitos são documentados e revistos com o cliente
  • 51. Modelo Cascata • Projeto – Requisitos do software -> Representações – Avaliação de qualidade – Anterior a codificação • Concentram em 4 atributos – Estrutura de dados – Arquitetura – Detalhes de procedimentos – Caracterização de interface
  • 52. Modelo Cascata • Codificação – Implementação – Tradução do projeto em código computacional – Instruções executáveis pelo computador – Linguagens de programação ( alto ou baixo nível ) – Quanto mais coeso o projeto e os requisitos mais rápida é a codificação
  • 53. Modelo Cascata • Testes – Concentra os aspectos lógicos internos – Garante o teste de funcionalidade (código) – Nos aspectos funcionais externos – Descobrir erros (teste de funcionalidade) – Entrada x produz saída y – Garantir a confiabilidade
  • 54. Modelo Cascata • Manutenção – Alterações depois de entrega efetuada – Mudanças ocorrem por: • Erros • Adaptação para acomodação de mudanças em processo organizacional • Exigência do cliente para acréscimo funcional • Em decorrência do desempenho
  • 55. Modelo Cascata • Problemas: – Projetos raramente seguem o fluxo do modelo – Dificuldade de estabelecer os requisitos no início do projeto – O cliente deve ter paciência • Uma versão do produto só ficará disponível numa etapa avançada de desenvolvimento
  • 56. Modelo Cascata • Mesmo com as fragilidades, ele é significativamente melhor que uma abordagem aleatória de desenvolvimento. • Embora a entrega de uma versão “beta” seja tardia o resultado é satisfatório porem demorado.
  • 57. Atividade 1 • Escreva um roteiro dos processos envolvidos na reserva de um livro em um sistema de controle para biblioteca da instituição.