Você está na página 1de 47

Unidade IV

ENGENHARIA DE SOFTWARE I

Prof. Andr Luiz


Prticas de Engenharia de Software

uma coleo de conceitos, mtodos e ferramentas


de que o engenheiro de software faz uso no seu dia a dia.
Determinam um modelo de processo de software que inclui
atividades tcnicas e gerenciais para o desenvolvimento
da aplicao.
Prticas de Engenharia de Software

Envolve:
Entender o problema: comunicao e anlise.
Planejar uma soluo: modelagem e projeto.
Executar o plano: gerao do cdigo.
Examinar o resultado: realizao de testes.
Prticas de Comunicao

A comunicao a prtica mais essencial e desafiadora


para o desenvolvedor de software.
atravs da comunicao que as necessidades dos clientes
so coletadas, por meio de entrevistas e outras tcnicas.
As falhas de comunicao so as maiores geradoras
de conflitos durante o ciclo de vida do software.
Princpios da Comunicao

Prepare-se antes de se comunicar.


Sempre que possvel, tenha um facilitador.
Saiba ouvir.
Faa a comunicao face a face.
Faa anotaes e documente as decises.
Envolva os participantes nas decises.
Tenha foco, no disperse com outros assuntos.
Utilize figuras para facilitar o entendimento.
Busque a negociao ganha-ganha.
Comunicao Efetiva

Fonte: Livro-texto.
Tcnica de Reunio Walkthrough

uma tcnica de reunio informal que pode ser utilizada


em qualquer fase do desenvolvimento de software.
mais utilizada como tcnica de reviso de qualquer
produto tcnico de software, antes de entreg-lo ao cliente.
Tambm conhecida como reviso por pares, muito simples e
bem aceita por todos.
Tcnica de Reunio Walkthrough

Envolve trs papis:


O autor;
O revisor;
O escriba.
Tcnica:
O autor descreve o produto tcnico passo a passo para que o
revisor faa os comentrios.
O escriba registra os apontamentos para posterior correo.
Tcnica JAD: Joint Application Development

uma reunio de grupo em que h interao livre entre os


participantes e substitui a tcnica de entrevistas.
Utilizada para definir os requisitos do projeto.
Visa envolver o cliente como coautor do trabalho e no
apenas um interlocutor, aumentando o seu comprometimento.
Tcnica JAD: Joint Application Development

Envolve seis papis:


Facilitador;
Usurios;
Gerentes e desenvolvedores;
Secretrio;
Observador.
Tcnica JAD: Joint Application Development

Fases:
Definio do tema;
Pesquisa;
Preparao;
Reunio;
Elaborao do documento final.
Tcnica JAD: Joint Application Development

Prticas de uma reunio JAD:


Agende com antecedncia e comunique a todos.
Convoque as pessoas certas.
Envie a agenda e documentos antes da reunio.
Preestabelea o horrio de incio e fim.
Escolha local isento de influncias e confortvel.
Utilize vrias mdias (quadro, flipchart etc).
Utilize formato arena na sala.
Foco 100% no assunto durante a reunio.
Interatividade

A prtica de comunicao essencial para o sucesso do


desenvolvimento de software. Dentre as opes abaixo, qual
alternativa representa um dos princpios da comunicao
efetiva?
a) Utilizar o processo cascata.
b) Comunicao face a face.
c) Tratar mltiplos assuntos.
d) Interromper sempre que achar necessrio.
e) Procurar uma negociao boa para voc.
Prtica de Planejamento

A atividade de planejamento essencial para aumentar


a probabilidade de sucesso de um projeto de software.
No deve ser burocrtico.
Deve ser feito em ondas sucessivas, medida em que os
objetivos do projeto vo evoluindo.
Deve ser realizado com a participao de todos os envolvidos.
Prtica de Planejamento

Mas o que um projeto?


um empreendimento temporrio para criar um produto
nico para atender as necessidade do seu cliente.
O PMBOK (Project Management Body of Knowledge)
um guia de boas prticas em gerenciamento de projetos.
Baseia-se na trplice restrio:
Escopo, prazo, custo e qualidade.
Prtica de Planejamento

Fases de um projeto:

Fonte: Livro-texto
Prtica de Planejamento

Plano do projeto:
Rene a documentao necessria para conduzir o projeto.
Deve conter:
O escopo do projeto;
O cronograma;
O oramento;
Os riscos;
Os recursos humanos necessrios;
Os padres de qualidade esperados;
Plano para a distribuio das informaes.
Prtica de Planejamento

Estrutura Analtica do Projeto:


a decomposio do escopo do projeto em produtos
entregveis com o objetivo de facilitar o entendimento
e a validao do cliente.

Fonte: Do autor.
Prtica de Planejamento

Recursos:
Qualquer varivel requerida para a execuo do projeto.
Alguns tipos de recursos:
Pessoas, equipamentos, materiais, capital, instalaes,
entre outras.
Na fase de planejamento devem ser identificados os perfis
e a quantidade de recursos necessrios para o projeto.
Prtica de Planejamento

Responsabilidades:
a distribuio do trabalho para as pessoas da equipe do
projeto.
Para evitar conflitos durante o projeto, deve estar claro
para todos os envolvidos quem o responsvel por
cada atividade.

Fonte: Livro-texto.
Prtica de Planejamento

Cronograma:
a descrio da sequncia de atividades, suas duraes
e responsveis para a realizao do projeto.
Deve envolver quem vai realizar a atividade.
Determina o tempo total do projeto.

Fonte: Livro-texto
Prtica de Planejamento

Anlise de Riscos:
Problemas x Riscos.
tudo aquilo que pode gerar problemas ao projeto.
Consiste em um conjunto de atividades preventivas para
evitar que ocorram problemas no projeto.
Deve conter para cada risco: aes e contingncias.
Deve ser realizado durante todo o projeto.
Prtica de Planejamento

Padres de Qualidade:
a definio de o que ser feito durante o projeto
para garantir que o produto esteja correto.
Plano de Comunicao:
Deve descrever quais os mtodos e para quem as
informaes sobre o andamento do projeto devem ser
distribudas durante a fase de execuo.
Interatividade

As prticas de planejamento so essenciais para o sucesso


de um projeto de software. Qual das alternativas abaixo est
correta com relao a esta afirmao?
a) Deve ser feito um cronograma.
b) preciso definir o nmero de recursos necessrios.
c) Deve ser feita uma anlise de riscos.
d) Deve ser elaborada uma Estrutura Analtica do Projeto.
e) Todas esto corretas.
Prticas de Modelagem

Consiste num conjunto de atividades para construir modelos


(diagramas) que expliquem as caractersticas e
comportamentos de um aplicativo de software.
Registra o o qu e o como o software deve ser
desenvolvido.
Formaliza as definies e especificaes obtidas junto
ao cliente.
Prticas de Modelagem

Os modelos permitem ter:


Um meio para a discusso;
Um meio para comunicao;
Uma base para a anlise;
Um simulador de situaes;
Uma base de controle ;
Um meio para garantir o correto funcionamento.
Modelagem Orientada a Objetos

O foco da modelagem orientada a objetos est em ver o


mundo como um conjunto de objetos que interagem entre si
para produzir um resultado comum.

Fonte: Livro-texto
Modelagem Orientada a Objetos

Estrutura do Modelo Orientado a Objetos.

Fonte: Livro-texto
Modelagem Orientada a Objetos

Principais caractersticas:
Foco na modelagem das informaes;
Identificar os objetos do mundo real;
Identificar suas caractersticas (atributos);
Identificar seus comportamentos (mtodos);
Formam as classes, que so os blocos bsicos
para a construo.
Modelagem Orientada a Objetos

Uma vez identificados os objetos, a relao entre eles


forma o sistema a ser desenvolvido.
Ele ser construdo a partir da interao entre esses objetos.

Fonte: Do autor.
Modelagem Orientada a Objetos com UML

UML: Unified Modeling Language.


a unificao das diversas linguagens de modelagem
orientada para objetos existentes.
Foi criada em 1995 por Booch, Rumbaugh e Jacobson, que
unificaram os seus mtodos, Booch, OMT e OOSE, que eram
os mais utilizados na poca.
A partir de 1999, passou a ser mantida pela OMG (Object
Management Group), www.omg.org.
Modelagem Orientada a Objetos com UML

A UML divide os diagramas em 3 categorias:


Estticos: Mostram a estrutura fsica do sistema e no
envolvem as interaes.
Os principais so os diagramas de casos de uso e de classes.
Exemplos:

Fonte: Do autor.
Modelagem Orientada a Objetos com UML

A UML divide os diagramas em 3 categorias:


Dinmicos: Mostram a interao ativa entre os elementos
estruturais do sistema.
Os principais so os diagramas de sequncia,
estado e atividades.
Exemplo:
Fonte: Do autor.

Registro fechado
Curso Aberto Curso Completado

Adicionar Aluno
Modelagem Orientada a Objetos com UML

A UML divide os diagramas em 3 categorias:


Arquiteturais: Mostram a realizao do sistema em
componentes funcionais e executveis.
Os principais diagramas de componentes e de implantao.
Exemplo:

Pedido
Pagamento

Cliente Pedido Pagamento

Application
Servidor WEB Server
- Xenon 2.4 Ghz TCP/IP
TCP/IP - Unix Banco de Dados
- Linux - Sun Solaris - W2K3
- TomCat - WebSphere
Produto

Fonte: Do autor.
Interatividade

A UML a principal linguagem de modelagem, orientada para


objetos para o desenvolvimento de software e possui diversos
diagramas para representar os objetos. O diagrama que mostra
a interao entre esses objetos o:
a) Diagrama de classes.
b) Diagrama de casos de uso.
c) Diagrama de sequncia.
d) Diagrama de objetos.
e) Diagrama de componentes.
Modelagem de Processo de Negcio

Consiste em processo para definir graficamente o fluxo de


comportamento das regras de negcio do sistema.
Foi publicado em 2004 pela OMG.
Objetivos:
Fornecer uma notao fcil de entender por todos os
envolvidos.
Ser uma ferramenta de trabalho comum para usurios,
analistas e desenvolvedores.
Modelagem de Processo de Negcio

Notao bsica:

Fonte: Livro-texto
Model Driven Development (MDD)

Surgiu com o objetivo de criar especificaes e modelos


apoiados por ferramentas que, interpretadas pelo computador,
gerem o cdigo de forma automtica ao seu final.
Utiliza a linguagem DSL (Domain-specific Language)
para gerar essas especificaes.
Modelo ainda em fase de experimentos.
Model Driven Development (MDD)

Principais elementos:

Fonte: Livro-texto
Prticas de Construo

a fase que vem depois das fases de requisitos e


especificaes de solues conceituais. o cdigo.
Diversas boas prticas devem ser observadas pelo engenheiro
de software:
Desenvolvimento incremental;
Padres de codificao;
Definio da arquitetura;
Verificao da qualidade;
Testes constantes, entre outros.
Prticas de Construo:
Arquitetura baseada em componentes

A arquitetura define como o software dever ser construdo.


a definio da estrutura do sistema.
O desenvolvimento baseado em componentes (CBSE) visa
criar cdigos que possam ser reutilizados dentro do sistema
desenvolvido ou por outros sistemas.
Seus principais objetivos so:
Eliminar duplicao de cdigo.
Reduzir o tempo de desenvolvimento.
Aumentar a qualidade.
Prticas de Construo:
Verificao da qualidade

Envolve a avaliao se o software desenvolvido est em um


nvel satisfatrio de aceitao.
Esta avaliao se d por meios de testes contnuos durante
o processo de desenvolvimento.

Fonte: Livro-texto
Prticas de Construo:
Controle de mudanas

Controlar as mudanas que ocorrem durante o ciclo de


desenvolvimento uma das tarefas mais complexas da
engenharia de software.
Os problemas mais comuns so:
Codificao simultnea;
Mltiplas verses;
Alteraes contnuas;
essencial o uso de ferramentas para o controle das
mudanas.
Prticas de Implantao

Consiste nas atividades de liberao do software


desenvolvido para o ambiente de produo do cliente.
A implantao deve garantir:
Se o software for novo, que esteja completo e funcionando
depois da instalao.
Se for uma alterao, que no cause problemas no ambiente
e no afete a aplicao em uso.
Prticas de Implantao

Alguns cuidados importantes:


Elaborar o plano de implantao em conjunto
com todos os envolvidos
Verificar todo hardware e software
necessrio no novo ambiente.
Garantir o envolvimento de usurios-chaves.
Ter um processo de retorno verso
anterior em caso de problemas na implantao.
Interatividade

O desenvolvimento baseado em componentes uma boa prtica


de construo da engenharia de software. Dentre as alternativas
abaixo, qual um benefcio do uso dessa prtica?
a) No melhora a qualidade.
b) uma boa prtica para testes.
c) Aumenta o tempo de desenvolvimento.
d) Reuso do cdigo desenvolvido.
e) Nenhuma das anteriores.
AT A PRXIMA!

Você também pode gostar