• Nenhum resultado encontrado

apr-ESWII-01

N/A
N/A
Protected

Academic year: 2021

Share "apr-ESWII-01"

Copied!
20
0
0

Texto

(1)

Projeto

Projeto

de Software

de Software

(2)

Introdução

Introdução

z

O projeto de software encontra-se no início técnico do processo de

desenvolvimento de software e é aplicado independentemente do modelo

de ciclo de vida e paradigma adotados.

z

É iniciado assim que os requisitos do software tiverem sido modelados e

especificados, correspondendo à primeira dentre as três atividades técnicas

– projeto, implementação e testes – requeridas para se construir e verificar

um sistema de software.

z

A fase de análise pressupõe que dispomos de tecnologia perfeita:

{ capacidade ilimitada de processamento com velocidade instantânea,

{ capacidade ilimitada de armazenamento,

{ hardware não passível de falha

z

A fase de projeto envolve a modelagem de como o sistema será

(3)
(4)

A

A

Fase

Fase

de

de

projeto

projeto

z

O objetivo desta fase é incorporar a

tecnologia aos requisitos essenciais do

usuário

{

projetando o que será construído na

implementação.

z

Sendo assim, é necessário conhecer:

{

a tecnologia disponível

{

as facilidades do ambiente de software onde o

sistema será desenvolvido e/ou implantado.

(5)

z

Independentemente do paradigma adotado, o projeto deve produzir:

{ Projeto da Arquitetura do Software: definir os grandes componentes estruturais do software e seus relacionamentos.

z Ex: (Diagrama de pacotes: subsistemas)

{ Projeto Procedimental: refinar e detalhar a descrição procedimental dos componentes estruturais da arquitetura do software.

z Ex: (Diagrama Sequência refinado)

{ Projeto de Dados: projetar a estrutura dos dados necessária para implementar o software.

z Ex: (Diagrama de Classes de acordo com a tecnologia, Armazenamento)

{ Projeto de Interfaces: descrever como o software deverá se comunicar dentro dele mesmo (interfaces internas), com outros sistemas (interfaces externas) e com pessoas que o utilizam (interface com o usuário).

(6)

z

Uma especificação de projeto deve:

{

Contemplar todos os requisitos explícitos contidos no

modelo de análise e todos os requisitos implícitos

desejados pelo cliente;

z

casos de uso; tipos de interface, navegabilidade etc

{

Ser um guia legível e compreensível para aqueles que

irão codificar, testar e manter o software.

z

documentação atualizada e bem elaborada

{

Prover um quadro completo do software, tratando

aspectos funcionais, comportamentais e de dados,

segundo uma perspectiva de implementação.

(7)

Conceitos

Conceitos

básicos

básicos

de

de

projeto

projeto

z

Níveis de Abstração:. À medida que avançamos no processo de projeto, o

nível de abstração deve ser reduzido. Partimos da fase de análise.

{ Refinamento: processo de elaboração, no qual o projeto vai sendo conduzido

de níveis mais altos para níveis mais baixos de abstração.

z

Modularidade: um projeto deve estruturar um sistema como

módulos/componentes coesos e fracamente acoplados.

{ Independência Funcional: módulos devem cumprir uma função bem

estabelecida, minimizando interações com outros módulos.

{ Ocultação de informações: módulos / componentes são caracterizados pelas

decisões de projeto que cada um deles esconde dos demais. Módulos devem ser projetados e especificados de modo que as informações neles contidas

(dados e alguns procedimentos) sejam inacessíveis a outros módulos. Interface Contratual.

(8)

Princípios

Princípios

de

de

projeto

projeto

z

Em geral, um modelo de projeto (por exemplo, uma planta arquitetônica de

uma casa) deve:

{ começar representando a totalidade da coisa a ser construída;

{ refinar para prover orientação para a construção de cada detalhe;

{ prover diferentes visões da coisa.

z

Mais especificamente, o projeto de software deve:

{ estar de acordo com o modelo de análise;

{ não “reinventar a roda”, isto é, reutilizar componentes;

{ minimizar a distância entre o software e o mundo real;

{ exibir uniformidade e integração (coesão e acoplamento);

{ ser estruturado para acomodar mudanças (alterabilidade);

{ acomodar circunstâncias não usuais e, se necessário, abortar o processamento: fazê-lo de modo elegante;

{ apresentar nível de abstração superior ao código fonte. Projeto não é codificação;

{ ser passível de avaliação da qualidade;

(9)

Qualidade

Qualidade

do

do

projeto

projeto

z

A fase de projeto é responsável por incorporar

requisitos tecnológicos aos requisitos

essenciais.

{

Assim, o projetista deverá estar atento aos critérios de

qualidade que o sistema terá que atender.

z

Primeira Classificação:

{

modelo de qualidade definido na norma ISO/IEC 9126-1

{

utilizado como referência para a avaliação de produtos

de software

(10)

{

Funcionalidade: refere-se à existência de um conjunto de

funções que satisfaz às necessidades explícitas e implícitas.

z

Tem como sub-características: conformidade, acurácia,

interoperabilidade, segurança de acesso.

{

Confiabilidade: diz respeito à capacidade do software manter

seu nível de desempenho, sob condições estabelecidas, por um

período de tempo.

z

Tem como sub-características:tolerância a falhas, recuperabilidade.

{

Usabilidade: refere-se ao esforço necessário para se utilizar um

produto de software, bem como o julgamento individual de tal

uso por um conjunto de usuários.

z

Tem como sub-características: inteligibilidade, operacionalidade,

(11)

{

Eficiência: diz respeito ao relacionamento entre o nível de

desempenho do software e a quantidade de recursos utilizados

sob condições estabelecidas.

z

Tem como sub-características: comportamento em relação ao

tempo, comportamento em relação aos recursos.

{

Manutenibilidade: concerne ao esforço necessário para se

fazer modificações no software.

z

Tem como sub-características: analisabilidade, modificabilidade,

estabilidade, testabilidade.

{

Portabilidade: refere-se à capacidade do software ser

transferido de um ambiente para outro.

(12)

z

Segunda Classificação:

{

definida por: Carlos Magno da S. Xavier, Carla

Portilho,

{

livro: Projetando com Qualidade a Tecnologia

de Sistemas de Informação.

(13)

{

Completeza: diz respeito ao atendimento dos

requisitos do cliente.

{

Desempenho: refere-se ao uso otimizado dos

recursos computacionais disponíveis

(hardware, software). Fatores que afetam o

desempenho, por exemplo:

zAcesso à memória secundária: organização de

arquivos e utilização de índices.

zUtilização da computação cliente-servidor: front-end

local (interface com o usuário) e back-end no

(14)

{

Segurança contra acessos indevidos: é

importante projetar:

zprocedimentos de segurança, tais como:

controle de acesso (matriz classe de usuário x

operações)

criptografia

visões em bancos de dados;

zMecanismos de detecção de violações, tal como:

monitoração e arquivos de log.

{

Facilidade de uso: diz respeito ao projeto de

(15)

{

Confiabilidade: refere-se à preservação da

disponibilidade do sistema e da integridade das

informações armazenadas.

z

No tocante a este critério de qualidade, deve-se ficar

atento a:

Restrições de integridade: informações a serem armazenadas

devem ser filtradas a partir das regras estabelecidas. Este filtro

pode se dar via Programa ou Sistema Gerenciador de Banco

de Dados (SGBD).

Controle de Concorrência: bloqueio.

Recuperação de Falhas: prever possíveis falhas e definir sua

forma de recuperação. Por exemplo, restaurar um banco de

dados a um estado reconhecidamente correto após a

(16)

z

Tipos de falhas:

• Humana: digitação ou operação do sistema;

• Transação: overflow, erro em tempo de execução, divisão por zero, ...

• de Sistema: problemas no hardware, falta de energia, ...

• de Comunicação: queda de linha, ...

• de Software: erros de desenvolvimento

z

Prevenção de falhas:

• Controle de Acesso;

• Cópias de Segurança (backup);

• Arquivos de Log para desfazer ou refazer transações;

• Espelhamento (gravação simultânea em dois discos).

z

Detecção de falhas:

• Auditoria: varredura de arquivos, apontando possíveis inconsistências.

z

Recuperação de falhas:

(17)

{

Manutenibilidade: diz respeito à facilidade de alteração.

z

Alterações podem ter origem em:

• erros de especificação e/ou projeto;

• novas necessidades do usuário;

• alterações no ambiente tecnológico do usuário.

z

Ações para aumentar a manutenibilidade:

• Definir normas e padrões para interfaces com o usuário, relatórios, mensagens, codificação e nomenclatura de arquivos, módulos e programas.

• Documentar

• Modularizar

{

Economia: o custo deve ser adequado ao escopo do software.

z

Fatores que podem aumentar a economia incluem:

• Reutilização: parcial de programa (cópia e alteração), de módulos, de módulos de biblioteca, de projeto.

• Ferramentas CASE

(18)

Tecnologia

Tecnologia

Imperfeita

Imperfeita

e

e

Requisitos

Requisitos

Tecnológicos

Tecnológicos

{

Limitações da tecnologia:

z

Custo

z

Capacidade de armazenamento

z

Velocidade de processamento

z

Aptidão dos processadores: processador matemático,

para comunicação entre processadores, etc.

z

A tecnologia é passível de falha.

{

Impactos da tecnologia imperfeita:

z

Novas atividades e funções acrescidas em função da

imperfeição da tecnologia.

(19)

{

Levantamento dos Requisitos Tecnológicos junto aos

Usuários:

z

Localização geográfica de usuários / Transporte de dados

z

Problemas operacionais nas atividades dos usuários:

• quais e com que frequência : queda de energia, problema em maquinário etc…

z

Definição do ambiente de hardware e software de produção:

• Freqüência de disparo das atividades

• Volume de dados (inicial, estimativa de crescimento, política de esvaziamento)

• Tempo de resposta

• Restrições técnicas (novo ambiente?)

• Restrições ambientais (temperatura, espaço etc.)

• Requisitos de confiabilidade (tempo mínimo entre falhas)

(20)

z

Referências:

{

Pressman, R. Engenharia de Software. tradução da 5a edição, Mc

Graw Hill, 2002.

{

Rocha A., Maldonado J., Weber K. Qualidade de Software: Teoria

e Prática. São Paulo: Prentice Hall, 2001.

{

Xavier C., Portilho C. Projetando com Qualidade a Tecnologia de

Sistemas de Informação. Livros Técnicos e Científicos Editora,

1995.

{

Falbo R. Projeto de Sistemas: Notas de Aulas. UFES,

www.inf.ufes.br/~falbo, 2003.

Referências

Documentos relacionados

O material é extremamente destrutivo para os tecidos das membranas mucosas e para o trato respiratório superior, os olhos e a pele., espasmo, inflamação e edema da laringe,

exemplo, post-WIMP, non-WIMP, post-PC, Virtual Reality (VR), Virtual Environments (VE), Augmented Reality (AR), interactive 3D graphics, ou simplesmente 3-D. • Todos esses

· Indicações sobre cuidados médicos urgentes e tratamentos especiais necessários Não existe mais nenhuma informação relevante disponível.. 5 Medidas de combate

 Um  componente  deve  apenas  utilizar  funcionalidades   externas  que  sejam  disponibilizadas  por  interfaces... aplicações  difundidas,

No capítulo quarto da primeira parte da Fenomenologia, Hegel tratará da consciência de si num capítulo intitulado a verdade da certeza de si mesmo. Tal parte

Reajuste independentemente da data da adesão, o valor mensal poderá sofrer reajustes legais e contratuais na data de Aniversário do Contrato entre Entidade e Operadora,

A propriedade da terra, no capitalismo, não é em si capital, mas pelo monopólio de sua posse, através da forma jurídica da propriedade, possibilita a capitalização

A imitação de empresas já instaladas é uma forma de isomorfismo mimético (MEYER; ROWAN, 1977; DIMAGGIO; POWELL, 1983; HAVEMAN, 1993) que aumenta a legitimidade das operações