You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Linkedição: Compilação das bibliotecas externas junto do código fonte
TAD (Tipos Abstratos de Dados)
Organização de arquivos (uso de functions e typedefs para organizar o código)
Tipos de Dados: Variaveis | Constantes
Definição / Assinatura: Funções | Métodos
intsoma(intn1, intn2) {
returnn1+n2;
}
arquivos .h e .c
Lista encadeada
Inserção e remoção no inicio, meio e fim.
Inserção no fim: Checa o elemento que aponta como proximo null e faz este apontar para o novo elemento
Inserção no meio:
Variavel Auxiliar: Utilizada para inserção entre dois registros (recebe o elemento anterior, efetuando uma copia, para romper a ligação entre este e o próximo, guardando as informações para linkar o novo elemento)
Inserção no inicio: Procura para qual endereço proximo a cabeça esta apontando, que apontara para o novo elemento, que apontara para o antigo inicio da lista
Pilhas
LIFO: Last in, First Out
Para remover determinado objeto da pilha, necessário remover todos que estão 'acima' dele.
Inserção é feito no ultimo, retirada feita no ultimo
Filas
FIFO: First in, first out
Primeiro objeto é processado e finalizado, próximo processo então passa por mesmo processo, subsequentemente.
Necessidade de criação e melhoria de padrões de desenvolvimento
Gerar valor (financeiro, social, educativo, etc)
O que é um escopo?
O que define o sucesso de um projeto?
Concluido dentro do prazo previsto
Concluido dentro do orçamento previsto
Ter atingido a qualidade e o desempenho desejados
Concluído com o minimo possível de alterações em seu escopo
Ter sido aceito sem restrições pelo contratante ou cliente
ISO/IEC 9162
Qualidade Interna (Construção)
Qualidade Externa (Testes)
Qualidade em Uso (Custo-Benefício, habilidade para operar em ambiente colaborativo)
Acurácia: O que se espera do projeto x O que o projeto entregou;
Segurança de acesso: Proteção de informações,
Qualidade Interna e Externa
Confiabilidade
Recuperabilidade
Usabilidade
Atratividade
Modificabilidade
Testabilidade
Engenharia de Requisitos
Técnicas de Levantamento de Requisitos
Documentação
Observação
Questionário
Entrevista
Níveis de descrição
Requisitos de usuário: serviços referentes a relação usuário-sistema, feito para leitura pelo usuário (não-técnico, informal, nas palavras do usuário);
Requisitos de sistema: implementação e estrutura do sistema, feito para leitura pelos colaboradores do projeto (técnico, formal, funções e requisitos internos do sistema, definido pelo desenvolvedor);
Requisitos de software
Requisitos funcionais: Declarações de serviços que o sistema deve fornecer (requisitos de sistema, requisitos de usuário);
Requisitos não-funcionais: Restrições aos serviços e funções oferecidos pelo sistema (requisitos que o usuário não visualiza, não pede, se encaixam em 3 categorias: de produto, organizacionais, externos);
Requisitos de produto: Especificam ou restringem o comportamento de software. Configuração mínima, de hardware e software (Placas Gráfica, Softwares, bibliotecas, internet, etc);
Requisitos organizacionais: Derivados das políticas e procedimentos da organização e\ou cliente. Funções restrita a determinados departamentos (consulta de boletos apenas para financeiro, etc);
Requisitos externos: Derivam de fatores externo ao sistema e seu processo de desenvolvimento. Regras de adequação, normas júridicas, nota fiscal;
Diagrama de Caso de Uso
Ator: Qualquer elemento externo que interaja com o software;
Herança, Generalização
Generalização: Agrupamento de informações atreladas a uma determinada ação
POO - Conceitos de OO
Classificação: Nível do objeto (ex: admin, superadmin, convidado);
Abstração: Características (Atributos) e Ações (Métodos) da classe;
Instância: Item de conjunto representado pela classe, com as mesmas características e comportamentos da classe;
Visibilidade
# = Protected
+ = Public
- = Private
~ = Package
Tipos de associação
Associação Binária: Duas classes interconectadas, sem dependência uma da outra (um não depende do outro para existir, apenas uma linha simples);
Agregação: Um objeto todo toma informações de um objeto-parte, não necessariamente dependente (classe não depende da outra para existir, losango vazio);
Composição: Semelhante a agregação, mais com um vinculo mais forte, implicando em dependência (classe depende da outra para existir, losango preenchido);
Generalização: Ocorrência de herança de classes, agrupamento de classes e seus atributos à uma entidade todo (seta conectada à entidade-todo);
Tipos de diagramas
Diagrama de Pacotes
Serve para deixar o projeto organizado. Dentro de cada pacote vai as classes referentes (ex: interfaces, classe, etc).
Dependência: Um pacote depende do outro para funcionar (ex: pacote de telas depende de pacote de dados)
Diagrama de Atividades
Serve para demonstrar as atividades efetuadas pelo algoritmo desde seu ínicio até o fim.
Gravar videos explicando o funcionamento do seguintes algoritmos:
MergeSort
QuickSort
ShellSort
Tópicos do vídeo:
Introdução: Apresentação da história do algoritmo, criador e especificações.
Pseudocódigo: Demonstração do pseudocodigo que representa o algoritmo.
Exemplo: Mostrar funcionamento do algoritmo com exemplo em C.
Ordenação
Conceito: Operação de rearranjar os dados em uma determinada ordem (alfabético, crescente, decrescente, etc.).
Observações: Devem ser considerados tempo gasto pela ordenação e uso econômico de memória na escolha do algoritmo.
Principais Algoritmos
Bubble Sort ou trocas sucessivas: Método simples de ordenação que faz trocas sucessivas com base em comparações, flutuando o elemento pelo vetor, trocando ele pelo seu 'parente' em caso positivo da comparação, até esse alcançar o fim do vetor. Esse processo é repetido sucessivamente até o vetor ser organizado. A cada iteração, o indice é decrementando em um, evitando repetir a troca em campos já ordenados.