Você está na página 1de 3

Engenharia de Software Envolve verificar cada processo em cada estágio desde a

definição dos requisitos dos usuários até o desenvolvimento


de cada um dos programas que compõem o sistema.
Software é qualquer conjunto de instruções que direciona o
Manutenção e Evolução
processador de um computador (o hardware) a executar
operações específicas. O software evolui de modo a atender as modificações das
necessidades dos usuários;
Um produto de software é qualquer software que tenha
usuários. Ciclo de vida de software
Processo de software Descreve a vida de um produto de software desde sua
concepção até sua implementação, implantação, uso e
É um conjunto de atividades que leva ao desenvolvimento
manutenção.
do produto software
Modelos de ciclo de vida de software
São 4 etapas para o desenvolvimento:
• ● O modelo cascata (ciclo de vida clássico);
• Especificação de Software.
• ● O modelo de prototipação;
• Projeto e implementação de Software.
• ● O modelo incremental;
• Validação de Software.
• ● O modelo espiral;
• Evolução de Software.
CASCATA
Especificação: define a funcionalidade do software e as
restrições sobre sua operação. (Requisitos) É utilizado principalmente quando os requisitos de um
determinado problema são bem compreendidos.
Projeto e implementação: o software que atenda a
especificação deve ser produzido. (Modelos e Codificação) Este modelo sugere uma abordagem sequencial e
sistemática para o desenvolvimento de software.
Validação de software: o software deve ser validado para
garantir que ela faça o que o cliente deseja. (Testes)

Evolução: o software deve evoluir para atender aos novos


requisitos que naturalmente surgirão. (Modificações)

Especificação

Estudo de viabilidade: Considera-se as condições comerciais


e orçamentárias.

Levantamento e análise de requisitos: conversa, entrevista


e prototipação.

Especificação de requisitos: Tradução/filtragem dos


requisitos.

Validação de requisitos: Verificação da pertinência, PROTOTIPAÇÃO


consistência e integralidade.
O objetivo é entender os requisitos do usuário e, assim,
Projeto e implementação obter uma melhor definição dos requisitos do sistema.

O projeto de software cria uma representação ou modelo Possibilita que o desenvolvedor crie um modelo
do software. Fornecendo detalhes sobre: a arquitetura do (protótipo)do software que deve ser construído
software, estruturas de dados, interfaces e componentes
Apropriado para quando o cliente não definiu
do sistema.
detalhadamente os requisitos.
Na implementação, o sistema é codificado, ou seja, ocorre
INCREMENTAL
a tradução da descrição computacional obtida na fase de
projeto em código executável, mediante o uso de uma ou O modelo incremental combina elementos do modelo
mais linguagens de programação. cascata (aplicado repetidamente) com a filosofia iterativa da
prototipação;
Validação Software
O objetivo é trabalhar junto do usuário para descobrir seus
Destina-se a mostrar que um software está de acordo com
requisitos, de maneira incremental, até que o produto final
suas especificações e que atende as expectativas do usuário.
seja obtido;
Um processo de desenvolvimento de software é incremental
quando a cada rodada é desenvolvido um pedaço inteiro do
software.

Extreme Programming (XP)

O XP é uma metodologia ágil de desenvolvimento de


softwares focada na agilidade de equipes e na qualidade
ESPIRAL
dos projetos e tem como seus valores a simplicidade, o
Engloba as melhores características do ciclo de vida clássico feedback, a comunicação, a coragem, o respeito.
e da prototipação, adicionando um novo elemento: a análise
Engenharia de requisitos
de risco;
Requisitos são determinados a partir de uma necessidade
Permite construir produtos em prazos curtos, com novas
imposta na/para a construção do sistema.
características e recursos que são agregados incorporando-
os numa estrutura iterativa;

Proporciona visibilidade ao cliente;

Usa uma abordagem que capacita o desenvolvedor e o


cliente a entender e reagir aos riscos em cada etapa
evolutiva; Níveis de requisitos

Requisito de Usuário: Declaração, em linguagem natural


com diagramas (simples, por ex. tabelas), de quais serviços
são esperados e as restrições às quais estão sujeitos.

Requisito de Sistema: Declaração mais detalhada, completa


dos requisitos do usuário, a ser usada pela equipe de
desenvolvimento; contrato entre cliente e desenvolvedor.

Requisitos de Projeto (Especificação de projeto): é a


definição do projeto de software em nível mais técnico –
modelagem.

Tipos de requisitos

Requisitos funcionais: dizem respeito à definição das


funções que um sistema ou um componente de sistema deve
Metodologias ágeis fazer (entradas e saídas).

Os métodos ágeis são uma abordagem ao modelo de gestão Requisitos não funcionais: dizem respeito às restrições,
tradicional de projetos. aspectos de desempenho, interfaces com o usuário,
confiabilidade, segurança, manutenibilidade, portabilidade
Scrum
e Padrões.
Scrum é uma metodologia ágil para gestão e planejamento
Requisitos de domínio/negócio: requisitos derivados do
de projetos de software.
domínio da aplicação e descrevem características do sistema
No Scrum, os projetos são dividos em ciclos (tipicamente e qualidades que refletem o domínio (regra do negócio).
mensais) chamados de Sprints (iterações).
Stakeholders
Sprint representa um Time Box dentro do qual um conjunto
Na tradução livre do inglês para o português, stakeholders
de atividades deve ser executado.
significa partes interessadas. No mundo corporativo, o
As funcionalidades a serem implementadas são mantidas em conceito se aplica em qualquer indivíduo ou empresas que
uma lista que é conhecida como Product Backlog. podem ser impactadas por um negócio.
UNIFIED MODELING LANGUAGE (UML) Ex: Um cliente chega ao ponto de vendas para comprar
produtos. O atendente registra a compra e coleta o
É uma linguagem (de modelagem) padrão para elaboração
pagamento. O cliente vai embora com a compra.
da estrutura de projetos de software;

É independente do domínio de aplicação;

É independente do processo ou metodologia de


desenvolvimento;

É independente das ferramentas de modelação;

Resumindo: O objetivo de um diagrama da UML é passar Inclusão: <<include>> relacionamento com outro caso de
uma mensagem de maneira padronizada, onde todos os uso que sempre será executado.
receptores dessa mensagem entendem o padrão usado.
Esse relacionamento indica uma obrigatoriedade, ou seja,
Atualmente existem 14 diagramas; quando um caso de uso base possui um relacionamento de
inclusão com outro caso de uso, a execução do primeiro
Cada diagrama é composto por elementos (formas gráficas obriga, também, a execução do segundo.
usadas para os desenhos) que possuem relação entre si;
- A seta deve sempre apontar para o caso de uso a ser
Os diagramas da UML se dividem em dois grandes grupos: incluído.
diagramas estruturais (estático) e diagramas
comportamentais (dinâmico). Extensão: <<extend>> relacionamento com outro caso de
uso que pode ou não ser executado.
Diagramas Estruturais
Esse relacionamento é utilizado para rotinas opcionais.
• Classes;
• Objetos; A seta desse relacionamento aponta para o caso de uso que
• Pacotes; estende, ou seja, para o caso de uso base.
• Componentes;
• Implantação;
• Estrutura Composta;
• Perfil.

Diagramas Comportamentais

• Caso de Uso; (vimos essa )


• Sequência;
• Comunicação;
• Máquina de Estados;
• Atividade;
• Visão Geral de Interação;
• Temporização.

Diagrama de Caso de Uso

É um dos diagramas da UML mais abstratos, flexível e

informal. Tem como objetivo modelar as funcionalidades e


serviços oferecidos pelo sistema. E é composto por: atores,
casos de uso e relacionamentos.

Atores: é qualquer elemento externo que interage com o


sistema.

Casos de uso: Referem-se aos serviços, tarefas ou funções


que podem ser utilizadas de alguma maneira pelos usuários
do sistema

Nome = Verbo + Substantivo (indicação de ação)

Você também pode gostar