SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
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
– Existe sempre uma pressão para 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
– Redes e Arquitetura Cliente-Servidor
Histórico
• A quinta era (de meados de 90 a ???)
– Software
Intranets
• 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
organizada
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;
• Processo de desenvolvimento envolvendo 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 de
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
• Disciplina
complexo
diferentes versões por
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.
Modelagem
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 contexto
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 sistema
de uma
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.
Paradigmas
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 abordagem usada 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 da
sistema 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;
• Seres humanos costumam agrupar 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:
– Legibilidade
– 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
Receptor
Objeto
Receptor
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”.
UML
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.

Contenu connexe

Similaire à Aula1.pdf

Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
Nécio de Lima Veras
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
wilsonguns
 
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
Marcelo Avila
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Amyris Fernandez
 
IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08
Gilson Silva
 

Similaire à Aula1.pdf (20)

Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
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
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
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
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
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
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMG
 
00 apresentacao
00   apresentacao00   apresentacao
00 apresentacao
 
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
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9Procura-se: DevOps #cpbr9
Procura-se: DevOps #cpbr9
 
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
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
 
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
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08
 

Plus de MarcondesTiburcio

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.pdf
MarcondesTiburcio
 
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.pdf
MarcondesTiburcio
 
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
 

Plus 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
 

Dernier

ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
azulassessoria9
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
LidianeLill2
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 

Dernier (20)

Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 

Aula1.pdf

  • 1. Introdução a Engenharia de Software Prof. Marcondes CEEP PIO XII
  • 2. O que é Software?
  • 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 – Existe sempre uma pressão para 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 – Redes e Arquitetura Cliente-Servidor
  • 9. Histórico • A quinta era (de meados de 90 a ???) – Software Intranets • 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 organizada 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; • Processo de desenvolvimento envolvendo 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 de 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 • Disciplina complexo diferentes versões por 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 contexto 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 sistema de uma 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 abordagem usada 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 da sistema 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; • Seres humanos costumam agrupar 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: – Legibilidade – 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 Receptor Objeto Receptor 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. UML
  • 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.