SlideShare une entreprise Scribd logo
1  sur  66
Engenharia de Software Uma visão sobre a essência e aplicabilidade da Engenharia de Software
O que é?  "Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais" Friedrich L. Bauer
O que é? Surgiu em meados 1970 em uma tentativa de contornar a crise do software e dar um tratamento de engenharia ao desenvolvimento de software completos
O que é? A Engenharia de Software se concentra nos aspectos práticos da produção de um sistema de software O próprio significado de “Engenharia” já traz conceitos de criação, construção, análise, desenvolvimento e manutenção
O que é? Os fundamentos científicos envolvem o uso de modelos abstratos e precisos Permite ao Engenheiro de Software especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades
Objetivos Os Objetivos primários são: Aprimoramento da qualidade dos produtos de software; Aumento da produtividade do engenheiro de software; Atendimento aos requisitos da eficácia e da eficiência, ou seja, a efetividade.
Fundamentos Considera-se que a Engenharia de Software é uma área interdisciplinar, baseada nos fundamentos de: Ciências da Computação; Administração de Projetos; Comunicação; Técnicas de Solução de Problemas.
Princípios Além dos fundamentos, alguns princípios ou elementos predominantes deram origem à engenharia de software.
Princípios Os princípios requerem metodologias pertinentes e adequadas aos métodos e ferramentas que incorporam as propriedades desejadas aos processos e aos produtos de software
Princípios Alguns podem ser destacados: Formalidade para evitar a dependência de determinadas pessoas ou processos; Abstração para identificar aspectos importantes de determinado fenômeno;
Princípios Alguns podem ser destacados: Decomposição para subdividir problemas complexos; Generalização para disseminar soluções semelhantes e reutilizar resultados;
Princípios Alguns podem ser destacados: Flexibilização para facilitar eventuais mudanças modulares.
Evolução do Software Durante as três primeiras décadas da era do computador, o principal desafio era desenvolver um hardware que reduzisse o custo de processamento e armazenagem de dados
Evolução do Software
Evolução do Software Hoje o problema é diferente, o principal desafio desta década é melhorar a qualidade (e reduzir custos) de soluções baseadas em computador, que são implementadas com software.
Evolução do Software Na década de 70 e 80 destacaram-se softwares tipo batch, distribuição e uso limitado, multiusuário, em tempo real, banco de dados...
Evolução do Software Atualmente o Software deve ser distribuído, com: “inteligência” embutida; Visuais orientados aos usuários; Modulares; E em redes complexas.
Evolução do Software Modernamente o software deve: Estar com foco no negócio empresarial ou atividade organizacional; Com objetivo de auxiliar os processos de tomada de decisões (estratégicas, táticas ou gerenciais e operacionais).
Evolução do Software Passamos recentemente e ainda estamos em uma forte onda de desenvolvimento de softwares livres
Evolução do Software
Evolução do Software Hoje estamos na era: Da Web 2.0; Computação nas Nuvens (Cloud Computing); SaaS (Softwares as a Service); Novas formas de lucrar (Google AdSense)
Aplicações e tipos de SW O software pode ser aplicado a qualquer situação em que o conjunto previamente especificado de passos procedimentais tiver sido definido
Aplicações e tipos de SW O objetivo e conteúdo de informação são fatores importantes na determinação da natureza de um aplicativo; A palavra conteúdo refere-se ao significado e à forma de informações que entram e saem.
Aplicações e tipos de SW Objetivo refere-se à previsibilidade da ordem e da oportunidade da informação;
Aplicações e tipos de SW Um programa de análise de engenharia:  aceita dados que tem uma ordem predefinida; Executa algoritmos; Produz dados resultantes em relatórios ou gráficos.
Aplicações e tipos de SW As seguintes áreas de software indicam a amplitude das aplicações potenciais: Software básico É uma seleção de programas escritos para dar apoio a outros programas. Software em tempo real Monitora, analisa e controla eventos do mundo real.
Aplicações e tipos de SW Software comercial Processamento de informações comerciais. Software científico e de engenharia Caracterizado por algoritmos de processamento de números.
Aplicações e tipos de SW Softwares embutidos Usado para controlar produtos e sistemas para mercados industriais e de consumo (ex. teclado de microondas). Software de computadores pessoal Processamento de textos, planilhas eletrônicas, entre outros.
Aplicações e tipos de SW Software educativos Tem como objetivo auxiliar o aprendizado de um ou mais temas e contribuindo com a educação geral.
Aplicações e tipos de SW Software de Inteligência Artificial Faz uso de algoritmos não numéricos para resolver problemas complexos que não sejam favoráveis à computação ou à análise direta.
Aplicações e tipos de SW Software Tutores Inteligentes São programas de computadores projetados para incorporar técnicas da comunidade de Inteligência Artificial para prover tutores que conhecem:  “o que” eles ensinam; “a quem” eles ensinam; E “como” devem ensinar.
Aplicações e tipos de SW Software de Gestão Empresarial Softwares que integram todas as funções organizacionais na empresa, contendo bases de dados únicas, manipulando e gerenciando informações operacionais e gerenciais para toda a organização
Aplicações e tipos de SW Software SIG – Sistema de Informações Gerenciais Fornecem informações para tomada de decisões, no sentido piramidal.
Aplicações e tipos de SW Software SAD – Sistema de Apoio a Decisões Por meio de tecnologias de sistemas gerenciadores de banco de dados e respectivas ferramentas, fornecem diversas informações para serem utilizadas pelo seus usuários.
Aplicações e tipos de SW Software EIS – Executive Information System Software de consulta a base de dados para apresentação de informações de forma simples e amigável, atendendo às necessidades dos executivos de alto nível, permitindo o acompanhamento diário de resultados para depois exibi-los de forma objetiva, simplificada e gráfica.
Mas, quais são esses softwares nas empresas?
Integrações dos Softwares de Gestão... E-Commerce Portal do Executivo Workflow Business Inteligence Módulo de Contabilidade Módulo de Compras Módulo de Embarque ERP Customer Relationship Management Supply  Chain Management Módulo de Produção Módulo de Vendas Módulo Financeiro Base de Dados Sistema Operacional Redes e Telecomunicações Hardware
Engenheiro de Software Pode-se chamar de Engenheiro de Software todo profissional da área de informática ou ciência da computação que desenvolve soluções profissionais utilizando-se dos recursos de software, observando os padrões requeridos de qualidade, produtividade e efetividade.
Engenheiro de Software Também chamado de Gestor de Projetos de Software e Sistemas, uma vez que congrega nas suas funções as atividades e as gestões de pessoas, atividade e recursos diversos.
Engenheiro de Software Conhecimentos úteis: Linguagens de programação; Análise de sistemas; Ambientes de tecnologia; Planejamento e controle de processos;
Engenheiro de Software Conhecimentos úteis: Linguagem UML (Unified Modeling Language); Recomendável também conhecimento em planejamento administrativo.
Engenheiro de Software O engenheiro também é um Gestor; O gestor deve sempre ter clara a visão da abordagem sociotécnica e da teoria geral dos sistemas.
Engenheiro de Software
Fluxo de desenvolvimento de software criado pelo Engenheiro de Software Fim Busca de requisitos, necessidades dos negócios Fazer  Plano Transição (roll-out) Início Necessidades dos negócios 1 Analista de Negócios Usuários Chaves Sim Produzir Fluxo do Processo Especificação das  Regras de Negócios Aprovado? Não 2 Apresentação dos Documentos (processo/Regras de Negócios) para Validação Usuários Chaves Validação das Regras Usuários Chaves Analista de Sistemas Regras de Negócios estão corretas? Homologação Não 3 Sim Especificação das  Regras de Negócios Testes Internos 4 Regras de Negócios Analista de Sistemas Desenvolvedor Analista de Sistemas
Em suma... ... com a formalização... ... evita-se problemas .... comunicação... ... ajuda na transferência de conhecimento .... ... maior foco no negócio  ...
Áreas de Conhecimento Segundo o SWEBOK: Requisitos de Software; Modelagem de dados; Projetos (Design de Software); Implementação de Software; Teste de Software; Manutenção de Software; Qualidade de Software. Corpo de Conhecimento da Engenharia de Software
Modelos de Processos de Software Pode ser visto como uma representação, ou abstração dos objetos e atividades envolvidas no processo de software;
Modelos de Processos de Software Oferece de forma mais abrangente e fácil de representar o gerenciamento de processo de software e conseqüentemente o progresso do projeto.
Modelos de Processos de Software Exemplos: Modelos de ciclo de vida; Seqüencial ou cascata; Espiral; Componentizado; ...
Modelos de Processos de Software Modelo de Atividades Modelo em Cascata
Modelo Integrado de Maturidade de Capacidade Modelos de Maturidade Surgiu para avaliar a qualidade dos processos de software aplicados em uma organização; Mais conhecido como Capability Maturity Model Integration (CMMi), do Software Engineering Institute - SEI
Modelos de Maturidade Uma organização pode ter sua maturidade medida em 5 níveis: Nível 1 – Caótico; Nível 2 – Capacidade de reproduzir sucessos anteriores; Nível 3 – Processo bem definido, documentado e padronizado; Nível 4 – Gerência quantitativa do processo de software e produto; Nível 5 – Melhoria contínua e gerencia o processo de software.
Modelos de Maturidade No Brasil temos o MPS.BR, ou Modelo de Processos de Software Brasileiro, é simultaneamente um movimento para a melhoria e um modelo de qualidade de processo voltada para a realidade do mercado de pequenas e médias empresas de desenvolvimento no Brasil.
Metodologias e Métodos A escolha consciente e a adoção disciplinada de notações, ferramentas e métodos apropriados para cada uma dessas atividades devem resultar de uma técnica de solução de problemas aplicada ao ambiente de desenvolvimento de software.
Metodologias e Métodos Algumas Metodologias... Metodologia estruturada; Metodologia Orientada a Objeto; Orientação a Objetos, Rational Unified Process (RUP); Desenvolvimento Ágil de Software Scrum, Programação Extrema (XP).
Ciclo de Desenvolvimento O ciclo de desenvolvimento pode indicar as seguintes etapas: Estudo de viabilidade Identificar as deficiências atuais; Estabelecer objetivos do novo sistema; Gerar cenários aceitáveis; Preparar encargos de projetos.
Ciclo de Desenvolvimento Análise de Sistemas Desenvolver o modelo ambiental; Desenvolver o modelo comportamental; Estabelecer os limites homem-máquina; Executar a análise custo benefício; Restringir o sistema; Especificar o pacote.
Ciclo de Desenvolvimento Projeto Alocar especificações para os processadores; Alocar especificações para as tarefas; Projetar módulos; Projetar banco de dados; Empacotamento do projeto.
Ciclo de Desenvolvimento Implementação Solucionar próximo módulo; Codificar módulo; Testar o esqueleto do sistema.
Ciclo de Desenvolvimento Geração do teste do aceite Gerar plano de teste; Preparar testes de performance; Preparar testes de vias normais; Preparar testes de vias de erros.
Ciclo de Desenvolvimento Garantia da Qualidade Teste final ou teste de aceite, comparando ao projeto de implantação.
Ciclo de Desenvolvimento Descrição de procedimentos Descrição das atividades operacionais do cliente ou usuário normalmente correspondente ao manual do usuário.
Ciclo de Desenvolvimento Conversão de banco de dados Pode ou não ser uma atividade complexa, existe casos que não há necessidade de se fazer conversões de bando de dados.
Ciclo de Desenvolvimento Instalação Atividade final, suas entradas são o manual do usuário, o banco de dados convertido e o sistema de aceite.
Bibliografia
Felipe Goulart flpgoulart@gmail.com Obrigado!!!

Contenu connexe

Tendances

Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0César Augusto Pessôa
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebDaniel Brandão
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobileDaniel Brandão
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Pacc UAB
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 

Tendances (20)

Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
02 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.002 - A evolução do Microsoft Windows - v1.0
02 - A evolução do Microsoft Windows - v1.0
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobile
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
UML
UMLUML
UML
 
Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1Aula 2 - Introdução à programação de computadores - parte1
Aula 2 - Introdução à programação de computadores - parte1
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

En vedette

Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de softwareYuri Garcia
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareRobson Silva Espig
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Fernando Palma
 
Apostila Mecânica 'Calor' 'Ondas' - Física - Engenharia Civil
Apostila Mecânica 'Calor' 'Ondas' - Física - Engenharia CivilApostila Mecânica 'Calor' 'Ondas' - Física - Engenharia Civil
Apostila Mecânica 'Calor' 'Ondas' - Física - Engenharia CivilAna Carolline Pereira
 
Engenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
Engenharia de Software - Introdução à Ciências da Computação - Engenharia CivilEngenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
Engenharia de Software - Introdução à Ciências da Computação - Engenharia CivilAna Carolline Pereira
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do softwareIvan Ricarte
 
Como a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científicaComo a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científicaAislan Fernandes
 
Capitulo 03 tipos de sistemas de informações
Capitulo 03   tipos de sistemas de informaçõesCapitulo 03   tipos de sistemas de informações
Capitulo 03 tipos de sistemas de informaçõesLuciano Morato
 
Atitudes ágeis nas fases de um projeto de software - 2013
Atitudes ágeis nas fases de um projeto de software - 2013Atitudes ágeis nas fases de um projeto de software - 2013
Atitudes ágeis nas fases de um projeto de software - 2013Gustavo Piccin
 
Evolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de SoftwareEvolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de SoftwareEduardo Mendes
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareEduardo Santos
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...Janynne Gomes
 

En vedette (20)

Modelos de ciclo de vida de software
Modelos de ciclo de vida de softwareModelos de ciclo de vida de software
Modelos de ciclo de vida de software
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
 
Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1Validação e Testes de Software - MOD1
Validação e Testes de Software - MOD1
 
Apostila Mecânica 'Calor' 'Ondas' - Física - Engenharia Civil
Apostila Mecânica 'Calor' 'Ondas' - Física - Engenharia CivilApostila Mecânica 'Calor' 'Ondas' - Física - Engenharia Civil
Apostila Mecânica 'Calor' 'Ondas' - Física - Engenharia Civil
 
Engenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
Engenharia de Software - Introdução à Ciências da Computação - Engenharia CivilEngenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
Engenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
 
Problemas no desenvolvimento do software
Problemas no desenvolvimento do softwareProblemas no desenvolvimento do software
Problemas no desenvolvimento do software
 
Como a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científicaComo a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científica
 
Capitulo 03 tipos de sistemas de informações
Capitulo 03   tipos de sistemas de informaçõesCapitulo 03   tipos de sistemas de informações
Capitulo 03 tipos de sistemas de informações
 
Atitudes ágeis nas fases de um projeto de software - 2013
Atitudes ágeis nas fases de um projeto de software - 2013Atitudes ágeis nas fases de um projeto de software - 2013
Atitudes ágeis nas fases de um projeto de software - 2013
 
Software
Software Software
Software
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Evolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de SoftwareEvolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de Software
 
Projeto de software
Projeto de softwareProjeto de software
Projeto de software
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Lista de Eventos
Lista de EventosLista de Eventos
Lista de Eventos
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
 

Similaire à Engenharia De Software

Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introduçãomiroslayer
 
modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3spawally
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - WikipediaRobson Silva Espig
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentaisWaldemar Roberti
 
Princípios de Sistemas de Informação Unidade II Unip
 Princípios de Sistemas de Informação Unidade II Unip  Princípios de Sistemas de Informação Unidade II Unip
Princípios de Sistemas de Informação Unidade II Unip Heber Gutenberg
 
Introdução a informática: do Windows ao Excel
Introdução a informática: do Windows ao ExcelIntrodução a informática: do Windows ao Excel
Introdução a informática: do Windows ao Excelmalviana1
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialAlexandre Leão
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SWAula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SWRogerio P C do Nascimento
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdfPedro Alcantara
 

Similaire à Engenharia De Software (20)

152191 11993
152191 11993152191 11993
152191 11993
 
Sld 3
Sld 3Sld 3
Sld 3
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
 
modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3
 
Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - Wikipedia
 
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
 
Princípios de Sistemas de Informação Unidade II Unip
 Princípios de Sistemas de Informação Unidade II Unip  Princípios de Sistemas de Informação Unidade II Unip
Princípios de Sistemas de Informação Unidade II Unip
 
Introdução a informática: do Windows ao Excel
Introdução a informática: do Windows ao ExcelIntrodução a informática: do Windows ao Excel
Introdução a informática: do Windows ao Excel
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Aula 02
Aula 02Aula 02
Aula 02
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Tutorial Visio Modelagem de Processos
Tutorial Visio Modelagem de ProcessosTutorial Visio Modelagem de Processos
Tutorial Visio Modelagem de Processos
 
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SWAula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
Aula2 TEES UFS: Fases de Engenharia de SW e Gestão de Projectos de SW
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Agilidade em projetos de software
Agilidade em projetos de softwareAgilidade em projetos de software
Agilidade em projetos de software
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
 

Plus de Felipe Goulart

Qualidade ao alcance de todos
Qualidade ao alcance de todosQualidade ao alcance de todos
Qualidade ao alcance de todosFelipe Goulart
 
Utilizando o Wiziq nas Palestras On-Line
Utilizando o Wiziq nas Palestras On-LineUtilizando o Wiziq nas Palestras On-Line
Utilizando o Wiziq nas Palestras On-LineFelipe Goulart
 
Tendências da Qualidade e Meio Ambiente para Próxima Década
Tendências da Qualidade e Meio Ambiente para Próxima DécadaTendências da Qualidade e Meio Ambiente para Próxima Década
Tendências da Qualidade e Meio Ambiente para Próxima DécadaFelipe Goulart
 
Paineis de Indicadores nos Processos Fabris
Paineis de Indicadores nos Processos FabrisPaineis de Indicadores nos Processos Fabris
Paineis de Indicadores nos Processos FabrisFelipe Goulart
 
Passo a passo para definir Indicadores
Passo a passo para definir IndicadoresPasso a passo para definir Indicadores
Passo a passo para definir IndicadoresFelipe Goulart
 
Qualidade x Perda de Receita
Qualidade x Perda de ReceitaQualidade x Perda de Receita
Qualidade x Perda de ReceitaFelipe Goulart
 
Alta Eficiência nos Hotéis
Alta Eficiência nos HotéisAlta Eficiência nos Hotéis
Alta Eficiência nos HotéisFelipe Goulart
 
Assessoria e consultoria
Assessoria e consultoriaAssessoria e consultoria
Assessoria e consultoriaFelipe Goulart
 
Gestão da Qualidade na Hotelaria
Gestão da Qualidade na HotelariaGestão da Qualidade na Hotelaria
Gestão da Qualidade na HotelariaFelipe Goulart
 
BossControl na Gestão Industrial
BossControl na Gestão Industrial BossControl na Gestão Industrial
BossControl na Gestão Industrial Felipe Goulart
 
Apresentação Institucional | KMG Solutions
Apresentação Institucional | KMG SolutionsApresentação Institucional | KMG Solutions
Apresentação Institucional | KMG SolutionsFelipe Goulart
 
BossControl na Gestão de Laboratórios
BossControl na Gestão de LaboratóriosBossControl na Gestão de Laboratórios
BossControl na Gestão de LaboratóriosFelipe Goulart
 
Treinamento Oracle Forms
Treinamento Oracle FormsTreinamento Oracle Forms
Treinamento Oracle FormsFelipe Goulart
 
Apresentação Six Sigmas
Apresentação Six SigmasApresentação Six Sigmas
Apresentação Six SigmasFelipe Goulart
 
Estudo de Caso - Sesame Workshop
Estudo de Caso - Sesame WorkshopEstudo de Caso - Sesame Workshop
Estudo de Caso - Sesame WorkshopFelipe Goulart
 
Gestão Da Informação
Gestão Da InformaçãoGestão Da Informação
Gestão Da InformaçãoFelipe Goulart
 

Plus de Felipe Goulart (20)

Liderança em TI
Liderança em TILiderança em TI
Liderança em TI
 
Choque de Realidade
Choque de RealidadeChoque de Realidade
Choque de Realidade
 
Apresentando TCC
Apresentando TCCApresentando TCC
Apresentando TCC
 
Qualidade ao alcance de todos
Qualidade ao alcance de todosQualidade ao alcance de todos
Qualidade ao alcance de todos
 
Utilizando o Wiziq nas Palestras On-Line
Utilizando o Wiziq nas Palestras On-LineUtilizando o Wiziq nas Palestras On-Line
Utilizando o Wiziq nas Palestras On-Line
 
Tendências da Qualidade e Meio Ambiente para Próxima Década
Tendências da Qualidade e Meio Ambiente para Próxima DécadaTendências da Qualidade e Meio Ambiente para Próxima Década
Tendências da Qualidade e Meio Ambiente para Próxima Década
 
Paineis de Indicadores nos Processos Fabris
Paineis de Indicadores nos Processos FabrisPaineis de Indicadores nos Processos Fabris
Paineis de Indicadores nos Processos Fabris
 
Passo a passo para definir Indicadores
Passo a passo para definir IndicadoresPasso a passo para definir Indicadores
Passo a passo para definir Indicadores
 
Qualidade x Perda de Receita
Qualidade x Perda de ReceitaQualidade x Perda de Receita
Qualidade x Perda de Receita
 
Alta Eficiência nos Hotéis
Alta Eficiência nos HotéisAlta Eficiência nos Hotéis
Alta Eficiência nos Hotéis
 
Assessoria e consultoria
Assessoria e consultoriaAssessoria e consultoria
Assessoria e consultoria
 
Software BossControl
Software BossControlSoftware BossControl
Software BossControl
 
Gestão da Qualidade na Hotelaria
Gestão da Qualidade na HotelariaGestão da Qualidade na Hotelaria
Gestão da Qualidade na Hotelaria
 
BossControl na Gestão Industrial
BossControl na Gestão Industrial BossControl na Gestão Industrial
BossControl na Gestão Industrial
 
Apresentação Institucional | KMG Solutions
Apresentação Institucional | KMG SolutionsApresentação Institucional | KMG Solutions
Apresentação Institucional | KMG Solutions
 
BossControl na Gestão de Laboratórios
BossControl na Gestão de LaboratóriosBossControl na Gestão de Laboratórios
BossControl na Gestão de Laboratórios
 
Treinamento Oracle Forms
Treinamento Oracle FormsTreinamento Oracle Forms
Treinamento Oracle Forms
 
Apresentação Six Sigmas
Apresentação Six SigmasApresentação Six Sigmas
Apresentação Six Sigmas
 
Estudo de Caso - Sesame Workshop
Estudo de Caso - Sesame WorkshopEstudo de Caso - Sesame Workshop
Estudo de Caso - Sesame Workshop
 
Gestão Da Informação
Gestão Da InformaçãoGestão Da Informação
Gestão Da Informação
 

Engenharia De Software

  • 1. Engenharia de Software Uma visão sobre a essência e aplicabilidade da Engenharia de Software
  • 2. O que é?  "Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais" Friedrich L. Bauer
  • 3. O que é? Surgiu em meados 1970 em uma tentativa de contornar a crise do software e dar um tratamento de engenharia ao desenvolvimento de software completos
  • 4. O que é? A Engenharia de Software se concentra nos aspectos práticos da produção de um sistema de software O próprio significado de “Engenharia” já traz conceitos de criação, construção, análise, desenvolvimento e manutenção
  • 5. O que é? Os fundamentos científicos envolvem o uso de modelos abstratos e precisos Permite ao Engenheiro de Software especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades
  • 6. Objetivos Os Objetivos primários são: Aprimoramento da qualidade dos produtos de software; Aumento da produtividade do engenheiro de software; Atendimento aos requisitos da eficácia e da eficiência, ou seja, a efetividade.
  • 7. Fundamentos Considera-se que a Engenharia de Software é uma área interdisciplinar, baseada nos fundamentos de: Ciências da Computação; Administração de Projetos; Comunicação; Técnicas de Solução de Problemas.
  • 8. Princípios Além dos fundamentos, alguns princípios ou elementos predominantes deram origem à engenharia de software.
  • 9. Princípios Os princípios requerem metodologias pertinentes e adequadas aos métodos e ferramentas que incorporam as propriedades desejadas aos processos e aos produtos de software
  • 10. Princípios Alguns podem ser destacados: Formalidade para evitar a dependência de determinadas pessoas ou processos; Abstração para identificar aspectos importantes de determinado fenômeno;
  • 11. Princípios Alguns podem ser destacados: Decomposição para subdividir problemas complexos; Generalização para disseminar soluções semelhantes e reutilizar resultados;
  • 12. Princípios Alguns podem ser destacados: Flexibilização para facilitar eventuais mudanças modulares.
  • 13. Evolução do Software Durante as três primeiras décadas da era do computador, o principal desafio era desenvolver um hardware que reduzisse o custo de processamento e armazenagem de dados
  • 15. Evolução do Software Hoje o problema é diferente, o principal desafio desta década é melhorar a qualidade (e reduzir custos) de soluções baseadas em computador, que são implementadas com software.
  • 16. Evolução do Software Na década de 70 e 80 destacaram-se softwares tipo batch, distribuição e uso limitado, multiusuário, em tempo real, banco de dados...
  • 17. Evolução do Software Atualmente o Software deve ser distribuído, com: “inteligência” embutida; Visuais orientados aos usuários; Modulares; E em redes complexas.
  • 18. Evolução do Software Modernamente o software deve: Estar com foco no negócio empresarial ou atividade organizacional; Com objetivo de auxiliar os processos de tomada de decisões (estratégicas, táticas ou gerenciais e operacionais).
  • 19. Evolução do Software Passamos recentemente e ainda estamos em uma forte onda de desenvolvimento de softwares livres
  • 21. Evolução do Software Hoje estamos na era: Da Web 2.0; Computação nas Nuvens (Cloud Computing); SaaS (Softwares as a Service); Novas formas de lucrar (Google AdSense)
  • 22. Aplicações e tipos de SW O software pode ser aplicado a qualquer situação em que o conjunto previamente especificado de passos procedimentais tiver sido definido
  • 23. Aplicações e tipos de SW O objetivo e conteúdo de informação são fatores importantes na determinação da natureza de um aplicativo; A palavra conteúdo refere-se ao significado e à forma de informações que entram e saem.
  • 24. Aplicações e tipos de SW Objetivo refere-se à previsibilidade da ordem e da oportunidade da informação;
  • 25. Aplicações e tipos de SW Um programa de análise de engenharia: aceita dados que tem uma ordem predefinida; Executa algoritmos; Produz dados resultantes em relatórios ou gráficos.
  • 26. Aplicações e tipos de SW As seguintes áreas de software indicam a amplitude das aplicações potenciais: Software básico É uma seleção de programas escritos para dar apoio a outros programas. Software em tempo real Monitora, analisa e controla eventos do mundo real.
  • 27. Aplicações e tipos de SW Software comercial Processamento de informações comerciais. Software científico e de engenharia Caracterizado por algoritmos de processamento de números.
  • 28. Aplicações e tipos de SW Softwares embutidos Usado para controlar produtos e sistemas para mercados industriais e de consumo (ex. teclado de microondas). Software de computadores pessoal Processamento de textos, planilhas eletrônicas, entre outros.
  • 29. Aplicações e tipos de SW Software educativos Tem como objetivo auxiliar o aprendizado de um ou mais temas e contribuindo com a educação geral.
  • 30. Aplicações e tipos de SW Software de Inteligência Artificial Faz uso de algoritmos não numéricos para resolver problemas complexos que não sejam favoráveis à computação ou à análise direta.
  • 31. Aplicações e tipos de SW Software Tutores Inteligentes São programas de computadores projetados para incorporar técnicas da comunidade de Inteligência Artificial para prover tutores que conhecem: “o que” eles ensinam; “a quem” eles ensinam; E “como” devem ensinar.
  • 32. Aplicações e tipos de SW Software de Gestão Empresarial Softwares que integram todas as funções organizacionais na empresa, contendo bases de dados únicas, manipulando e gerenciando informações operacionais e gerenciais para toda a organização
  • 33. Aplicações e tipos de SW Software SIG – Sistema de Informações Gerenciais Fornecem informações para tomada de decisões, no sentido piramidal.
  • 34. Aplicações e tipos de SW Software SAD – Sistema de Apoio a Decisões Por meio de tecnologias de sistemas gerenciadores de banco de dados e respectivas ferramentas, fornecem diversas informações para serem utilizadas pelo seus usuários.
  • 35. Aplicações e tipos de SW Software EIS – Executive Information System Software de consulta a base de dados para apresentação de informações de forma simples e amigável, atendendo às necessidades dos executivos de alto nível, permitindo o acompanhamento diário de resultados para depois exibi-los de forma objetiva, simplificada e gráfica.
  • 36. Mas, quais são esses softwares nas empresas?
  • 37. Integrações dos Softwares de Gestão... E-Commerce Portal do Executivo Workflow Business Inteligence Módulo de Contabilidade Módulo de Compras Módulo de Embarque ERP Customer Relationship Management Supply Chain Management Módulo de Produção Módulo de Vendas Módulo Financeiro Base de Dados Sistema Operacional Redes e Telecomunicações Hardware
  • 38. Engenheiro de Software Pode-se chamar de Engenheiro de Software todo profissional da área de informática ou ciência da computação que desenvolve soluções profissionais utilizando-se dos recursos de software, observando os padrões requeridos de qualidade, produtividade e efetividade.
  • 39. Engenheiro de Software Também chamado de Gestor de Projetos de Software e Sistemas, uma vez que congrega nas suas funções as atividades e as gestões de pessoas, atividade e recursos diversos.
  • 40. Engenheiro de Software Conhecimentos úteis: Linguagens de programação; Análise de sistemas; Ambientes de tecnologia; Planejamento e controle de processos;
  • 41. Engenheiro de Software Conhecimentos úteis: Linguagem UML (Unified Modeling Language); Recomendável também conhecimento em planejamento administrativo.
  • 42. Engenheiro de Software O engenheiro também é um Gestor; O gestor deve sempre ter clara a visão da abordagem sociotécnica e da teoria geral dos sistemas.
  • 44. Fluxo de desenvolvimento de software criado pelo Engenheiro de Software Fim Busca de requisitos, necessidades dos negócios Fazer Plano Transição (roll-out) Início Necessidades dos negócios 1 Analista de Negócios Usuários Chaves Sim Produzir Fluxo do Processo Especificação das Regras de Negócios Aprovado? Não 2 Apresentação dos Documentos (processo/Regras de Negócios) para Validação Usuários Chaves Validação das Regras Usuários Chaves Analista de Sistemas Regras de Negócios estão corretas? Homologação Não 3 Sim Especificação das Regras de Negócios Testes Internos 4 Regras de Negócios Analista de Sistemas Desenvolvedor Analista de Sistemas
  • 45. Em suma... ... com a formalização... ... evita-se problemas .... comunicação... ... ajuda na transferência de conhecimento .... ... maior foco no negócio ...
  • 46. Áreas de Conhecimento Segundo o SWEBOK: Requisitos de Software; Modelagem de dados; Projetos (Design de Software); Implementação de Software; Teste de Software; Manutenção de Software; Qualidade de Software. Corpo de Conhecimento da Engenharia de Software
  • 47. Modelos de Processos de Software Pode ser visto como uma representação, ou abstração dos objetos e atividades envolvidas no processo de software;
  • 48. Modelos de Processos de Software Oferece de forma mais abrangente e fácil de representar o gerenciamento de processo de software e conseqüentemente o progresso do projeto.
  • 49. Modelos de Processos de Software Exemplos: Modelos de ciclo de vida; Seqüencial ou cascata; Espiral; Componentizado; ...
  • 50. Modelos de Processos de Software Modelo de Atividades Modelo em Cascata
  • 51. Modelo Integrado de Maturidade de Capacidade Modelos de Maturidade Surgiu para avaliar a qualidade dos processos de software aplicados em uma organização; Mais conhecido como Capability Maturity Model Integration (CMMi), do Software Engineering Institute - SEI
  • 52. Modelos de Maturidade Uma organização pode ter sua maturidade medida em 5 níveis: Nível 1 – Caótico; Nível 2 – Capacidade de reproduzir sucessos anteriores; Nível 3 – Processo bem definido, documentado e padronizado; Nível 4 – Gerência quantitativa do processo de software e produto; Nível 5 – Melhoria contínua e gerencia o processo de software.
  • 53. Modelos de Maturidade No Brasil temos o MPS.BR, ou Modelo de Processos de Software Brasileiro, é simultaneamente um movimento para a melhoria e um modelo de qualidade de processo voltada para a realidade do mercado de pequenas e médias empresas de desenvolvimento no Brasil.
  • 54. Metodologias e Métodos A escolha consciente e a adoção disciplinada de notações, ferramentas e métodos apropriados para cada uma dessas atividades devem resultar de uma técnica de solução de problemas aplicada ao ambiente de desenvolvimento de software.
  • 55. Metodologias e Métodos Algumas Metodologias... Metodologia estruturada; Metodologia Orientada a Objeto; Orientação a Objetos, Rational Unified Process (RUP); Desenvolvimento Ágil de Software Scrum, Programação Extrema (XP).
  • 56. Ciclo de Desenvolvimento O ciclo de desenvolvimento pode indicar as seguintes etapas: Estudo de viabilidade Identificar as deficiências atuais; Estabelecer objetivos do novo sistema; Gerar cenários aceitáveis; Preparar encargos de projetos.
  • 57. Ciclo de Desenvolvimento Análise de Sistemas Desenvolver o modelo ambiental; Desenvolver o modelo comportamental; Estabelecer os limites homem-máquina; Executar a análise custo benefício; Restringir o sistema; Especificar o pacote.
  • 58. Ciclo de Desenvolvimento Projeto Alocar especificações para os processadores; Alocar especificações para as tarefas; Projetar módulos; Projetar banco de dados; Empacotamento do projeto.
  • 59. Ciclo de Desenvolvimento Implementação Solucionar próximo módulo; Codificar módulo; Testar o esqueleto do sistema.
  • 60. Ciclo de Desenvolvimento Geração do teste do aceite Gerar plano de teste; Preparar testes de performance; Preparar testes de vias normais; Preparar testes de vias de erros.
  • 61. Ciclo de Desenvolvimento Garantia da Qualidade Teste final ou teste de aceite, comparando ao projeto de implantação.
  • 62. Ciclo de Desenvolvimento Descrição de procedimentos Descrição das atividades operacionais do cliente ou usuário normalmente correspondente ao manual do usuário.
  • 63. Ciclo de Desenvolvimento Conversão de banco de dados Pode ou não ser uma atividade complexa, existe casos que não há necessidade de se fazer conversões de bando de dados.
  • 64. Ciclo de Desenvolvimento Instalação Atividade final, suas entradas são o manual do usuário, o banco de dados convertido e o sistema de aceite.