Você está na página 1de 27

Análise e Projeto de Sistemas

Introdução a análise de sistemas

Professora: Ticiana Linhares Coelho da Silva


E-mail: ticianalc@virtual.ufc.br
Contextualização
● Sociedade mundial moderna é dependente de sistemas baseados em
computadores complexos
○ Sistemas Bancários

○ Infra-estrutura de serviços públicos

○ Telecomunicações

○ Sistemas Industriais

● Tais sistemas englobam componentes de hardware gerenciados através de


programas (software) escritos por seres humanos

2
Contextualização
● Ao longo do tempo, desenvolvimento de software vêm enfrentando cenários
onde ...
○ as aplicações são cada vez mais complexas...

○ o tempo de desenvolvimento é cada vez menor...

○ há necessidade crescente de diminuição de custos ...

○ & uma busca constante pelo aumento da qualidade.

Como combater estas


dificuldades?
3
Engenharia de Software
● Disciplina de engenharia que relaciona-se com todos os aspectos da
produção de software.

● Disciplina gerencial e tecnológica que lida com a produção e manutenção


sistemática de produtos de software desenvolvidos dentro de estimativas
de custo e tempo.

● Software não é apenas o executável

○ Programas de computador e documentação associada, como requisitos, modelos de


projeto e manuais de operação e uso

4
Um pouco mais formal...
● Engenheiros de software devem adotar uma abordagem sistemática e
organizada para realizar seu trabalho, e usar ferramentas e técnicas
apropriadas de acordo com
○ o problema a ser resolvido,

○ restrições de desenvolvimento

○ recursos disponíveis.

5
Objetivos de Engenharia de Software
● Obter software de qualidade

● Com produtividade no seu desenvolvimento, operação e manutenção

● Empregando profissionais que desenvolvam o software dentro de custos,


prazos e níveis de qualidade controlados

● Além disso, obtenham o melhor nível entre Qualidade × Produtividade


possível
Na prática...
● as questões relativas às dificuldades do desenvolvimento de software são
atacadas através da idéias de processos e metodologias de desenvolvimento

7
Processo de desenvolvimento de software
● Um conjunto estruturado de atividades necessárias para se desenvolver um
sistema de software
○ Especificação;

○ Projeto;

○ Implementação

○ Validação;

○ Evolução (Manutenção).

● Um modelo de processo de software é uma representação abstrata de um


processo, uma descrição a partir de uma perspectiva particular
Processo de desenvolvimento de software
● Exemplos de processos de desenvolvimento:

○ RUP, Extreme Programming, Scrum

● Alguns objetivos de um processo são:

○ Definir quais as atividades a serem executadas ao longo do projeto;

○ Definir quando, como e por quem tais atividades serão executadas;

○ Prover pontos de controle para verificar o andamento do desenvolvimento;

○ Padronizar a forma de desenvolver software em uma organização.

9
Modelos genéricos de processos
● Modelo Cascata
○ Clara separação entre as fases de especificação e desenvolvimento.
● Desenvolvimento evolucionário
○ Especificação, desenvolvimento e validação são intercalados.
○ Protótipos e feedback rápido do cliente
● Desenvolvimento formal
○ Especificação formal matemática do sistema
○ Transformações e verificação
● Desenvolvimento orientado a reuso
○ Componentes reutilizáveis
○ Integração dos componentes
Modelo Cascata na Prática

Definição de
Requisitos

Análise &
Projeto
Implementação &
Testes

Integração &
Testes
Operação &
Manutenção
Modelo espiral
Modelo espiral de Boehm

● Cada volta é divida em 4 setores:


○ Definição dos objetivos: objetivos específicos para essa fase do
projeto são definidos, riscos são identificados e planejamento das
estratégias alternativas em função dos riscos.

○ Avaliação e redução de riscos: Para cada risco identificado,


medidas de redução de risco são tomadas. Por exemplo, se o
risco de requisitos forem inadequados, um protótipo do sistema 13

pode ser desenvolvido.


Modelo espiral de Boehm

● Cada volta é divida em 4 setores:


○ Desenvolvimento e validação: Após a avaliação de riscos, é
selecionado um modelo de desenvolvimento para o sistema.
■ riscos em geral - > prototipação descartável
■ riscos de segurança -> desenvolvimento baseado em
transformações formais
■ risco de integração de subsistemas - > modelo cascata
○ Planejamento: o projeto é revisado, e uma decisão é tomada a 14

respeito da continuidade do modelo com mais uma volta espiral.


Modelo iterativo e incremental
● Divide o desenvolvimento de um produto de software em ciclos.

● Em cada ciclo de desenvolvimento, podem ser identificadas as fases de


análise, projeto, implementação e testes.

● Cada ciclo considera um subconjunto de requisitos.

● Esta característica contrasta com a abordagem clássica, na qual as fases


são realizadas uma única vez.

15
Modelo iterativo e incremental
● Desenvolvimento em “mini-cascatas”.
Definição
Definiçãode
de
Requisitos
Requisitos

Análise
Análise&&
Projeto
Projeto

Implementaç
ão &
Testes
Definição
Definiçãode
de
Requisitos Integração
Integração&&
Requisitos
Testes
Testes
Análise
Análise&&
Projeto Operação
Operação&&
Projeto
Manutenção
Manutenção
Implementaç
ão &
Testes
Definição
Definiçãode
de
Requisitos Integração
Integração&&
Requisitos
Testes
Testes
Análise
Análise&&
Projeto Operação
Operação&&
Projeto
Manutenção
Manutenção
Implementaç
ão &
Testes

Integração
Integração&&
Testes
Testes

Operação
Operação&&
Manutenção
Manutenção
Modelo iterativo e incremental
● Iterativo: o sistema de software é desenvolvido em vários passos
similares.

● Incremental: Em cada passo, o sistema é estendido com mais


funcionalidades.

17
Modelo iterativo e incremental
vantagens e desvantagens
■ Incentiva a participação do usuário. 👍
■ Riscos do desenvolvimento podem ser mais bem gerenciados. 👍
◻ Um risco de projeto é a possibilidade de ocorrência de algum evento que cause prejuízo ao
processo de desenvolvimento, juntamente com as conseqüências desse prejuízo.
◻ Influências: custos do projeto,cronograma, qualidade do produto, satisfação do cliente, etc.

■ Mais difícil de gerenciar 👎

18
Processo Unificado
➢ Iniciação: identificar
entidades (pessoas e
sistemas) que vão interagir
com o sistema.
➢ Elaboração: compreensão do
problema, estabelecer um
framework, desenvolver
plano de projeto, identificar
os riscos.
➢ Construção: envolve projeto,
programação e testes.
➢ Transição: transferência do19
sistema dos desenvolvedores
para usuários.
Processo Unificado

20
Atividades típicas de um projeto de software

Especificação de Atividades
Requisitos

Projeto de
Projeto Especificação Projeto de Projeto de Base de Projeto de
Arquitetural Abstrata Interface Componentes Dados Algoritmos

Arquitetura Especificaç Especificação


do sistema Especificação Especificação da Especificação
ão
da Interface de da Base de do Algorítmo
do Software
Componentes Dados

Artefatos
Detalhamento de Atividades
● Projeto de arquitetura:

○ Identifica subsistemas e outros elementos de projeto

● Especificação abstrata:

○ Para cada subsistema (e outros elementos de projeto) é produzida uma especificação


abstrata de suas funções e das restrições dentro das quais deve operar.

● Projeto de interface:

○ Especifica as interfaces entre subsistemas

22
Detalhamento de Atividades
● Projeto de componentes:

○ Transforma (possivelmente decompondo) subsistemas em componentes individuais para se


ajustar à arquitetura

● Projeto de estrutura de dados:

○ Projeta estrutura de dados para armazenar os dados do sistema

● Projeto de algoritmos:

○ Descreve os algoritmos a serem usados na solução do problema

23
Análise versus Projeto
● Na fase de análise é focado no problema, em
O QUÊ o sistema deve fornecer para atender os requisitos do cliente

● Na fase de projeto o foco está na solução, em COMO encontrar uma forma


que satisfaça computacionalmente os requisitos do cliente

● A análise é mais direcionada aos requisitos, o projeto é mais direcionada à


implementação

24
Objetivos da fase de Projeto
● Detalhar os modelos de análise

● Desenvolver uma arquitetura robusta para o sistema

25
Análise X Projeto
● Análise ● Projeto
○ Foco no problema ○ Foco em uma solução
○ Comportamento (caixa ○ Operações e atributos
preta, sem detalhes de s
implementação) s
○ Estrutura geral da ○ Representação próxima do
arquitetura do sistema código
○ Modelo simples ○ Modelo complexo
lo: desempenho), além dos
funcionais
Bibliografia
● Capítulos 1 e 2: Livro de UML do Eduardo Bezerra.

27

Você também pode gostar