Prévia do material em texto
Engenharia de Software
Ciência da Computação
Sistemas de Informação
Profa. Me Monica Tissiani De Toni Pereira
Prof. Me Radamés Pereira
Engenharia de Software
Processo de Software:
É um conjunto de atividades relacionadas que levam à produção de um sistema de
software.
Atividades fundamentais:
•Especificação – funcionalidade e restrições.
•Desenvolvimento – deve atender a especificação.
•Validação – atender ao que o cliente espera do software.
•Evolução – deve evoluir para atender as mudanças necessárias.
• Incluem:
Validação dos requisitos
Projeto de arquitetura
Testes de unidade
Outros ...
Engenharia de Software
Modelos de genéricos de processos de software:
SDLC – Software Development Life Cycle
• Cascata – apresenta o processo em fases distintas.
• Desenvolvimento incremental – adiciona novas funcionalidades a versão anterior do
software.
• Integração e Configuração – é baseado em módulos ou sistemas já existentes que
podem ser reutilizados, integrados e configurados de acordo com a necessidade do
cliente.
Engenharia de Software
Modelo em Cascata
Processo dirigido por plano
• Planejamento
• Cronograma
Devem estar definidos
antes do
desenvolvimento
Engenharia de Software
Modelo em Cascata (Ciclo de vida do Software)
Engenharia de Software
Modelo em Cascata
• Análise e definição dos requisitos.
• Funcionalidades
• Restrições
• Metas
• Projeto do Sistema e do Software
• Identificação dos requisitos de sistema e de software
• Estabelece a arquitetura do sistema
Engenharia de Software
Arquitetura de um sistema
Projeto Inova
Universidade Federal de
Santa Maria
Engenharia de Software
Arquitetura de um sistema
Serviços:
Login
Catálogo de Compras
Pedido
Pagamento
Engenharia de Software
Arquitetura de um sistema
Universidade Comunitária da
Região de Chapecó - LTS
Engenharia de Software
Implementação e teste de unidade:
• O software é desenvolvido em módulos. Estes programas são testados
individualmente a fim de verificar se atente a funcionalidade esperada.
Integração e teste de sistema:
• Os módulos são integrados e testados em conjunto, de forma a verificar se o software
atende aos requisitos determinados.
Operação e manutenção:
• Manutenção – corrigir os erros que não foram encontrados nas primeiras fases do
ciclo de vida do software.
• Aperfeiçoar o sistema a partir de novos requisitos definidos.
Engenharia de Software
Modelo em Cascata - não aplicar quando:
• Os requisitos do software mudam rapidamente.
• A comunicação informal do time é possível.
• Quando requisitos de software mudam rapidamente, os métodos ágeis se
aplicam.
Ian Sommerville (2018) – pág 35.
Engenharia de Software
Desenvolvimento incremental:
• Desenvolver o módulo inicial;
• Obter o feedback dos usuários;
• Software evolui por meio de versões.
Engenharia de Software
Desenvolvimento incremental:
Engenharia de Software
Desenvolvimento incremental:
Vantagens relativas ao modelo em Cascata:
• Custo reduzido na manutenção de requisitos.
• É mais fácil obter feedback dos clientes, pois os módulos são
constantemente testados.
• Entrega e implantação antecipadas, mesmo que todos os requisitos não
tenham sido implementados.
Problemas:
• O progresso do processo de desenvolvimento não é visível.
• Dificuldade para refatoramento do código.
Engenharia de Software
Integração e Configuração:
• Reuso de módulos ou programas que podem ser modificados e
integrados.
• Tipos de componentes para reuso:
• Stand-alone;
• Coleções de objetos – desenvolvidos em uma linguagem orientada a objetos ... ☺
• Web services ... E microsserviços?
• Pergunte ao chat GPT: Qual a diferença entre web services e microsserviços?
Engenharia de Software RPC – Remote
Procedure Call
ou protocolo
Cliente Servidor
Engenharia de Software
Qual é o significado de SOAP?
XML?
HTTP?
JSON?
REST?
Engenharia de Software
SOAP: Simple Object Access Protocol (Protocolo simples de acesso a objetos). Baseado
em XML ou JSON.
F1
SMITH
20
LONDRES
F2
JONES
10
PARIS
db.Automovel.insertMany( [
{placa:"YYY1234", ano:2010, modelo: "Focus", marca: "Ford",
acessorios:["freios abs", "farol de milha", "som"]},
{placa:"LXT4040", ano:2019, modelo: "Tiida", marca:
"Nissan",
acessorios:["direção elétrica", "freios abs", "som"]},
{placa:"LXT4020", ano:2019, modelo: "Sentra", marca:
"Nissan",
acessorios:["direção elétrica", "freios abs", "som"]}
]);
Engenharia de Software
SOAP: Simple Object Access Protocol (Protocolo simples de acesso a objetos).
Engenharia de Software
HTTP: HyperText Transfer Protocol.
Para ler:
https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview
Engenharia de Software
REST:
REST, ou Representational State
Transfer, é um tipo de arquitetura de
software que é geralmente usada para
construIr APIs e web services.
Uma API REST usa os métodos HTTP
como GET, POST, PUT, DELETE para
especificar ações de requisição e
resposta em uma aplicação.
Engenharia de Software
• Engenharia de Software Orientada para o reuso.
Engenharia de Software
• Engenharia de Requisitos.
Engenharia de Software
Elicitação e análise de requisitos:
Derivação (identificação) dos requisitos por meio da análise de
tarefas, observação de um processo, discussões com potenciais
usuários ou clientes.
Especificação de requisitos:
Consiste em traduzir os requisitos de usuários para requisitos de
sistema.
Estes requisitos devem ser documentados. O documento deve
especificar as funcionalidades do sistema.
Engenharia de Software
Validação de requisitos:
Verifica a consistência, realismo e
integridade dos requisitos.
Documentação do
projeto de
Software
Para ler:
http://wer.inf.puc-rio.br/WERpapers/artigos/artigos_WER03/priscilla_pagliuso.pdf
Engenharia de Software
• Desenvolver em grupo apresentação de técnicas de Elicitação
de Requisitos.