Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumário 1
1.1 Introdução 4
2. PROJETO DE DESENVOLVIMENTO 6
Controle de versão 23
Rastreabilidade 23
5.4.1 UML 36
6. AS VISÕES DA UML 44
7.2.2.1 Dependência 48
7.2.2.2 Associação 48
7.2.2.3 Agregação 50
7.2.2.4 Composição 50
7.2.3 Herança 51
7.2.4 Diagramas de classes 53
8.2.1 Entidade 57
8.2.2 Fronteira 57
8.2.3 Controle 57
8.3.2 Polimorfismo 58
8.3.4 Interfaces 59
8.4.1 Mensagem 61
Mensagens síncronas 63
Mensagens assíncronas 64
Autodelegação de mensagens 64
1. INTRODUÇÃO À ANÁLISE DE SISTEMAS
1. 1.1 Introdução
2. 1.2 Sistemas de informação x software
Sistema de informação é a composição de informações (ou dados), pessoas, processos e
tecnologias que tem por objetivo apoiar ou melhorar o processo de negócio de uma corporação.
Tem foco na informação gerada em um processo organizacional, de tal forma a originar
T e c n o lo g ia d e s is t e m a a s d e
valor a esse processo (BEZERRA, 2006)
Infraestrutura
in o fr m a ç ã o
Servidores
Computadores
Sistemas
Operacionas
Sistemas de
Software
Engenharia de
Software
Fornece técnica para especificar,
projetar, manter e gerir um sistema
Também chama de iterativo (no sentido de repetição), é, em sua essência, bem parecido
com o modelo cascata.
No modelo iterativo, as atividades e a sequência de execução são exatamente as mesmas
do modelo cascata.
A diferença é que no modelo incremental não é necessário que todos os requisitos
estejam mapeados para se iniciar o ciclo de desenvolvimento.
Não diminui o custo total do projeto, mas reduz o custo de cata atividade. Possui menor
tempo de execução
Apresenta redução do retrabalho.
A chave para aumentarmos a eficiência na produção de um sistema de software
utilizando o modelo incremental é: bom planejamento.
O modelo incremental serviu de base para muitos outros processos largamente
utilizados e debatidos na literatura, como: prototipagem, modelo espiral e processo unificado
2.2.2 Prototipagem
Em Engenharia de Software prototipagem é a primeira versão de um sistema de
software (SOMMERVILLE, 2020).
Finalidades:
Verificar e demonstrar se os requisitos mapeados estão de acordo com a
necessidade do usuário
Validar uma solução de projeto
É utilizada com o objetivo de antecipar mudanças que possam vir a ser mais custosas no
desenvolvimento de um sistema de software.
O modelo de prototipagem possui quatro atividades:
planejamento;
definição das funcionalidades;
construção;
validação.
Também conhecido como modelo de Boehm (1988), tem como raiz o modelo iterativo
incremental e como preocupação central a mitigação de riscos.
A diferença do modelo espiral para os outros modelos é que cada ciclo completo, ou
cada iteração, não produz ou implementa um sistema ou uma
parte do sistema de software.
O model espiral é composto de quatro fases:
Definição dos objetivos
Mitigação dos riscos
Desenvolvimento do produto
Planejamento da próxima fase
Analista
Projetista
Arquiteto de software
Clientes
São responsáveis por garantir que o sistema de software atenda a todas as necessidades
do negócio.
A classificação acima é feita a partir da origem dos requisitos não funcionais, que
são:
Requisitos Organizacionais (DAO – Desenvolvimento, Ambientais,
Organizacionais): provenientes da organização do cliente, como padronização de
uma linguagem de desenvolvimento.
Requisitos de Produto (CUSPE TReES - Confiabilidade, Usabilidade,
Proteção, Eficiência: Tempo de resposta e Espaço.) são aqueles que restringem
o comportamento do sistema de software, com o espaço em disco que ele irá
ocupar.
Requisitos Externos (LER – Legais, Éticos e Reguladores): são requisitos de
fora da fronteira do sistema de software, como requisitos legais, de cumprimento
da legislação.
Fui - Funcionalidade
Confiar – Confiabilidade
E fiz - Eficiência
Uso - Usabilidade
Manual da - Manutenibilidade
Porta – Portabilidade
Tem por objetivo formalizar os requisitos e modelos definidos nas etapas anteriores
(BOURQUE; FAIRLEY, 2004)
Mais do que isso, documentos têm a finalidade de comunicar. Nesse ponto, devemos
estar atentos aos diferentes papéis de interessados em cada tipo de requisito.
Temos diferentes interessados com necessidades e pontos de vistas diferentes. O
Swebok (BOURQUE; FAIRLEY, 2004) sugere três documentos de visão:
Documento de definição de sistema – pode incluir requisitos não funcionais e
modelos conceituais
Especificação de requisitos do sistema: - contém requisitos na visão sistêmica
Especificação de requisitos de software: pode ser utilizado como base para o
desenvolvimento e para as futuras validações.
Controle de versão
Rastreabilidade
Um requisito deve ser completo. Voltando ao nosso exemplo, onde está descrito o
comportamento do sistema ou do cliente, caso o cliente não possua saldo em conta corrente, não
informe a senha correta ou ainda não possuam notas disponíveis no terminal?
Pensando na completude do modelo, Cockburn (2005) propõe um modelo de
descrição de caso de uso contendo alguns elementos que nos guiam a especificar um caso de uso
completo.
4.3 Diagrama de caso de uso
Diagrama de casos de uso é um diagrama da UML que tem por objetivo mostrar, a
partir de um ponto de vista estático, o conjunto de casos de uso, atores e seus relacionamentos
(BOOCH; JACOBSON; RUMBAUGH, 2006).
Visão estática é o termo usado para descrever uma parte do sistema sob o ponto de
vista estrutural
Inclusão
Significa que o comportamento definido no caso de uso de inclusão é incorporado
ao comportamento do caso de uso base, ou seja, para que este seja executado, obrigatoriamente o
caso de uso de inclusão também deverá ser executado (BOOCH; JACOBSON; RUMBAUGH,
2006)
Extensão
Por exemplo, na figura a seguir, podemos interpretar que o cliente pode solicitar
um empréstimo pessoal durante uma operação de saque, o que quer dizer que existe uma
condição para execução, ou não, do caso de uso “solicitar empréstimo pessoal”.
Herança
Significa que o caso de uso filho herda o comportamento e o significado do caso
de uso pai, acrescentando ou mudando seu comportamento (BOOCH; JACOBSON;
RUMBAUGH, 2006
Na figura a seguir, por exemplo, podemos interpretar que o Cliente Pessoa Jurídica
pode “Efetuar Saque”, “Contratar Empréstimo Pessoal” e “Aumentar Limite de Crédito”.
Podemos afirmar que o ator Cliente não executa o caso de uso “Aumentar Limite de Crédito”,
mas somente “Efetuar Saque” e “Contratar Empréstimo Pessoal”.
5. MODELAGEM DE PROCESSO DE NEGÓCIO
5.1 Introdução à modelagem de processo de negócio
5.4.1 UML
5.4.1.1 Diagrama de processo
A visão de caso de uso produz modelos que representam as necessidades do negócio, que
são traduzidas nas funcionalidades de um sistema de software.
No projeto desse sistema de software, necessitamos tanto especificar as funcionalidades,
quanto especificar como os problemas serão resolvidos.
É na fase de projetos, também chamada de fase de design, que definimos como os
problemas do sistema de software serão resolvidos e como as funcionalidades serão
implementadas.
Definir como as funcionalidades serão implementadas em um sistema de software é
definir os componentes desse sistema, suas responsabilidades e como eles irão interagir entre si
para resolver um determinado problema.
Quando estamos falando do paradigma da orientação a objetos, ou seja, de sistemas de
software orientados a objetos, os componentes do sistema podem ser interpretados como objetos
e a comunicação entre eles visa à execução de uma determinada tarefa.
À representação desses objetos e à relação entre eles, dá-se o nome de visão estrutural,
que basicamente é a representação da estrutura dos objetos e a relação entre eles (BEZERRA,
2006). Também chamado de aspecto estrutural estático, a visão estrutural estática representa a
estrutura interna do sistema, quais são os objetos, suas responsabilidades e relacionamentos. O
termo estrutural se dá pela representação da estrutura do sistema e o estático se dá pelo fato de
que nesse aspecto não temos a representação de informações desses objetos dentro de uma linha
de tempo de execução (BEZERRA, 2006).
Normalmente identificamos uma classe pelo que ela representa dentro do domínio
do negócio em que estamos trabalhando, por exemplo: a classe Cliente Pessoa Física representa
todos os clientes do tipo pessoa física que podem efetuar saques em nosso terminal de
autoatendimento.
7.2.2.2 Associação
A associação mostra que um objeto pode se relacionar com outro, que existe uma
conexão entre esses objetos. Existem dois tipos de associação:
Associação binária: amplamente utilizada, é a associação entre duas
classes apenas.
Associação enésima: raramente utilizada, é a associação entre mais de
duas classes (BOOCH; JACOBSON; RUMBAUGH, 2006).
Na UML, representamos a associação como uma reta, ou uma linha, que conecta
as classes que se associam de alguma forma.
A agregação é utilizada para representar uma conexão entre dois objetos, sendo que essa
conexão define uma relação todo-parte entre esses objetos, ou seja, um objeto está contido no
outro (BEZERRA, 2006).
Na UML, representamos agregação utilizando uma reta saindo da classe que representa
a parte e se conectando a um losango, também chamado de diamante, na classe que representa o
todo.
7.2.2.4 Composição
7.2.3 Herança
Uma entidade, classe de entidade ou ainda objeto de entidade, são objetos mais
próximos do domínio do mundo real que o sistema representa, são abstrações do mundo real que
normalmente conseguimos identificar nos casos de uso.
Esses objetos têm como objetivo principal manter informações referentes ao
domínio de problema que queremos resolver.
8.2.2 Fronteira
Classes de fronteira ou objetos de fronteira, como o próprio nome já diz, têm como
responsabilidade dividir o ambiente interno do sistema e suas interações externas.
Podemos interpretar interações externas a um sistema como toda e qualquer
comunicação que um sistema faz com atores do sistema ou ainda alimentar informações de
outros sistemas.
8.2.3 Controle
Classes de controle, objetos de controle ou ainda controladores são objetos que têm
como objetivo realizar o sequenciamento da execução de um caso de uso na estrutura de objetos
do sistema, fazer a coordenação entre as camadas internas do sistema, representadas pelas classes
de entidade, com as camadas externas ao sistema, representadas pelas classes de fronteira.
Alguns autores também chamam esse movimento de orquestração.
8.3.2 Polimorfismo
Uma interface, em orientação a objetos, pode ser definida como um contrato que
define quais métodos devem ser implementados por uma classe. Uma interface define o que deve
ser implementado, mas não como deve ser implementado, define a assinatura de um método, mas
não a forma de implementação, que fica a cargo da classe.
Resumindo, interface é um contrato que contém apenas assinaturas de métodos (não
contém atributos) e que podem ser implementados por mais de uma classe.
Na UML, representamos interfaces com o estereótipo <<interface>> e, como boa
prática, o nome sempre começa com a letra I (interface), como mostra a figura a seguir.
8.4.1 Mensagem
Uma mensagem pode ser considerada um meio de comunicação entre objetos e tem
como objetivo a ativação de um processamento.
Uma mensagem pode ter três significados (STADZISZ, 2002):
Chamada de função ou procedimento: é o tipo mais utilizado de mensagem.
Significa que um objeto está solicitando a execução de um método de outro
objeto.
Envio explícito de mensagem utilizando um tipo de serviço bem específico e
especializado para envio e recebimento de mensagens, por exemplo: Message
Queue (fila de mensagens).
Evento: quando uma mensagem é enviada para um objeto do sistema
originária de um evento externo ao sistema. É comum que esse tipo de
mensagem seja próprio da comunicação entre atores e objetos. Por exemplo:
um clique de mouse pode ser considerado um evento externo ao sistema e que
deve ser interpretado por um objeto .interno do mesmo sistema.
Mensagens síncronas
Criam uma dependência do estado do objeto que enviou uma mensagem com o
estado do objeto que a recebe. Isso significa que o objeto que enviou a mensagem não tem seu
estado alterado, não executa nenhuma ação, até que o objeto que recebeu a mensagem permita.
Mensagens assíncronas
Ao contrário das mensagens síncronas, as assíncronas não criam uma dependência
do estado do objeto que enviou a mensagem com o estado do objeto que a recebe. Ou seja, o
objeto que enviou a mensagem pode executar qualquer ação independentemente da reação do
objeto que recebeu a mensagem.
Autodelegação de mensagens
Todavia, um objeto pode enviar uma mensagem para ele mesmo, solicitando a
execução de um método privado. Esse movimento é chamado de autodelegação