Skip to content

Commit

Permalink
Renomeando pastas seguindo um padrão
Browse files Browse the repository at this point in the history
  • Loading branch information
filipemeneses committed May 16, 2018
1 parent ceb4a9e commit 62991fc
Show file tree
Hide file tree
Showing 54 changed files with 62 additions and 62 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Engenharia de software 2 - Resumo 2° bimestre
# Engenharia de software 2 - Resumo 2° bimestre (incompleto)

## Engenharia de requisitos

Expand All @@ -9,7 +9,7 @@ Os requisitos, são as necessidades do cliente, bem definididas, e que desta for
### Requisitos de software

São descrições do que o software deve fazer

* Tipos de requisitos
* Alto nível (Abstrato) - requisito de usuário;
* Escrito em linguagem natural;
Expand All @@ -35,11 +35,11 @@ Abaixo são descritos as caracaterísticas dos requisitos. Lembrando que, estes
* O que o sistema deve fazer;
* Entradas e saídas;
* O que o sistema não deve fazer;
* Exemplo:

* Exemplo:
- Um usuário deve ser capaz de pesquisar as listas de agendamentos para todoas as clínicas;
- O sistema deve gerar a cada dia, para cada clínica, a lista dos pacientes para as consultas daquele dia.

Veja que os exemplos acima são exemplos de extremo alto-nível, com descrições simples claras e feitas na linguagem natural.

## Requisitos não funcionais
Expand All @@ -53,14 +53,14 @@ Abaixo são descritos as caracaterísticas dos requisitos. Lembrando que, estes
* Aplica-se aqui regras e restrições para o desenvolvimento do software;
* Definem propriedades do sistema;
* Requisitos não-funcionais são mais críticos, pois caso não sejam, pode ser que o sistema se torne inútil;

* Os requisitos não funcionais diversas subcategorias, sendo as principais:
* Produto;
* Organizacional;
* Externos.
Para que seja possível realizar detalhamentos e exemplos, abaixo há uma seção com apenas as subcategorias dos requisitos não funcionais

OBS: Um ponto importante sobre os requisitos é que, uma boa prática para fazer a melhor gestão deles é, manter todos os requisitos e suas conexões de forma controlada.
OBS: Um ponto importante sobre os requisitos é que, uma boa prática para fazer a melhor gestão deles é, manter todos os requisitos e suas conexões de forma controlada.


Algumas métricas para levantar requisitos não funcionais
Expand All @@ -87,8 +87,8 @@ Métricas utilizadas para garantir a confiabilidade do sistema

* Requisitos de eficiência:
* Requisito de desempenho:
- Como o próprio nome diz, este é um tópico que define o desempenho apresentado pelo produto, seja ele em tempo de resposta, ou em otimização.
* Requisitos de espaço:
- Como o próprio nome diz, este é um tópico que define o desempenho apresentado pelo produto, seja ele em tempo de resposta, ou em otimização.
* Requisitos de espaço:
- Requisito que diz quais os requisitos relacionados a armazenamento

* Requisito de usabilidade
Expand Down Expand Up @@ -118,7 +118,7 @@ Diz-se sobre as normas, leis, regras ou padrões que o sistema deve atender.
- Tempo de troca entre telas
* Confiabilidade:
- Tempo médio para faltas;
- Disponibilidade.
- Disponibilidade.
* Robustez:
- Percentual de erros que causam falhas;
- Tempo de reinício após falha.
Expand Down Expand Up @@ -186,7 +186,7 @@ Os passos feitos pela engenharia de requisitos pode ser visto abaixo:
* Levantamento dos dados de dominio;
* Levantamento dos serviços que o sistema deve fornecer;
* Restrições operacionais do sistema;

* Problemas desta etapa:
* Pode ocorrer dos stakeholders não saberem o que querem;
* Pode também acontecer de os stakeholders utilizarem termos muito específicos da área, causando problemas na interpretação por parte de quem está levantando os requisitos;
Expand Down Expand Up @@ -237,7 +237,7 @@ Este tenta criar exemplos do mundo real, utilizando histórios, fluxos de evento

Nem sempre a maneira que o processo é descrito é realmente a forma que as pessoas trabalham, podemos entender o processo como, a maneira como as pessoas deveriam trabalhar, mas isso nem sempre ocorre.

Para isso a etnográfica é a técnica de observar como as pessoas trabalham para que então se saiba como o processo realmente é feito.
Para isso a etnográfica é a técnica de observar como as pessoas trabalham para que então se saiba como o processo realmente é feito.

Isso faz com que o processo seja entendido de uma melhor forma já que, ao pensarmos em processo devemos entender que ele é a maneira como a pessoa realiza, e não somente como os parâmetros dizem.

Expand All @@ -250,11 +250,11 @@ Métodologia ágeis são técnicas de desenvolvimento para que seja possível en

* Existem inúmeros métodos diferentes, os mais importantes são:
· eXtreme Programming (XP)
· Scrum
· Dynamic Systems Development Method (DSDM)
· Adaptive Software Development (ASD)
· Scrum
· Dynamic Systems Development Method (DSDM)
· Adaptive Software Development (ASD)
· The Crystal family

## Modelagem de caso de uso


Expand All @@ -266,22 +266,22 @@ Métodologia ágeis são técnicas de desenvolvimento para que seja possível en

Antes de mais nada, é extremamente importante citar nossos objetivos em descrever as notações UML, e quais seriam eles?
Responder as seguintes perguntas:

Em um nível alto de abstração, que objetos constituem o sistema em questão?

Quais são as classes candidatas?

Como as classes do sistema estão relacionadas entre si?

Quais são as responsabilidades de cada classe?

* Classes

A Classe descreve seus objetivos através de atributos e operações

Atributos correspondem às informações que um objeto armazena.
Operações correspondem às ações que um objeto sabe realizar.

exemplo:
<img> link da imagem</img>
* Associações
Expand All @@ -297,75 +297,75 @@ Antes de mais nada, é extremamente importante citar nossos objetivos em descrev
Representam a quantidade de objetos aos quais outro objeto pode se associar, ou seja, demonstra os limites inferiores e superiores.

exemplo:

Nome: Apenas um
Simbologia na UML: 1..1 (ou 1)

Nome: Zero ou muitos
Simbologia na UML: 0..* (ou *)

Nome: Um ou Muitos
Simbologia na UML: 1..*

Nome: Zero ou um
Simbologia na UML: 0..1
Nome: Intervalo Específico

Nome: Intervalo Específico
Simbologia na UML: 1¹..1¹


exemplo na prática:

Cliente 1 -----------> 0..* Pedido

Pode existir um cliente que esteja associado a vários pedidos
Pode existir um cliente sem associação nenhuma
Um pedido está associado a apenas UM, e SOMENTE UM, CLIENTE

Carro 2.6 --------------> 0..* Interlagos

Uma Interlagos está associada a, no mínimo, dois carros
Uma Interlagos está associada, a, no máximo, seis carros
Um Carro pode estar associado a várias corridas


* Participação

Indica a necessidade de uma associação entre objetos, sendo obrigatória ou opcional
**Se o valor mínimo da multiplicidade de uma associação é igual a 1 (um), significa que a participação é obrigatória
Caso contrário, a participação é opcional.
Caso contrário, a participação é opcional.

* Acessórios para associações

* A UML define três recursos de notação para associações:
* Nome da associação: fornece algum significado semântico a mesma.
* Direção de leitura: indica como a associação deve ser lida
* Papel: para representar um papel específico em uma associação.

* Classe Associativa

Classe que está ligada a uma associação, em vez de estar ligada a outras classes.
Usada quando duas ou mais classes estão associadas, e é necessário manter informações sobre esta associação.
exemplo:
exemplo:
<img>http://jkolb.com.br/wp-content/uploads/2014/07/classe-associativa.png</img>


* Associações n-árias

Define-se o grau de uma associação como a quantidade de classes envolvidas na mesma.
Define-se o grau de uma associação como a quantidade de classes envolvidas na mesma.
É utilizado como notação, um losango.
Existem as associações binárias (as mais comuns), mas também existem as ternárias, que o grau de associação equivale a três
exemplo:
<img>http://jkolb.com.br/wp-content/uploads/2014/01/naria.png</img>

* Associações reflexivas

Associação que representa ligações entre objetos que pertencem a uma mesma classe.
Não indica que um objeto se associa a ele próprio.
A definição de papéis é importante para evitar ambigüidades na leitura da associação.
Cada objeto tem um papel distinto na associação.
exemplo de imagem

* Agregações e Composições

São assimétricas, no sentido de que, se um objeto A é parte de um objeto B, o objeto B não pode ser parte do objeto A
Expand All @@ -374,13 +374,13 @@ São assimétricas, no sentido de que, se um objeto A é parte de um objeto B, o

Suas diferenças:

Destruição de objetos: Na agregação, a destruição de um objeto todo não implica necessariamente na destruição do objeto parte.
Pertinência: Na composição, os objetos parte pertencem a um único todo.
Em uma agregação, pode ser que um mesmo objeto participe como componente de vários outros objetos.
Destruição de objetos: Na agregação, a destruição de um objeto todo não implica necessariamente na destruição do objeto parte.
Pertinência: Na composição, os objetos parte pertencem a um único todo.
Em uma agregação, pode ser que um mesmo objeto participe como componente de vários outros objetos.

Na prática, agregação é usada raramente.

Restrições:
Restrições:
<img http://slideplayer.com.br/slide/1595791/5/images/42/Restri%C3%A7%C3%B5es+em+associa%C3%A7%C3%B5es.jpg </img>

## Notação Crow's foot.
## Notação Crow's foot.
File renamed without changes.
38 changes: 19 additions & 19 deletions 4_semestre/banco_de_dados/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Há outros conceitos que também tem grande importância na área de banco de da
* Definição dos tipos de dados que estão armazenados ou estarão armazenados no banco de dados;
* É difícil apresentar mudanças.
Exemplo de esquema.
![Tabela clientes](imgs/esquema.PNG)
![Tabela clientes](imagens/esquema.PNG)

Veja que a tabela clientes representa a estrutura e os tipos de dados que serão armazenados.

Expand All @@ -32,13 +32,13 @@ Veja que a tabela clientes representa a estrutura e os tipos de dados que serão
* Sempre sofre alterações.

Exemplo de instância
![Instâncias](imgs/instancia.PNG)
![Instâncias](imagens/instancia.PNG)

Cada registro na tabela acima, representa uma instância de cliente.

* Instância X Esquema - (Exemplos)
* Esquema: FUNCIONARIO(nome, salario)
* Instância: Ana Maria, 2.500
* Instância: Ana Maria, 2.500

### Abstração de dados

Expand All @@ -56,17 +56,17 @@ Para que seja possível utilizar um banco de dados, ou um SGBD, é importante qu
* Fazem acesso ao banco de dados através da DML.
* Administrador de banco de dados:
* Faz o controle total dos dados e dos programas que os acessam;
* São esses os usuários que fazem a definição e controle da estrutura conceitual, de armazenamento dos dados, além de fazerem modificações e organizações no modelo físico (Estrutura) do banco de dados.
* São esses os usuários que fazem a definição e controle da estrutura conceitual, de armazenamento dos dados, além de fazerem modificações e organizações no modelo físico (Estrutura) do banco de dados.

## Sistemas de arquivos

Esta foi uma das primeiras formas encontradas para realizar o armazenamento das informações, aqui os programas que fazem o armazenamento contém todas as funcionalidades de controle e manipulação dos dados.

Veja que este tipo de sistema criava sistemas isolados dentro de uma mesma empresa, ou seja, havia sistemas de áreas relacionadas que trabalhavam de forma separada, sem nenhuma ligação, veja a representação abaixo.

![Sistemas isolados](imgs/sistemas-isolados.PNG).
![Sistemas isolados](imagens/sistemas-isolados.PNG).

Perceba que as áreas fazem a manipulação do mesmo dado (Produto), porém sem haver comunicação entre elas, com este tipo de sistema gera-se redundância de dados.
Perceba que as áreas fazem a manipulação do mesmo dado (Produto), porém sem haver comunicação entre elas, com este tipo de sistema gera-se redundância de dados.

Veja que, redundância ocorre quando o dado está representado no sistema várias vezes, como exemplo há o Produto, que está em dois lugares diferentes, mesmo se tratando do mesmo produto.

Expand Down Expand Up @@ -107,7 +107,7 @@ Acima foi citado que os sistemas de arquivos geram redundância, porém nem semp

Ao realizar o compartilhamento dos dados, o problema de redundância não controlada dos dados é resolvido, uma vez que os dados estarão centralizados e poderão ser utilizados por diversos sistemas, veja abaixo:

![Sistemas integrados com dados compartilhados](imgs/sistema-integrados.PNG)
![Sistemas integrados com dados compartilhados](imagens/sistema-integrados.PNG)

Veja que, todas as áreas que fazem o uso do Produto estarão acessando a mesma informação, assim quando uma área modificar estes dados, as demais saberão e poderão tomar decisão mais acertivas.

Expand Down Expand Up @@ -150,7 +150,7 @@ De acordo com Date `O sistema de banco de dados é basicamente um sistema de man
Um sistema de banco de dados é composto por:
* 1° - Usuários que fazem a utilização dos programas de aplicação;
* 2° - Programas de aplicação (Que fazem acesso aos dados);
* SGBD
* SGBD
* 3° - Programas de processamento de consulas;
* 4° - Programa de acesso aos dados;
* Banco de dados
Expand All @@ -159,7 +159,7 @@ Um sistema de banco de dados é composto por:

A estrutura descrita acima, pode ser visualizada na imagem abaixo:

![Sistema de banco de dados](imgs/sistema-db.PNG)
![Sistema de banco de dados](imagens/sistema-db.PNG)

## Modelos de dados

Expand Down Expand Up @@ -215,7 +215,7 @@ Dentro deste modelo há alguns conceitos que devem ficar bastante claros, para q
* A cardinalidade indica a quantidade de instâncias de relacionamento nas quais uma instância de entidade pode participar.
* Cardinalidade máxima: É o número máximo de ocorrências de entidade associadas à uma ocorrência da entidade em questão através de relacionamento.
* Apenas duas cardinalidades máximas são de nosso interesse, as:
* de valor 1;
* de valor 1;
* de valor n.
* Utilizada para classificar relacionamentos binários
* Classificamos os relacionamentos binários em:
Expand Down Expand Up @@ -261,7 +261,7 @@ Esta é uma forma que permite expressar estruturas de hierarquia e especializaç
* Um relacionamento é uma associação entre tabelas
* Na modelagem entidade-relacionamento não é permitido
- Associar uma entidade com um relacionamento;
- Associar dois relacionamentos entre si.
- Associar dois relacionamentos entre si.

Para entender melhor a entidade associativa, veja a figura abaixo:
![Entidade associativa](modelos/associativa.PNG)
Expand All @@ -275,7 +275,7 @@ Modelo de dados que representa a estrutura de dados de um banco de dados conform

![Modelo lógico](modelos/logico_1.PNG)

Um modelo lógico de um banco de dados relacional deve definir quais as tabelas que o banco de dados contém e, para cada tabela, quais os nomes das colunas.
Um modelo lógico de um banco de dados relacional deve definir quais as tabelas que o banco de dados contém e, para cada tabela, quais os nomes das colunas.

Funcionário(id_funcionario, nome, cargo, id_empresa) `id_empresa referencia Empresa`

Expand Down Expand Up @@ -345,19 +345,19 @@ Para casos em que há generalização/especialização, há três alternativas p
* Neste caso cria-se uma coluna para identificar o tipo da entidade, e todos os atributos de cada tipo ficarão na mesma tabela

Exemplo:
![Alternativa 1](imgs/alternativa_1.PNG)
![Alternativa 1](imagens/alternativa_1.PNG)

* 2° - Tabela para a entidade genérica e as entidades especializadas;
* Nesta alternativa cria-se tabelas para cada uma das especializações, e essas são ligadas com a tabela especializada/generalizada utilizando a chave primária da mesma;

Exemplo:
![Alternativa 2](imgs/alternativa_2.PNG)
![Alternativa 2](imagens/alternativa_2.PNG)

* 3° - Tabelas apenas para as entidades especializadas.
* Por fim, nesta alternativa, cria-se tabelas apenas para as especializações

Exemplo
![Alternativa 3](imgs/alternativa_3.PNG)
![Alternativa 3](imagens/alternativa_3.PNG)

OBS: Esta alternativa não se aplica para especializações parciais

Expand All @@ -369,12 +369,12 @@ Para lembrar:

* Integridade de identidade (ou entidade)
* A chave primária não pode conter um valor nulo (*null*) e identifica exclusivamente cada linha de dados em uma tabela.

* Integridade referencial
* Se uma determinada tabela `A` possui uma chave estrangeira, a qual é chave primária em outra tabela `B`, então ela deve ser:
* Igul a um valor de chave primária existente em `B`; ou
* ser nula (*null*)

* Isso ocorre porque não pode existir na chave estrangeira, um valor que não exista na tabela na qual ela é chave primária.

* Integridade de domínio
Expand Down Expand Up @@ -438,11 +438,11 @@ Neste caso o pnumero e horas são atributos aninhados, o que também não é per
FUNC_PROJ1(Ident, fnome)
FUNC_PROJ2(Ident, pnumero, horas)

Pronto, entidade novas criadas para resolver o problema. O ponto interessante é que, cada uma das entidades ficaram com suas devidas características, isso porque antes o funcionário carregava consigo características de seu relacionamento com o projeto, o que não ocorre mais, já que há uma tabela apenas para descrever este relacionamento.
Pronto, entidade novas criadas para resolver o problema. O ponto interessante é que, cada uma das entidades ficaram com suas devidas características, isso porque antes o funcionário carregava consigo características de seu relacionamento com o projeto, o que não ocorre mais, já que há uma tabela apenas para descrever este relacionamento.

### Segunda forma normal (2FN) - Eliminar dependência parcial

Para estar na segunda forma normal, é necessário antes estar na primeira forma normal.
Para estar na segunda forma normal, é necessário antes estar na primeira forma normal.

`Todos os atributos não chaves da tabela devem depender unicamente da chave primária (não podendo depender apenas de parte dela). Para deixar na segunda forma normal, é preciso identificar as colunas que não são dependentes da chave primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova tabela com esses dados`. adaptado de: Vanessa, Izabela. 2011.

Expand Down
File renamed without changes
File renamed without changes.

0 comments on commit 62991fc

Please sign in to comment.