• Nenhum resultado encontrado

Aula1604 EngSoft

N/A
N/A
Protected

Academic year: 2021

Share "Aula1604 EngSoft"

Copied!
53
0
0

Texto

(1)

Unidade 3

Desenvolvimento do

Software

Projeto do Software

Codificação

(2)

Desenvolvimento do Software

Projeto do Software: traduz os requisitos do software

num conjunto de representações (algumas gráficas, outras tabulares ou baseadas em linguagem) que descrevem a estrutura de dados, a arquitetura do software, os procedimentos algorítmicos e as características de interface;

Codificação: as representações do projeto devem ser

convertidas numa linguagem artificial que resulte em instruções que possam ser executadas pelo computador

Realização de Testes do Software: logo que o software

é implementado, ele deve ser testado para que se possa descobrir defeitos de função, lógica e implementação

(3)

Projeto

de

(4)

Projeto de Software

“O projeto é o primeiro passo da fase de

desenvolvimento de qualquer produto ou sistema

de engenharia. Ele pode ser definido como o

processo de se aplicar várias técnicas e princípios

ao propósito de se definir um dispositivo, um

processo ou um sistema com detalhes suficientes

para permitir sua realização física.”

(5)

O projeto é considerado a terceira etapa do

desenvolvimento de um software: levantamento de

requisitos, análise de requisitos(análise de sistemas) e

projeto;

É a primeira das atividades consideradas técnicas:

projeto, codificação e testes.

Utiliza as especificações produzidas durante a análise

e estabelece como organizar as especificações de uma

forma apropriada para execução em computador.

(6)

Projeto de Software

Projeto Código Teste Modelo de Informação Modelo funcional Modelo comportamental Outros requisitos Projeto de dados Projeto Arquitetural Projeto Procedimental Módulos de Programa Software Projeto de

(7)

Os requisitos de software, levantados e analisados

anteriormente, transformados em modelos

funcionais, comportamentais e de informação são

utilizados pela fase de projeto.

Usando um método de projeto (que serão vistos

posteriormente), serão produzidos um projeto de

dados, um projeto arquitetural e um projeto

procedimental.

(8)

Projeto de Dados: transforma o modelo do

domínio de informação, criado durante a fase de

análise dos requisitos, em estruturas de dados que

serão exigidas para implementar o software.

Projeto Arquitetural: define as funções e o

relacionamento entre as mesmas.

(9)

Projeto Procedimental: transforma os

componentes estruturais (funções) em uma

descrição procedimental do software;

Projeto de Interfaces: constrói a “embalagem”

do software; as janelas de comunicação entre

sistema e usuário.

(10)

À partir do projeto, o código-fonte é gerado.

Logo após a codificação, a atividade de testes é

realizada para integrar e validar o software

(11)

IMPORTÂNCIA

QUALIDADE

Através do projeto podemos avaliar todos os requisitos especificados pelo cliente e verificar sua validade, na

forma de um produto ou software acabado.

(12)

Sem um projeto, , a construção de um sistema torna-se instável, podendo apresentar falhas quando algumas

modificações forem feitas.

Projeto de Software

Projeto Implementação Teste Manutenção Implementação Teste Manutenção

(13)

O projeto de software é o processo pelo qual os

requisitos são traduzidos em uma representação do

software.

Pode ser visto sob duas perspectivas:

 Técnica: composta de quatro atividades: projeto de dados, projeto arquitetural, projeto procedimental e projeto de interfaces;

(14)

Perspectivas:

 Administrativa (técnica): que se desenvolve a partir de:

Projeto preliminar: transforma os requisitos em uma arquitetura de dados e de software;

Projeto detalhado: concentra-se no

aprimoramento estrutural dos algoritmos e da estrutura dos dados.

(15)

Diretrizes para um projeto de boa qualidade:

ser modular, ou seja, o software deve ser logicamente dividido em componentes que executem funções específicas;

 exibir uma organização hierárquica que faça uso inteligente destes componentes e da comunicação entre os mesmos;

(16)

Diretrizes para um projeto de boa qualidade:

 levar a módulos independentes (reuso);

 Levar a interfaces simples, que reduzam a

complexidade de conexões entre os módulos e com o ambiente externo;

 Utilizar metodologias sistemáticas de projeto e cuidadosa revisão.

(17)

A evolução do projeto de software é um processo

contínuo que se estende há três décadas;

Inicialmente, a preocupação era com o

desenvolvimento de programas modulares;

Os aspectos procedimentais resultaram na

metodologia denominada programação estruturada

(projeto estruturado);

Mais recentemente: projeto orientado a objetos

(18)

O que estes métodos têm em comum:

 mecanismos para a tradução do domínio de

informação em uma representação de projeto;

 uma notação para representar os componentes

funcionais e suas interfaces;

 mecanismos para refinamento e divisão em

partições; e

 diretrizes para avaliação da qualidade.

(19)

A atividade primordial durante o projeto de dados é

selecionar as representações lógicas de objetos de

dados (estruturas de dados) identificadas durante a

fase de especificação e definição dos requisitos;

Definição do conteúdo dos arquivos (banco de

dados), das características físicas de armazenamento

dos dados e dos acessos aos mesmos;

Um dicionário de dados deve ser estabelecido e

utilizado para definir tanto o projeto de programas

como o projeto de dados.

(20)

Objetivo: desenvolver uma organização modular

lógica e definir controles para os módulos;

Mostra como será a união da estrutura de dados

com a estrutura do programa;

Representar o software como “um todo”, para

depois se preocupar com detalhes procedimentais

e de código;

Nesta etapa só é relevante definir a função do

módulo, sem detalhes.

(21)

Achar Valor Total Obter Montantes Tamanho da tabela Tabela contas clientes Valor Total Num Conta Cliente Débito Crédito

(22)

Ocorre depois que o projeto de dados e

arquitetural estão prontos;

Objetivo: especificação de pseudocódigos

(linguagem algorítmica) que implementam as

funções identificadas na organização modular;

Detalhamento para para cada função identificada

no projeto de dados;

Construção de fluxogramas para especificar as

funções.

(23)

Módulo Achar_Valor_Total

/* obtém o montante líquido de um grupo de clientes do banco que são determinados por uma tabela com seus números de conta */

usa tabela de contas de clientes /* contém os números de conta

tamanho da tabela /* número de clientes */

fixe valortotal em 0

repita variando numero de clientes de 1 até o tamanho da tabela inicio do repita

fixe numero de conta do cliente em tabela de contas de cliente

execute obter montantes usando numero de conta do cliente retornando crédito e débito

some valortotal = valortotal + (crédito-débito) obtendo valor total

fim do repita

(24)

Projeto de Software – Projeto de Interfaces

“Frustração e ansiedade fazem parte da vida diária de

muitos usuários de sistemas de informação

computadorizados. Eles lutam para aprender a

linguagem de comandos ou sistemas de seleção por

menu, os quais, presume-se, devem ajudá-los.

Algumas pessoas enfrentam casos tão sérios de

estado de choque diante de computadores, pavor de

terminais ou neurose de redes de computador que

evitam usar sistemas computadorizados”

(25)

Projeto de Software – Projeto de Interfaces

Provável causa disso ???

(26)

Projeto de Software – Projeto de Interfaces

A interface pode ser considerada a “embalagem” do

software. Se ela for fácil de aprender, simples de

usar, direta e amigável, os usuário estará inclinado a

fazer bom uso daquilo que está dentro.

Ao contrário dos projetos internos do software, se o

projeto de interfaces for inadequado, o usuário o

saberá imediatamente e não ficará satisfeito com o

modo de interação não-amigável.

(27)

O projeto de interfaces, além de se preocupar com

as questões tecnológicas, deve se preocupar com

um estudo das pessoas diretamente ligadas ao

software em desenvolvimento:

 Quem é o usuário?

 Quem faz o usuário aprender a interagir com o novo sistema?

 Como o usuário interpreta as informações produzidas pelo sistema?

 O que o usuário espera do sistema?

(28)

Fatores Humanos:

 Memória humana;

 Raciocínio dedutivo e indutivo;  Percepção visual;

 Habilidade individual de cada usuário do sistema;  Diferença de personalidade entre os usuários do

sistema.

(29)

Projeto de Interface Homem-Máquina (IHM)

 Criação de modelos de função do sistema;

 Detalhamento cada tarefa(função do sistema);

 Construção de protótipos para encaminhar ao

usuário;

 Avaliação cliente;

 Refinamento dos protótipos de acordo com

solicitações do cliente;

 Finalização e avaliação final.

(30)

Projeto de Software – Projeto de Interfaces

Projeto preliminar Prototipar Interface 1 Avaliação do Usuário Modificações na interface Projetista estuda avaliação Prototipar Interface n O projeto de interfaces

(31)

Diretrizes de projeto de Interfaces : três categorias

 Interação Geral;

 Exibição de Informações; e

 Entrada de Dados

(32)

Diretrizes de Interação Geral

 Seja consistente: use um formato consistente para a escolha do menu, entrada de comandos, exibição de dados, entre outras.

 Ofereça mensagens de verificação: para qualquer

ação “destrutiva”, emitir mensagens de

confirmação; mensagens de erro, entre outras.

Reduza a quantidade de informações que deve ser

memorizada no intervalo entre ações.

(33)

Diretrizes de Interação Geral

 Divida as atividades em categorias por função e organize a geografia da tela de acordo (menus).

 Use verbos de ação simples para nomear os

comandos.

 Use representações gráficas coerentes para expressar um determinado comando.

 Ofereça facilidades de ajuda.

(34)

Diretrizes de Exibição de Informações

 Mostre somente informações que sejam relevantes

ao contexto atual.

 Não “enterre” o usuário com dados: sempre que

possível substitua por gráficos.

Use rótulos (labels, nomes de campos) consistentes, com abreviações apenas se padronizadas.

(35)

Diretrizes de Exibição de Informações

 Permita que o usuário mantenha o contexto visual: se uma imagem ultrapassar uma tela, fazendo com que o usuário precise se movimentar, mostrar a

figura toda em um canto, reduzida.

 Atenção com o layout e a forma de apresentação das

informações textuais.

Use janelas (guias, paletas) para dividir em

compartimentos diferentes tipos de informação.

(36)

Diretrizes de Entrada de Dados

 Minimize o número de ações de entrada exigidas do

usuário.

 Reduza a quantidade de digitação: quando possível utilizar o mouse para selecionar opções.

 Mantenha a consistência entre a exibição das

informações e a entrada de dados: ex: tamanho do texto e cor iguais na exibição do nome do campo e da entrada do dado referente.

(37)

Diretrizes de Entrada de Dados

 A interação deve ser flexível, mas também

sintonizada com o modo de entrada preferido do usuário.

 Desative opções que não devam ser acessadas em

determinado momento da função que está sendo executada.

Ofereça ajuda que dê assistência em todas as ações

de entrada.

(38)

Trabalho em Grupo

Descrição : desenvolvimento de, no mínimo, 3 interfaces - de

acesso geral ao sistema, de entrada de dados e de exibição de dados (um relatório ou gráfico) - para o sistema do estudo de caso. Podem ser desenvolvidas interfaces de ajuda, janelas de confirmação, avisos, entre outras que desejarem.

Grupo : de 4 a 5 alunos.

Mecanismos : avaliação das diretrizes básicas de projeto de

interface para cada uma das 3 categorias. A linguagem de desenvolvimento das interfaces é de escolha do grupo

Avaliação : apresentação de 10 minutos, em data a ser

definida, expondo as interfaces, com uma descrição de todas as diretrizes que foram utilizadas em cada ponto das mesmas.

(39)

Projeto

Orientado ao

(40)

Vem em complemento a Análise Estruturada;

Define uma série de diferentes funções que

transformam o fluxo de informações em estrutura

de programa;

Mais conhecido como "projeto estruturado”;

Tem suas origens em antigos conceitos de projeto

que salientavam a modularidade, projeto top-down

e programação estruturada.

(41)

Possui uma extensão, denominada DARTS, que

aborda aplicações de tempo real;

Utiliza o diagrama de fluxo de dados (DFD) como

uma ferramenta gráfica para descrever o fluxo de

informações e o diagrama de estrutura;

(42)

Etapas genéricas de projeto estruturado:

estabelecer o tipo de fluxo de informações;  refinar o DFD;

 definir as fronteiras do sistema: entradas e saídas;

 mapear o DFD em uma estrutura de programa;

 desenvolver os pseudocódigos;

aprimorar a estrutura resultante, se necessário.

(43)

Tipos de Fluxo

 Fluxo de Transformações: faz com uma entrada do

usuário, seja transformada e uma saída seja apresentada - isto leva a uma análise de

transformações;

 Fluxo de Transações: uma única entrada do usuário pode disparar várias ações (transações) ao mesmo tempo - isto leva a uma análise de transações;

(44)

Refinar o DFD

 refinar, quantas vezes forem necessárias, o DFD desenvolvido na etapa de análise, de forma a

produzir detalhes mais amplos;

Identificar fronteiras do sistema

para cada transformação (bolha do DFD), indicar as

entradas e as saídas;

(45)

Mapear o DFD - Fatoração

 transformar o DFD refinado em estruturas de

programa, que mostra todos os módulos do sistema, de forma top-down (hierarquicamente distribuídos)

 utiliza o diagrama de estrutura, que mostra:

o particionamento de um sistema em módulos;

a hierarquia e organização dos módulos;

as fronteiras de comunicação entre módulos;

nomes e funções dos módulos;

(46)

Obter detalhes do Cliente Encontrar nome do cliente Num. Conta do Cliente Num. Conta correto Nome do Cliente Módulo Nome do Módulo Módulo Chamador Módulo Chamado Conexão entre os módulos Comunicação entre os módulos Ligação de dados

Ligação de controle (flag)

(47)

Desenvolver os pseudocódigos

 Um diagrama de estrutura não mostra:

os procedimentos internos de cada módulo; e

os dados internos do módulo.

 Sendo assim, é necessário que uma descrição

completa de cada módulo acompanhe o diagrama de estrutura.

(48)

Módulo Achar_Valor_Total

/* obtém o montante líquido de um grupo de clientes do banco que são determinados por uma tabela com seus números de conta */

usa tabela de contas de clientes /* contém os números de conta

tamanho da tabela /* número de clientes */

fixe valortotal em 0

repita variando numero de clientes de 1 até o tamanho da tabela inicio do repita

fixe numero de conta do cliente em tabela de contas de cliente

execute obter montantes usando numero de conta do cliente retornando crédito e débito

some valortotal = valortotal + (crédito-débito) obtendo valor total

fim do repita

(49)

Projeto

Orientado a

Objetos

(50)

Cria uma representação do domínio do problema do

mundo real, conduzindo a uma solução que é o

sistema desenvolvido;

Baseada em três conceitos:

abstração;  ocultação; e

 modularidade.

(51)

Etapas genéricas de projeto OO:

refinar o diagrama de classes;

 detalhar características dos atributos de cada classe;

 identificar as operações pertencentes a cada classe;

 especificação de todos os módulos do sistema - comunicação entre os objetos (pacotes);

 revisar o projeto desenvolvido.

(52)

Refinar o diagrama de classes

 revisar o diagrama de classes, desenvolvido na etapa de análise, de forma a verificar se novas classes são necessárias ou precisam ser retiradas do sistema;

 aplicar herança onde for apropriado, caso não tenha sido utilizada na fase de análise;

Detalhar características dos atributos

especificar o dicionário de dados para os atributos

de cada classe;

(53)

Identificar Operações

 identificar todos os métodos de cada classe, bem como sua funcionalidade, sem detalhes de como implementá-lo;

Especificar módulos

definir as mensagens que os objetos enviam uns aos

outros - comunicação ou interface entre os objetos;

definir aspectos de modularidade do sistema;

Referências

Documentos relacionados

Para análise da susceptibilidade à erosão dos solos que compunham as paredes da voçoroca, foram realizados ensaios de Pinhole (Furo de Agulha), Desagregação e Dispersão

Our results revealed that Lin 84 also presents a Type II resistance, as described by Mesterházy (1995), and, in spite of the fact that it presented marginally infection levels

As evidências empíricas analisadas deram conta das questões levantadas a partir desta pesquisa: a divisão sexual de poder aparece claramente manifesta no interior da

Para massa seca da parte aérea, na condição de estresse salino e ausência de halo-priming, foi observado maior média na cultivar Canapu, comprovando sua tolerância ao estresse

Para tanto, os hábitos alimentares de Urotrygon microphthalmum capturada no litoral de Pernambuco, e de Rhinobatos percellens, capturada em Caiçara do Norte RN foram analisados de

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Além de serem gravados no cartão, os dados são transmitidos através de um módulo de rádio frequência transmissor para um receptor do modelo, onde há um outro PIC capaz de

São muitos os problemas ambientais causados pelo crescimento urbano, o poder público não acompanha esse crescimento com investimentos em obras de infraestrutura, são ocupados