Escolar Documentos
Profissional Documentos
Cultura Documentos
2021
• Introdução
• Conceitos
• Informação;
• Conhecimento;
• Software;
Introdução a Engenharia de Software • Engenharia de Software;
• Contexto da engenharia de software.
• Aspectos fundamentais sobre a engenharia de software.
• UML
Disciplina: Engenharia de software
Professor: Hertz Wilton de Castro Lins
Engenharia de software 2
1 2
– Relatou uma melhoria de 16,2% para 29% de sucesso. Certos projetos atingiram 62%.
• O que mudou?
3 4
Números Números
Resultados
• O que mudou?
– Análise de riscos
5 6
1
21.06.2021
Objetivos Introdução
– Fundamentos da engenharia de software – Cada vez mais sistemas são controlados por software.
7 8
Introdução Introdução
– É uma disciplina de engenharia, que está preocupada com todos os aspectos – A aplicação de uma abordagem sistemática, disciplinada e quantificável para o
desenvolvimento, operação e manutenção do software. O estudo de abordagens e
da produção software:
princípios a fim de obter economicamente softwares confiáveis e que executem de forma
• Teorias, métodos e ferramentas para desenvolvimento de software
eficiente nas máquinas reais”
profissional.
• Engenheiros de Software
– Devem adotar uma abordagem sistemática e organizada para seu trabalho e – “A construção por múltiplas pessoas de um software de múltiplas versões”
9 10
Conceitos Conceitos
11 12
2
21.06.2021
– Eficiência: Software não deveria fazer desperdício dos recursos do sistema 1990-2000 Sistemas de desktop poderosos
Tecnologia orientada a objeto
(tempo de resposta, tempo de processamento, escalabilidade) Sistemas Especialistas....
– Usabilidade: O software deve ser utilizável pelos utilizadores para o qual foi Inteligência artificial
Computação paralela
concebido (interface e documentação)
2000 até hoje Netbooks, Smartphones.
Web 2.0
Serviços Web
Computação em nuvens
As tecnologias orientadas a objetos
Uso das técnicas de "quarta geração" para o desenvolvimento de software
Engenharia de software 13 Engenharia de software
Os sistemas especialistas e o software de inteligência Artificial 14
13 14
De tempo real Software que monitora, analisa e controla eventos do mundo real
• Elementos • Atividades
Comercial sistemas de operações comerciais e tomadas de decisões administrativas • Modelos de processo • Modelagem do negócio
• Elicitação de requisitos
Científico e de engenharia caracterizado por algoritmos de processamento de números • Linguagens
• Análise e Projeto
• Métodos
Embarcado usado para controlar produtos e sistemas para os mercados industriais e de consumo • Implementação
• Ferramentas • Testes
De computador pessoal Envolve processamento de textos, planilhas eletrônicas, diversões, etc.
• Gestão • Distribuição
De inteligência artificial Resolver problemas complexos que não sejam favoráveis à computação ou à análise • Planejamento
direta
• Gerenciamento
Modelagem e simulação Modelagem de processos, situações físicas • Gerência de Configuração e
Mudanças
Web Páginas web que incorporam instuções executáveis (cgi,
html, java, perl, xml, etc...) e dados. ex.: hipertextos, formatos de áudio, vídeo, • Manutenção
imagens, comércio eletrônico
15 16
– Generalização
• Perfis
– Flexibilização
• Adaptação
17 18
3
21.06.2021
19 20
• Número de funcionalidades
Sistemas legados
- Valiosos sistemas devem ser mantidos e atualizados. • Recursos dentro de cada área funcional
Heterogeneidade • Interfaces para outros sistemas
- Os sistemas são distribuídos e incluem uma combinação de hardware e
software • Usuários simultâneos
Entrega • Volume, tipos e estruturas de dados
- Há uma pressão crescente para a entrega mais rápida de software
Confiança
- Necessidade de desenvolver técnicas que demonstrem que o software
pode ter a confiança dos usuários
Tamanho e complexidade
- Número de funcionalidades
21 22
• Aspectos da E.S.
– Profissional e responsabilidade ética.
Início
• Engenharia de software envolve responsabilidades mais amplas do que
Ação 1 simplesmente a aplicação de competências técnicas.
23 24
4
21.06.2021
• Ciclo de vida
• Exemplos • Áreas de conhecimento
• Segurança da informação
– Propriedade intelectual
25 26
27 28
• Modelo em cascata
• Modelo de ciclo de vida de Software
Requirements
Definição ◼ Resultado de uma fase alimenta a outra
– Uma representação simplificada e abstrata do processo de desenvolvimento De Requisitos
definition ◼ Mais antigo
software, apresentando as principais atividades e dados usados na produção e ◼ Modelado em função do ciclo da engenharia
System
Projeto and
de
convencional
manutenção de software
software design
Sistema e Software
Implementação
– Exemplos Implementation
e teste de Unidade
and unit testing
• Ciclo de Vida Clássico, Prototipação, Modelo Espiral e Técnicas de 4a
Geração Integr ation and
Integração
e teste de sistema
system testing
Operation
Operaçãoand
e
maintenance
Manuntenção
29 30
5
21.06.2021
• Segundo o SWEBOK (Corpo de Conhecimento da Engenharia de Software), as • Ferramentas CASE (Computer-Aided Software Engineering)
áreas de conhecimento da Engenharia de Software são: – Sistemas de Software que se destinam a prestar suporte as atividades do
– Requisitos de Software
processo de software.
– Projeto (Design) de Software
• Especificação • Upper-CASE
– Construção de Software
Ferramentas para apoiar o processo inicial, atividades de requisitos e design (as fases
– Teste de Software
• Desenvolvimento de planejamento, análise e projeto do programa ou aplicação)
– Manutenção de software
• Lower-CASE
– Gerência de Configuração de Software
• Validação Ferramentas para apoiar atividades posteriores, como programação, depuração e
– Gerência de Engenharia de Software
testes (codificação testes e manutenção da aplicação)
– Processos de Engenharia de Software
• Evol/ução
– Ferramentas e Métodos de Engenharia de Software • IDEs
https://www.computer.org/education/bodies-of-knowledge/software-engineering/v3
31 32
• Segurança da informação • Usuários não compram softwares, mas pagam de acordo com o uso.
Contexto
Engenharia de software e
Telecomunicações
33 34
• Atualmente, geralmente se reconhece que é impraticável especificar todos os forma invisível para o usuário
35 36
6
21.06.2021
Links Vídeos
• Netbeans
• Eclipse
• UML
• https://www.linkedin.com/pulse/people-skills-software-engineers-phil-hurd
37 38
Atividades Referências
1. Qual o papel do conhecimento no desenvolvimento de sistemas de software? • SOMMERVILLE, Ian. Engenharia de Software. 9.ed. São Paulo: Pearson, 2001. 552 p.
2. Quais os desafios do desenvolvimento de software • PRESSMAN, Roger S., ENGENHARIA DE SOFTW ARE, uma abordagem prática – 6ª. Ed.
– São Paulo: Pearson, 2007.
39 40