SlideShare uma empresa Scribd logo
1 de 63
Introdução a Engenharia
de Software
Prof. Marcondes
CEEP PIO XII
O que é
Software?
Oque é software?
• São programas de computadores, em suas diversas
formas, e a documentação associada.
• Um programa é um conjunto de soluções
algorítmicas, codificadas numa linguagem de
programação, executado numa máquina real.
• Os produtos de software podem ser desenvolvidos
para um cliente em particular ou para o mercado
geral.
– Genérico (COTS – Commercial Off-The Shelf)
– Personalizado – sob encomenda
• Software é um produto conceitual e lógico.
Características
• Invisibilidade
– Software é invisível e invisualizável
• Complexidade
– Software é mais complexo do que qualquer outro
produto construídos por seres humanos
• Mutabilidade
– Existesempreuma pressãopara se fazer
mudanças em um software
Características
• Conformidade
– O software deve ser desenvolvido conforme o
ambiente. Não é o ambiente que deve se adaptar
ao software.
– Se o software esta conforme os requisitos (o
ambiente) todo o suporte operacional deve se
adaptar ao software.
Formas do Software
Mitos doSoftware
• O estabelecimento de objetivos gerais é suficiente
para se começar a escrever programas.
• Dê a uma pessoa técnica um bom livro de
programação e você terá um programador.
• Mudanças no software podem ser feitas
facilmente porque ele é "flexível".
• Até que o programa esteja "rodando" não é
possível verificarmos a sua qualidade.
• Uma vez que o programa esteja escrito e
funcionando, nosso trabalho está feito.
• Um projeto é bem sucedido se conseguirmos
um programa funcionando corretamente.
Histórico
• Os primeiros anos (1950 a início dos 60)
– Aplicações científicas e de
engenharia
• A segunda era (1960 a meados
de 80)
– Aplicações comerciais em
grande-porte (sistemas de
informação BD)
• A terceira era (meados de 70 e década de 80)
– Aplicativos pessoais em microcomputadores
• A quarta era (meados de 80 a meados de 90)
– Aplicativos com Interfaces Gráficas
Histórico
• A quinta era (de meados de 90 a
???) –
Softwar
e
Intranet
s
• Sexta
era??
Distribuídos, Internet, Groupwares
e
– Computação Pervasiva, Móvel e
Ubíqua
Categorias de Tamanho de Softwares
• Win 95: teve 11 milhões de linhas e 200
programadores
• Nestscape: teve 3 milhões de linhas e 120
programadores
Contextualização da
Engenharia de
Software
Oque é a Engenharia de Software?
• É uma disciplina da engenharia dedicada a
todos os aspectos da produção de software.
• Engenheiros de
software abordagem
sistemática e
devem
organizad
a
adotar
uma
para o
seu
trabalho e usar técnicas e ferramentas
apropriadas, de acordo com o problema a ser
resolvido, e com as restrições e recursos
disponíveis.
Engenharia
• Desenvolvimento de um produto;
• Processode desenvolvimentoenvolvendo
análise, design, implementação e
avaliação;
• Baseado em teoria, princípios,
modelos, métodos, técnicas e
ferramentas;
• Equipe de especialistas;
• Planejamento e gerenciamento de recursos,
custos e prazos.
Objetivos da Engenharia deSoftware
• Aplicação de teoria, modelos, formalismos,
técnicas e ferramentas da ciência da
computação e áreas afins para o
desenvolvimento sistemático de software.
• Aplicação de métodos, técnicas e ferramentas
para o
gerenciamento do processo de desenvolvimento.
• Produção da documentação formal
comunicação entre os membros
da
destinada a
equipe
d
e
desenvolvimento bem como aos
usuários.
Definições de Engenharia deSoftware
• O estabelecimento e uso de princípios de
engenharia para a produção economicamente
viável de software de qualidade que funcione em
máquinas reais;
• A engenharia de software é a disciplina envolvida
com a produção e manutenção sistemática de
software que são desenvolvidos com custos e
prazos estimados;
que aborda a construção de
software com muitas
• Disciplin
a
complex
o
diferente
s
versões
po
r
partes
interconectadas
e uma equipe
de analistas,
projetistas, programadores, gerentes, "testadores",
etc.
Aspectos históricos
• 1968 Conferência da OTAN, Garmisch
• Objetivo: resolver a “Crise do Software”
• Software é entregue:
– Atrasado
– Com orçamento estourado
– Com falhas residuais
• Custo do hardware decrescente e custo do
software em ascensão.
Qual a diferença entre engenhariade
software e engenharia desistemas?
• A engenharia de sistemas está interessada em
todos os aspectos de um sistema baseado em
computador, incluindo hardware, software,
fatores humanos, informação e o processo. A
engenharia de software é parte dela.
Princípios da Engenharia de Software
• Todo engenheiro de software deve desenvolver
com:
– Rigor e Formalidade
– Separação de interesses
– Modularidade
– Abstração
– Antecipação de mudanças
– Generalidade
– Possibilidades de evolução
Processos de
Software
Como transformar necessidades emsoftware?
• Principais Atividades Envolvidas:
– Entender as necessidades do
cliente;
– Planejar uma solução;
– Implementar e testar a solução;
– Entregar a solução.
• Como essas atividades são
executadas?
– De forma desordenada e informal;
– Apenas por uma pessoa.
Processode Desenvolvimento
• O conjunto de atividades de desenvolvimento, sua
ordem temporal e a atribuição de
responsabilidades (papéis de desenvolvedores)
definem um processo de desenvolvimento de
software;
• Um processo de software é a especificação do
processo de transformar necessidades em
software;
• Ciclo de Vida de um Processo:
– Determina as fases do processo;
– Define atividades importantes e opcionais para
cada fase.
Modelage
m
Oque são modelos?
• Modelos descrevem um determinado
sistema, muitas vezes de forma simplificada;
• Modelo de um processo de desenvolvimento:
– É a especificação (documentada) de um processo
de desenvolvimento de software que servirá de
parâmetro para uso/especificação de um
processo para uma equipe/projeto.
Modelos deSoftware
• Na construção de sistemas de software, assim
como na construção de sistemas habitacionais,
também há uma gradação de complexidade:
– A construção desses sistemas
necessita de um planejamento inicial
Modelos deSoftware
• Um modelo pode ser visto como uma
representação idealizada de um sistema que se
planeja construir;
• Maquetes de edifícios e de aviões e plantas de
circuitos eletrônicos são apenas alguns
exemplos de modelos.
Razãopara a Construção de Modelos
• Em princípio, podemos ver a construção de modelos
como uma atividade que atrasa o desenvolvimento
do software propriamente dito;
• Mas essa atividade propicia...
– O gerenciamento da complexidade inerente
ao desenvolvimento de software.
– A comunicação entre as pessoas envolvidas.
– A redução dos custos no desenvolvimento.
– A predição do comportamento futuro dosistema.
• Entretanto, note o fator complexidade como
condicionante dessas vantagens.
Diagramas e Documentação
• No
context
o
correspondem a desenhos
gráficos
de desenvolvimento de
software,
que seguem
algum padrão lógico.
• Podemos também dizer que um diagrama é uma
apresentação de uma coleção de elementos
gráficos que possuem um significado
predefinido.
• Diagramas normalmente são construídos de
acordo com regras de notação bem definidas.
– Ou seja, cada forma gráfica utilizada em um
diagrama de modelagem tem um significado
específico.
Diagramas e Documentação
• Diagramas permitem
representação concisa
construído.
a
construçã
o de
um
sistem
a
de
um
a a
ser
– “uma figura vale por milpalavras”
No entanto, modelos também são compostos de informações
textuais
Diagramas e Documentação
• Dado um modelo de uma das perspectivas de
um sistema, diz-se que o seu diagrama,
juntamente com a informação textual associada,
formam a documentação deste modelo.
Modelagem deSoftware
A modelagem de sistemas de software
consiste na utilização de notações gráficas
e textuais com o objetivo de construir
modelos que representam as partes
essenciais de um sistema, considerando-se
diversas perspectivas diferentes e
complementares.
Paradigm
as
Paradigma?
• Um paradigma é uma forma de abordar um
problema;
• No contexto da modelagem de um sistema de
software, um paradigma tem a ver com a forma
pela qual esse sistema é entendido, projetado e
construído.
Paradigma?
• A primeira abordagemusada para modelagem
de sistemas de software foi o paradigma
estruturado.
Paradigma da Orientação aObjetos
• Hoje em dia, praticamente suplantou o
paradigma anterior, o paradigma da
orientação aobjetos...
• O paradigma da OO surgiu no fim dos anos 60.
• Alan Kay, um dos pais desse paradigma,
formulou a chamada analogia biológica.
• “Como seria um sistema de software que
funcionasse como um ser vivo?”
Analogia Biológica
• Uma “célula” interage com outras células
enviando mensagens para realizar um
objetivo comum;
• Adicionalmente, cada célula se comportaria
como uma unidade autônoma;
• De uma forma mais geral, Kay pensou em como
construir um sistema de software a partir de
agentes autônomos que interagem entre si.
Fundamentos da OO
• Através de sua analogia biológica, Alan Kay
definiu os fundamentos da orientação a objetos
– Qualquer coisa é um objeto;
– Objetos realizam tarefas através da requisição
de serviços a outros objetos;
– Cada objeto pertence a uma determinada classe.
Uma classe agrupa objetos similares;
– A classe é um repositório para
comportamento associado ao objeto;
– Classes são organizadas em hierarquias.
Sistema de Software OO:umaanalogia
Resumindo
• O paradigma
d
a
sistem
a
de software como uma
coleção
orientação a objetos visualiza um
de agentes
interconectados chamados objetos.
• Cada objeto é responsável por realizar tarefas
específicas. É através da interação entre objetos
que uma tarefa complexa é realizada.
• Um sistema de software orientado a objetos consiste
de objetos em colaboração com o objetivo de
realizar as funcionalidades deste sistema. Cada
objeto é responsável por tarefas específicas. É
através da cooperação entre objetos que a
computação do sistema se desenvolve.
Conceitos e Princípios de OO
• Conceitos:
– Classe
– Objeto
– Mensagem
• Princípios:
– Encapsulamento
– Polimorfismo
– Generalização
(herança)
– Composição
Classes,Objetos e Mensagens
• O mundo real é formado de coisas;
• Na terminologia de orientação a objetos, estas
coisas do mundo real são denominadas objetos;
• Sereshumanoscostumamagrupar os objetos
para entendê-los;
• A descrição de um grupo de objetos é
denominada
classede objetos, ou simplesmente de classe.
Oque é uma Classe?
• Uma classe é um molde para objetos. Diz-se
que um objeto é uma instância de uma classe;
• Uma classe é uma abstração das
características
relevantes de um grupo de coisas do mundo real
– Na maioria das vezes, um grupo de objetos do
mundo real é muito complexo para que todas as
suas características e comportamento sejam
representados em uma classe
Comodetectar propriedades relevantes?
• Uma abstração é qualquer modelo que inclui os
aspectos relevantes de alguma coisa, ao mesmo
tempo em que ignora os menos importantes.
• Abstração depende do observador.
Abstração emOO
• A orientação a objetos faz uso intenso de
abstrações
– Os princípios da OO podem ser vistos como
aplicações da abstração
• Princípios da OO:encapsulamento,
polimorfismo, herança e composição
Objetos como Abstrações
• Uma abstração é uma representação das
características e do comportamento relevantes de
um conceito do mundo real para um determinado
problema.
• Dependendo do contexto, um mesmo conceito do
mundo real pode ser representado por diferentes
abstrações:
– Carro (para uma transportadora de cargas)
– Carro (para uma fábrica de automóveis)
– Carro (para um colecionador)
– Carro (para uma empresa de kart)
– Carro (para um mecânico)
Mensagens
• Para que um objeto realize alguma tarefa, deve
haver um estímulo enviado a este objeto.
• Pense em um objeto como uma entidade ativa
que representa uma abstração de algo do
mundo real
– Então faz sentido dizer que tal objeto pode
responder a estímulos a ele enviados
– Assim como faz sentido dizer que seres vivos
reagem a estímulos que eles recebem.
Mensagens
• Independentemente da origem do estímulo,
quando ele ocorre, diz-se que o objeto em
questão está recebendo uma mensagem
• Uma mensagem é uma requisição enviada de
um objeto a outro para que este último realize
alguma operação
Encapsulamento
• Objetos possuem comportamento.
– O termo comportamento diz respeito a que
operações são realizadas por um objeto e
também de que modo estas operações são
executadas.
Encapsulamento
• De acordo com o encapsulamento,
objetos devem “esconder” a sua
complexidade...
• Esse
princípio
termos de:
– Legibilidad
e
– Clareza
– Reuso
aumenta qualidade do SSOO,
em
Encapsulamento
• O encapsulamento é uma forma de restringir o
acesso ao comportamento interno de um objeto
– Um objeto que precise da colaboração de outro
para realizar alguma tarefa simplesmente envia
uma mensagem a este último;
– O método (maneira de fazer) que o objeto
requisitado usa para realizar a tarefa não é
conhecido dos objetos requisitantes.
• Na terminologia da orientação a objetos, diz-se
que um objeto possui uma interface
– A interface de um objeto é o que ele conhece e o
que ele sabe fazer, sem descrever como o objeto
conhece ou faz
– A interface de um objeto define os serviços que
ele pode realizar e conseqüentemente as
mensagens que ele recebe
Encapsulamento
• Uma interface pode ter várias formas
de
implementação;
• Mas, pelo princípio do encapsulamento, a
implementação utilizada por um objeto receptor
de uma mensagem não importa para um objeto
remetente da mesma.
Polimorfismo
Objeto
Recepto
r
Objeto
Recepto
r
Objeto Remetente (Jogo
de Futebol?)
É a habilidade de objetos de classes
diferentes responderem a mesma
mensagem de diferentes maneiras.
Generalização (Herança)
• A herança pode ser vista como um nível de
abstração acima da encontrada entre classes e
objetos;
• Na herança,classes semelhantes
são agrupadas em hierarquias:
– Cada nível de uma hierarquia pode ser visto
como um nível de abstração
– Cada classe em um nível da hierarquia herda
as características das classes nos níveis acima
Herança
• A herança facilita o compartilhamento de
comportamento entre classes semelhantes;
• As diferenças ou variações de uma classe em
particular podem ser organizadas de forma mais
clara;
Entendido o Paradigma, comocriar
modelos?
• O rápido crescimento da capacidade
computacional das máquinas (lei de moore)
resultou na demanda por sistemas de software
cada vez mais complexos;
• O surgimento de sistemas de software mais
complexos resultou na necessidade de
reavaliação da forma de desenvolver sistemas;
• Conseqüentemente as técnicas utilizadas para
a construção de sistemas computacionais têm
evoluído de forma impressionante,
notavelmente no que tange à modelagem de
sistemas.
Entendido o Paradigma, comocriar
modelos?
• Na primeira metade da década de 90 surgiram
várias propostas de técnicas para modelagem
de sistemas segundo o paradigma orientado a
objetos
• Houve uma grande proliferação de propostas
para modelagem orientada a objetos
– diferentes notações gráficas para modelar
uma mesma perspectiva de um sistema;
– cada técnica tinha seus pontos fortes e fracos.
Entendido o Paradigma, comocriar
modelos?
• Percebeu-se a necessidade de um padrão para
a modelagem de sistemas, que fosse aceito e
utilizado amplamente;
• Alguns esforços nesse sentido de padronização,
o principal liderado pelo “três amigos”;
• Surge a UML (Unified Modeling Language) em
1996 como a melhor candidata para ser
linguagem “unificadora”.
UM
L
UML (Linguagem de Modelagem Unificada)
• “A UML é a linguagem padrão para visualizar,
especificar, construir e documentar os artefatos
de software de um sistema.”
• Unificação de diversas notações anteriores
• Mentores: Booch, Rumbaugh e Jacobson
– “Três Amigos”
– IBM Rational (www.rational.com)
UML (Linguagem de Modelagem Unificada)
• UML é...
– uma linguagem visual
– independente de linguagem de programação.
– independente de processo de desenvolvimento
• UML não é...
– uma linguagem programação (mas possui
versões!)
– uma técnica de modelagem
Diagramas da UML
• Um diagrama na UML é uma apresentação de
uma coleção de elementos gráficos que possuem
um significado predefinido
– No contexto de desenvolvimento de software,
correspondem a desenhos gráficos que seguem
algum padrão lógico
Diagramas da UML
• Um processo de desenvolvimento que utilize a
UML como linguagem de modelagem envolve a
criação de diversos documentos:
– Estes documentos, denominados artefatos de
software, podem ser textuais ou gráficos
• Os artefatos gráficos produzidos no
desenvolvimento de um SSOO são definidos
através dos diagramas da UML.
Referências
• JACOBSON, I.; BOOCH, G. and RUMBAUGH,
J. The Unified Software Development Process.
Readding, MA.: Addison-Wesley, 1999,
• LARMAN, C. Utilizando UML e Padrões: uma
introdução á análise e ao projeto orientados a
objetos e ao Processo Unificado. 2a edição -
Porto Alegre: Bookman, 2004.
• ALLEIXO, F. Notas de aula da disciplina de
Análise e Projeto Orientado a Objeto,
CEFET/RN, 2007.
• LEITE, J.C. Notas de aula da disciplina de
Engenharia de Software, UFRN, 2006.

Mais conteúdo relacionado

Semelhante a P2_Aula1-convertido.pptx

Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
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
 
Arquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão CríticaArquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão CríticaPedro Castilho
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptxanalise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptxMoysesOliveira3
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
26 03 09_-_mercado_de_trabalho_em_ti
26 03 09_-_mercado_de_trabalho_em_ti26 03 09_-_mercado_de_trabalho_em_ti
26 03 09_-_mercado_de_trabalho_em_tiMarcelo Avila
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Camilla Gomes
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimentoGabriel Moura
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGdjonatascostsa
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Renato Leal
 
Analise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxAnalise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxALLYSONALVESCARVALHO
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Natanael Simões
 

Semelhante a P2_Aula1-convertido.pptx (20)

Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
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
 
Arquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão CríticaArquitetura de Software - Uma Visão Crítica
Arquitetura de Software - Uma Visão Crítica
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptxanalise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
analise-de-sistemas-aula-01-bcc-noturno-ema908915a.pptx
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
26 03 09_-_mercado_de_trabalho_em_ti
26 03 09_-_mercado_de_trabalho_em_ti26 03 09_-_mercado_de_trabalho_em_ti
26 03 09_-_mercado_de_trabalho_em_ti
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
00 apresentacao
00   apresentacao00   apresentacao
00 apresentacao
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMG
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
 
Analise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptxAnalise de Projeto de Sistemas EEEP.pptx
Analise de Projeto de Sistemas EEEP.pptx
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
 

Mais de MarcondesTiburcio

Aula_01_-_A_Era_da_Computacao.pdf
Aula_01_-_A_Era_da_Computacao.pdfAula_01_-_A_Era_da_Computacao.pdf
Aula_01_-_A_Era_da_Computacao.pdfMarcondesTiburcio
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfMarcondesTiburcio
 
TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14 11 2022 NOVAS TECNOLOGIAS PARA A...
TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14  11 2022 NOVAS TECNOLOGIAS PARA A...TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14  11 2022 NOVAS TECNOLOGIAS PARA A...
TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14 11 2022 NOVAS TECNOLOGIAS PARA A...MarcondesTiburcio
 
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...MarcondesTiburcio
 
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdf
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdfTÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdf
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdfMarcondesTiburcio
 
TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...
TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...
TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...MarcondesTiburcio
 
A cibercultura e a identidade planetária.pdf
A cibercultura e a identidade planetária.pdfA cibercultura e a identidade planetária.pdf
A cibercultura e a identidade planetária.pdfMarcondesTiburcio
 
TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...
TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...
TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...MarcondesTiburcio
 
AULA-Minha-Voz-nas-Redes_slides.pptx
AULA-Minha-Voz-nas-Redes_slides.pptxAULA-Minha-Voz-nas-Redes_slides.pptx
AULA-Minha-Voz-nas-Redes_slides.pptxMarcondesTiburcio
 

Mais de MarcondesTiburcio (15)

Aula_01_-_A_Era_da_Computacao.pdf
Aula_01_-_A_Era_da_Computacao.pdfAula_01_-_A_Era_da_Computacao.pdf
Aula_01_-_A_Era_da_Computacao.pdf
 
aula 21.pptx
aula 21.pptxaula 21.pptx
aula 21.pptx
 
aula 08.pdf
aula 08.pdfaula 08.pdf
aula 08.pdf
 
aula 04.pdf
aula 04.pdfaula 04.pdf
aula 04.pdf
 
UML1.pdf
UML1.pdfUML1.pdf
UML1.pdf
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdf
 
TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14 11 2022 NOVAS TECNOLOGIAS PARA A...
TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14  11 2022 NOVAS TECNOLOGIAS PARA A...TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14  11 2022 NOVAS TECNOLOGIAS PARA A...
TÉC ADM MANHÃ-TARDE EDUC TECN E MIDIÁTICA14 11 2022 NOVAS TECNOLOGIAS PARA A...
 
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 29 08 2022 DESIGN THINKING E TECNOLOGIAS ...
 
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdf
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdfTÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdf
TÉC ADM MANHÃ EDUC TECN E MIDIÁTICA 05 09 2022 ANÁLISE DE DADOS P1.pdf
 
TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...
TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...
TÉC INFORMÁTICA EDUC TECN E MIDIÁTICA 22 08 2022 SEGURANÇA DA INFORMAÇÃO E PR...
 
APRESENTAÇÃO.pptx
APRESENTAÇÃO.pptxAPRESENTAÇÃO.pptx
APRESENTAÇÃO.pptx
 
template.pptx
template.pptxtemplate.pptx
template.pptx
 
A cibercultura e a identidade planetária.pdf
A cibercultura e a identidade planetária.pdfA cibercultura e a identidade planetária.pdf
A cibercultura e a identidade planetária.pdf
 
TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...
TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...
TÉC EM ADM MANHÃ EDUC TECNOL E MIDIÁTICA 31 05 2022 USO DE TECNOL DIGITAIS DE...
 
AULA-Minha-Voz-nas-Redes_slides.pptx
AULA-Minha-Voz-nas-Redes_slides.pptxAULA-Minha-Voz-nas-Redes_slides.pptx
AULA-Minha-Voz-nas-Redes_slides.pptx
 

Último

Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptxLinoReisLino
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Nova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisasNova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisasraveccavp
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfAlissonMiranda22
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxssuserf54fa01
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdfCD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdfManuais Formação
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 

Último (20)

Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Nova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisasNova BNCC Atualizada para novas pesquisas
Nova BNCC Atualizada para novas pesquisas
 
RedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdfRedacoesComentadasModeloAnalisarFazer.pdf
RedacoesComentadasModeloAnalisarFazer.pdf
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Slide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptxSlide língua portuguesa português 8 ano.pptx
Slide língua portuguesa português 8 ano.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdfCD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 

P2_Aula1-convertido.pptx

  • 1. Introdução a Engenharia de Software Prof. Marcondes CEEP PIO XII
  • 3. Oque é software? • São programas de computadores, em suas diversas formas, e a documentação associada. • Um programa é um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real. • Os produtos de software podem ser desenvolvidos para um cliente em particular ou para o mercado geral. – Genérico (COTS – Commercial Off-The Shelf) – Personalizado – sob encomenda • Software é um produto conceitual e lógico.
  • 4. Características • Invisibilidade – Software é invisível e invisualizável • Complexidade – Software é mais complexo do que qualquer outro produto construídos por seres humanos • Mutabilidade – Existesempreuma pressãopara se fazer mudanças em um software
  • 5. Características • Conformidade – O software deve ser desenvolvido conforme o ambiente. Não é o ambiente que deve se adaptar ao software. – Se o software esta conforme os requisitos (o ambiente) todo o suporte operacional deve se adaptar ao software.
  • 7. Mitos doSoftware • O estabelecimento de objetivos gerais é suficiente para se começar a escrever programas. • Dê a uma pessoa técnica um bom livro de programação e você terá um programador. • Mudanças no software podem ser feitas facilmente porque ele é "flexível". • Até que o programa esteja "rodando" não é possível verificarmos a sua qualidade. • Uma vez que o programa esteja escrito e funcionando, nosso trabalho está feito. • Um projeto é bem sucedido se conseguirmos um programa funcionando corretamente.
  • 8. Histórico • Os primeiros anos (1950 a início dos 60) – Aplicações científicas e de engenharia • A segunda era (1960 a meados de 80) – Aplicações comerciais em grande-porte (sistemas de informação BD) • A terceira era (meados de 70 e década de 80) – Aplicativos pessoais em microcomputadores • A quarta era (meados de 80 a meados de 90) – Aplicativos com Interfaces Gráficas
  • 9. Histórico • A quinta era (de meados de 90 a ???) – Softwar e Intranet s • Sexta era?? Distribuídos, Internet, Groupwares e – Computação Pervasiva, Móvel e Ubíqua
  • 10. Categorias de Tamanho de Softwares • Win 95: teve 11 milhões de linhas e 200 programadores • Nestscape: teve 3 milhões de linhas e 120 programadores
  • 12. Oque é a Engenharia de Software? • É uma disciplina da engenharia dedicada a todos os aspectos da produção de software. • Engenheiros de software abordagem sistemática e devem organizad a adotar uma para o seu trabalho e usar técnicas e ferramentas apropriadas, de acordo com o problema a ser resolvido, e com as restrições e recursos disponíveis.
  • 13. Engenharia • Desenvolvimento de um produto; • Processode desenvolvimentoenvolvendo análise, design, implementação e avaliação; • Baseado em teoria, princípios, modelos, métodos, técnicas e ferramentas; • Equipe de especialistas; • Planejamento e gerenciamento de recursos, custos e prazos.
  • 14. Objetivos da Engenharia deSoftware • Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software. • Aplicação de métodos, técnicas e ferramentas para o gerenciamento do processo de desenvolvimento. • Produção da documentação formal comunicação entre os membros da destinada a equipe d e desenvolvimento bem como aos usuários.
  • 15. Definições de Engenharia deSoftware • O estabelecimento e uso de princípios de engenharia para a produção economicamente viável de software de qualidade que funcione em máquinas reais; • A engenharia de software é a disciplina envolvida com a produção e manutenção sistemática de software que são desenvolvidos com custos e prazos estimados; que aborda a construção de software com muitas • Disciplin a complex o diferente s versões po r partes interconectadas e uma equipe de analistas, projetistas, programadores, gerentes, "testadores", etc.
  • 16. Aspectos históricos • 1968 Conferência da OTAN, Garmisch • Objetivo: resolver a “Crise do Software” • Software é entregue: – Atrasado – Com orçamento estourado – Com falhas residuais • Custo do hardware decrescente e custo do software em ascensão.
  • 17. Qual a diferença entre engenhariade software e engenharia desistemas? • A engenharia de sistemas está interessada em todos os aspectos de um sistema baseado em computador, incluindo hardware, software, fatores humanos, informação e o processo. A engenharia de software é parte dela.
  • 18. Princípios da Engenharia de Software • Todo engenheiro de software deve desenvolver com: – Rigor e Formalidade – Separação de interesses – Modularidade – Abstração – Antecipação de mudanças – Generalidade – Possibilidades de evolução
  • 20. Como transformar necessidades emsoftware? • Principais Atividades Envolvidas: – Entender as necessidades do cliente; – Planejar uma solução; – Implementar e testar a solução; – Entregar a solução. • Como essas atividades são executadas? – De forma desordenada e informal; – Apenas por uma pessoa.
  • 21. Processode Desenvolvimento • O conjunto de atividades de desenvolvimento, sua ordem temporal e a atribuição de responsabilidades (papéis de desenvolvedores) definem um processo de desenvolvimento de software; • Um processo de software é a especificação do processo de transformar necessidades em software; • Ciclo de Vida de um Processo: – Determina as fases do processo; – Define atividades importantes e opcionais para cada fase.
  • 23. Oque são modelos? • Modelos descrevem um determinado sistema, muitas vezes de forma simplificada; • Modelo de um processo de desenvolvimento: – É a especificação (documentada) de um processo de desenvolvimento de software que servirá de parâmetro para uso/especificação de um processo para uma equipe/projeto.
  • 24. Modelos deSoftware • Na construção de sistemas de software, assim como na construção de sistemas habitacionais, também há uma gradação de complexidade: – A construção desses sistemas necessita de um planejamento inicial
  • 25. Modelos deSoftware • Um modelo pode ser visto como uma representação idealizada de um sistema que se planeja construir; • Maquetes de edifícios e de aviões e plantas de circuitos eletrônicos são apenas alguns exemplos de modelos.
  • 26. Razãopara a Construção de Modelos • Em princípio, podemos ver a construção de modelos como uma atividade que atrasa o desenvolvimento do software propriamente dito; • Mas essa atividade propicia... – O gerenciamento da complexidade inerente ao desenvolvimento de software. – A comunicação entre as pessoas envolvidas. – A redução dos custos no desenvolvimento. – A predição do comportamento futuro dosistema. • Entretanto, note o fator complexidade como condicionante dessas vantagens.
  • 27. Diagramas e Documentação • No context o correspondem a desenhos gráficos de desenvolvimento de software, que seguem algum padrão lógico. • Podemos também dizer que um diagrama é uma apresentação de uma coleção de elementos gráficos que possuem um significado predefinido. • Diagramas normalmente são construídos de acordo com regras de notação bem definidas. – Ou seja, cada forma gráfica utilizada em um diagrama de modelagem tem um significado específico.
  • 28. Diagramas e Documentação • Diagramas permitem representação concisa construído. a construçã o de um sistem a de um a a ser – “uma figura vale por milpalavras” No entanto, modelos também são compostos de informações textuais
  • 29. Diagramas e Documentação • Dado um modelo de uma das perspectivas de um sistema, diz-se que o seu diagrama, juntamente com a informação textual associada, formam a documentação deste modelo.
  • 30. Modelagem deSoftware A modelagem de sistemas de software consiste na utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares.
  • 32. Paradigma? • Um paradigma é uma forma de abordar um problema; • No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual esse sistema é entendido, projetado e construído.
  • 33. Paradigma? • A primeira abordagemusada para modelagem de sistemas de software foi o paradigma estruturado.
  • 34. Paradigma da Orientação aObjetos • Hoje em dia, praticamente suplantou o paradigma anterior, o paradigma da orientação aobjetos... • O paradigma da OO surgiu no fim dos anos 60. • Alan Kay, um dos pais desse paradigma, formulou a chamada analogia biológica. • “Como seria um sistema de software que funcionasse como um ser vivo?”
  • 35. Analogia Biológica • Uma “célula” interage com outras células enviando mensagens para realizar um objetivo comum; • Adicionalmente, cada célula se comportaria como uma unidade autônoma; • De uma forma mais geral, Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagem entre si.
  • 36. Fundamentos da OO • Através de sua analogia biológica, Alan Kay definiu os fundamentos da orientação a objetos – Qualquer coisa é um objeto; – Objetos realizam tarefas através da requisição de serviços a outros objetos; – Cada objeto pertence a uma determinada classe. Uma classe agrupa objetos similares; – A classe é um repositório para comportamento associado ao objeto; – Classes são organizadas em hierarquias.
  • 37. Sistema de Software OO:umaanalogia
  • 38. Resumindo • O paradigma d a sistem a de software como uma coleção orientação a objetos visualiza um de agentes interconectados chamados objetos. • Cada objeto é responsável por realizar tarefas específicas. É através da interação entre objetos que uma tarefa complexa é realizada. • Um sistema de software orientado a objetos consiste de objetos em colaboração com o objetivo de realizar as funcionalidades deste sistema. Cada objeto é responsável por tarefas específicas. É através da cooperação entre objetos que a computação do sistema se desenvolve.
  • 39. Conceitos e Princípios de OO • Conceitos: – Classe – Objeto – Mensagem • Princípios: – Encapsulamento – Polimorfismo – Generalização (herança) – Composição
  • 40. Classes,Objetos e Mensagens • O mundo real é formado de coisas; • Na terminologia de orientação a objetos, estas coisas do mundo real são denominadas objetos; • Sereshumanoscostumamagrupar os objetos para entendê-los; • A descrição de um grupo de objetos é denominada classede objetos, ou simplesmente de classe.
  • 41. Oque é uma Classe? • Uma classe é um molde para objetos. Diz-se que um objeto é uma instância de uma classe; • Uma classe é uma abstração das características relevantes de um grupo de coisas do mundo real – Na maioria das vezes, um grupo de objetos do mundo real é muito complexo para que todas as suas características e comportamento sejam representados em uma classe
  • 42. Comodetectar propriedades relevantes? • Uma abstração é qualquer modelo que inclui os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes. • Abstração depende do observador.
  • 43. Abstração emOO • A orientação a objetos faz uso intenso de abstrações – Os princípios da OO podem ser vistos como aplicações da abstração • Princípios da OO:encapsulamento, polimorfismo, herança e composição
  • 44. Objetos como Abstrações • Uma abstração é uma representação das características e do comportamento relevantes de um conceito do mundo real para um determinado problema. • Dependendo do contexto, um mesmo conceito do mundo real pode ser representado por diferentes abstrações: – Carro (para uma transportadora de cargas) – Carro (para uma fábrica de automóveis) – Carro (para um colecionador) – Carro (para uma empresa de kart) – Carro (para um mecânico)
  • 45. Mensagens • Para que um objeto realize alguma tarefa, deve haver um estímulo enviado a este objeto. • Pense em um objeto como uma entidade ativa que representa uma abstração de algo do mundo real – Então faz sentido dizer que tal objeto pode responder a estímulos a ele enviados – Assim como faz sentido dizer que seres vivos reagem a estímulos que eles recebem.
  • 46. Mensagens • Independentemente da origem do estímulo, quando ele ocorre, diz-se que o objeto em questão está recebendo uma mensagem • Uma mensagem é uma requisição enviada de um objeto a outro para que este último realize alguma operação
  • 47. Encapsulamento • Objetos possuem comportamento. – O termo comportamento diz respeito a que operações são realizadas por um objeto e também de que modo estas operações são executadas.
  • 48. Encapsulamento • De acordo com o encapsulamento, objetos devem “esconder” a sua complexidade... • Esse princípio termos de: – Legibilidad e – Clareza – Reuso aumenta qualidade do SSOO, em
  • 49. Encapsulamento • O encapsulamento é uma forma de restringir o acesso ao comportamento interno de um objeto – Um objeto que precise da colaboração de outro para realizar alguma tarefa simplesmente envia uma mensagem a este último; – O método (maneira de fazer) que o objeto requisitado usa para realizar a tarefa não é conhecido dos objetos requisitantes.
  • 50. • Na terminologia da orientação a objetos, diz-se que um objeto possui uma interface – A interface de um objeto é o que ele conhece e o que ele sabe fazer, sem descrever como o objeto conhece ou faz – A interface de um objeto define os serviços que ele pode realizar e conseqüentemente as mensagens que ele recebe
  • 51. Encapsulamento • Uma interface pode ter várias formas de implementação; • Mas, pelo princípio do encapsulamento, a implementação utilizada por um objeto receptor de uma mensagem não importa para um objeto remetente da mesma.
  • 52. Polimorfismo Objeto Recepto r Objeto Recepto r Objeto Remetente (Jogo de Futebol?) É a habilidade de objetos de classes diferentes responderem a mesma mensagem de diferentes maneiras.
  • 53. Generalização (Herança) • A herança pode ser vista como um nível de abstração acima da encontrada entre classes e objetos; • Na herança,classes semelhantes são agrupadas em hierarquias: – Cada nível de uma hierarquia pode ser visto como um nível de abstração – Cada classe em um nível da hierarquia herda as características das classes nos níveis acima
  • 54. Herança • A herança facilita o compartilhamento de comportamento entre classes semelhantes; • As diferenças ou variações de uma classe em particular podem ser organizadas de forma mais clara;
  • 55. Entendido o Paradigma, comocriar modelos? • O rápido crescimento da capacidade computacional das máquinas (lei de moore) resultou na demanda por sistemas de software cada vez mais complexos; • O surgimento de sistemas de software mais complexos resultou na necessidade de reavaliação da forma de desenvolver sistemas; • Conseqüentemente as técnicas utilizadas para a construção de sistemas computacionais têm evoluído de forma impressionante, notavelmente no que tange à modelagem de sistemas.
  • 56. Entendido o Paradigma, comocriar modelos? • Na primeira metade da década de 90 surgiram várias propostas de técnicas para modelagem de sistemas segundo o paradigma orientado a objetos • Houve uma grande proliferação de propostas para modelagem orientada a objetos – diferentes notações gráficas para modelar uma mesma perspectiva de um sistema; – cada técnica tinha seus pontos fortes e fracos.
  • 57. Entendido o Paradigma, comocriar modelos? • Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente; • Alguns esforços nesse sentido de padronização, o principal liderado pelo “três amigos”; • Surge a UML (Unified Modeling Language) em 1996 como a melhor candidata para ser linguagem “unificadora”.
  • 58. UM L
  • 59. UML (Linguagem de Modelagem Unificada) • “A UML é a linguagem padrão para visualizar, especificar, construir e documentar os artefatos de software de um sistema.” • Unificação de diversas notações anteriores • Mentores: Booch, Rumbaugh e Jacobson – “Três Amigos” – IBM Rational (www.rational.com)
  • 60. UML (Linguagem de Modelagem Unificada) • UML é... – uma linguagem visual – independente de linguagem de programação. – independente de processo de desenvolvimento • UML não é... – uma linguagem programação (mas possui versões!) – uma técnica de modelagem
  • 61. Diagramas da UML • Um diagrama na UML é uma apresentação de uma coleção de elementos gráficos que possuem um significado predefinido – No contexto de desenvolvimento de software, correspondem a desenhos gráficos que seguem algum padrão lógico
  • 62. Diagramas da UML • Um processo de desenvolvimento que utilize a UML como linguagem de modelagem envolve a criação de diversos documentos: – Estes documentos, denominados artefatos de software, podem ser textuais ou gráficos • Os artefatos gráficos produzidos no desenvolvimento de um SSOO são definidos através dos diagramas da UML.
  • 63. Referências • JACOBSON, I.; BOOCH, G. and RUMBAUGH, J. The Unified Software Development Process. Readding, MA.: Addison-Wesley, 1999, • LARMAN, C. Utilizando UML e Padrões: uma introdução á análise e ao projeto orientados a objetos e ao Processo Unificado. 2a edição - Porto Alegre: Bookman, 2004. • ALLEIXO, F. Notas de aula da disciplina de Análise e Projeto Orientado a Objeto, CEFET/RN, 2007. • LEITE, J.C. Notas de aula da disciplina de Engenharia de Software, UFRN, 2006.