• 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

· 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,

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

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

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

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,