Ciências da computação dia 180

pontos de função com base no tamanho da entrada e saída de uma função, qual a pontuação dela estimativa esforço quantidade de pessoas para fazer o software

April 28, 2025 · 1 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 181

Hierarquia de Chomsky Descreve os tipos de autômatos e o que eles conseguem fazer

April 28, 2025 · 1 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 182

Exceptions NO_DATA_FOUND -- exceção que informa que nenhum dado foi encontrado CASE_NOT_FOUND -- variavel do case não existe TOO_MANY_ROWS -- quando um SELECT INTO retorna varias linhas OTHERS -- error generico DECLARE ... BEGIN -- se voce tiver varios inserts, e você quer que a alteração já seja salva -- use o commit depois dele, lembrando que se for apenas um comando, não -- há necessidade de fazer isso INSERT .... COMMIT; INSERT ... EXCEPTION WHEN <error> THEN ... WHEN NO_DATA_FOUND THEN ... WHEN CASE_NOT_FOUND THEN ... WHEN TOO_MANY_ROWS THEN ... WHEN OTHERS THEN --erro generico ... END; -- para levantar um erro use o seguinte comando raise application_error(<number>, <message>, [TRUE|FALSE]); -- o numero vai de -20000 ate -20999 -- e o TRUE/FALSE diz se é pegar pegar todos os erros (TRUE) ou só -- o primeiro (FALSE) Cursor cursor implícito → consultas em PL/SQL que retorna 1 linha cursor explicito → usado quando for retornar várias rows CURSOR <cursor_name> [parametro1, parametro2, ...] IS SELECT ...; OPEN cursor_name; -- executa a query do cursor e faz com que os valores -- virem um array FETCH cursor_name INTO variavel1, variavel2; -- pega uma linha do cursor CLOSE cursor_name; -- finaliza o cursor cursor_name%FOUND -- TRUE quando o fetch retorna sucesso cursor_name%NOTFOUND -- TRUE quando não foi possivel pegar mais nada (ultimo fetch) cursor_name%ISOPEN -- TRUE quando o cursor esta em uso cursor_name%ROWCOUNT -- total de fetchs com sucesso cursor_name%status -- status/eventos do cursor RAPD(value, total, pad); -- padding de texto %ROWTYPE -- deixa mais pesad a execucao

April 28, 2025 · 2 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 183

Qualidade de software modelos de qualidade (semelhante ao ISO) → CMMI, MPS.BR trabalho com qualidade = produto de qualidade implica: um software confiável, sem defeitos, acessível, seguro, portável, interoperável(sistema capaz de se comunicar com outros) pode ser algo subjetivo ao cliente, sendo necessário estipular as expectativas e tentar quebra-las gerenciamento total da qualidade → atender as expectativas do cliente; desenvolver processos para melhoria constante para garantir a qualidade → usar métodos, técnicas, ferramentas, versionamento, padrões, métricas, registros, etc. controle de qualidade → evitar que produtos defeituosos sejam entregues garantia de qualidade → fazer o software com o minimo de defeitos avaliação → classificação dos processos/produtos auditoria → verificar se o produto segue os padrões/normas através de evidências de testes, observações, medições, etc. Teste de software objetivo é encontrar erros, e não fazer os testes passarem Falha → software não consegue executar sua função (aparente ao usuário) Falta → causa de uma falha Erro → instabilidade que vem de uma falta e pode se tornar uma falha Dados de teste → amostra do que seria uma entrada real Casos de teste → cenários de execução usando os dados de teste e sua saída esperada Eficácia dos testes → quanto mais erros você consegue descobrir com o menor esforço Teste funcional(caixa preta, black box) → coloca o software para funcionar e vê como ele age com as entradas (analisa partes pequenas do software, como funções, requisitos) Teste Estrutural(caixa branca, white box) → Baseado no código, analisá o funcionamento interno (complexidade ciclomática, big O, etc) Técnicas Para testes black box partição por equivalência → quando os possíveis dados de entrada estão em blocos de válidos e inválidos, então pega-se alguns dados validos e inválidos para avaliar análise de valor limite → quando seus dados também estão divididos em blocos de válidos e inválidos, mas dessa vez você pega aqueles que estão no limite entre um bloco e outro Tabela de decisão → tabela criada a partir das regras de negócio, visando testar todos os casos possíveis (diferentes combinações de entradas) Técnicas para testes White box complexidade ciclomática → vê a quantida de desvios do fluxo principal do programa (quantidade de ifs,for, while, etc). Nesses casos é necessário criar testes para cada caminho possível. Para isso podemos usar uma espécie de autômato, e o numero de caminhos é = numero de transições (E) — número de estados (N) + 2 V = E — N + 2 ...

April 28, 2025 · 2 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 184

No exemplo acima, temos uma memoria genérica em série. Nesse exemplo, temos 4 bancos de memória (B0-B3), 3 barramentos (dados (D), endereços(A) e saída de dados(O)), além de elementos como DE (decodificador de endereços), e os componentes (parecidos com uma porta not) ligados ao bus de saída, representando buffers com um trigger. Nesse circuito, podemos setar o valor que queremos no barramento de dados, podemos configurar o endereço que o dado vai ser guardado no barramento de endereços. Ao darmos pulsos no clock(do qual foi omitido aqui), os dados passarão para os componentes, e quando ativarmos o E(enable, para escrita), o decodificador de endereços usará uma logica interna para determinar quais bancos serão necessários para guardar os dados, fazendo com que dados diferentes fiquem em endereços diferentes, fazendo então com que tenhamos mais endereços para guardar dados do que em circuitos paralelo). ...

April 28, 2025 · 2 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 185

April 28, 2025 · 0 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 186

Estratégias de teste teste de unidade → testa a menor unidade do software (classes, funções, etc) de forma independente teste de integração → testa a comunicação entre as partes (entre classes, por exemplo) teste de validação → testa os requisitos teste de sistema → coloca o projeto em um sistema próximo do real e testa-se , por exemplo, requisitos não funcionais

April 28, 2025 · 1 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 187

Procedures procedimentos armazenados (como uma função sem retorno) pode ser escrito em PL/SQL, C, JAVA, etc. podem ser chamadas por softwares externos são compilados podem ser agendados não é permitido COMMIT, ROLLBACK, SAVEPOINT dentro deles CREATE OR REPLACE procedure_name [parametros] AS [variaveis] <bloco PL/SQL>; -- parâmetros podem ser de entrada(IN) ou de saida(OUT) -- por padrao ele é IN <name> IN <type>; <name> OUT <type>; Triggers gatilho atrelado à uma tabela pode ser atrelado ao evento de INSERT, UPDATE e/ou DELETE não necessita de privilégios não é permitido COMMIT, ROLLBACK, SAVEPOINT dentro deles BEFORE, AFTER, statement, row -- trigger type INSERT, UPDATE, DELETE -- trigger event BEFORE INSERT OR UPDATE OF salario, funcao ON empregado -- type colunas tabela -- WHEN pode ser usado para dar uma restrição de quando o trigger vai ser -- rodado, exemplo: BEFORE INSERT OR UPDATE OF salario, funcao ON empregado WHEN salario > 10000 -- ao usar o BEFORE, você pode pegar os novos dados passados pela query usando -- o :NEW. essa clausula dara para você acesso à todos os novos dados -- para a clausula WHEN no inicio, não é necessário usar :NEW basta usar NEW BEFORE INSERT OR UPDATE OF salario, funcao ON empregado WHEN NEW.salario > 10000 ... IF(:NEW.salario == 2000) THEN .... .... -- como certas queries podem modificar varias linhas -- pode ser necessário utilizar a clausula FOR EACH ROW, aplicando o trigger -- para cada row modificada CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT OR UPDATE OF salario, funcao ON empregado FOR EACH ROW WHEN NEW.salario > 1000 ....; -- alem do NEW, há também o OLD, quando você vai deletar ou modificar algo -- sendo assim: -- INSERT: NEW -- UPDATE: NEW OLD -- DELETE: OLD -- obs: apenas os dados adicionados/editados são acessíveis por essas clausulas CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT OR UPDATE OF salario, funcao ON empregado FOR EACH ROW WHEN NEW.salario > 1000 AND OLD.funcao = 'RH' ....; -- se um trigger possui mais de um evento atrelado a ele, você possui três -- variaveis para verificar qual foi o evento: INSERTING, UPDATING e DELETING CREATE OR REPLACE TRIGGER trigger_name BEFORE INSERT OR UPDATE OF salario, funcao ON empregado FOR EACH ROW WHEN NEW.salario > 1000 AND OLD.funcao = 'RH' BEGIN IF INSERTING THEN ... ELSE ... END IF; ....;

April 28, 2025 · 2 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 187

Generalização dos limites fundamentais Continuidade funções deriváveis uma função pode no geral não ser continua, mas em algum pode ela pode ser você até pode simplificar a função original, mas sempre pense se isso não implicará em mudanças no domínio existem casos onde a função é definida em sf(a), mas em f(a) não

April 28, 2025 · 1 min · map[email:dpbm136@gmail.com name:Dpbm]

Ciências da computação dia 188

Maquina de Turing automato capaz de representar qualquer algoritmo computacional é um AFD não precisa de transições para todos os estados ele começa a ler a fita a partir de um símbolo inicial (como um δ) cada transição tem 3 parâmetros(leia -> escreva, vá) vá pode ser direita ou esquerda quando você não quer escrever outro valor, você coloca o mesmo (A -> A) pense em uma fita infinita, do qual uma cabeça de leitura pode ler, modificar valores e ir para a direita ou esquerda ...

April 28, 2025 · 1 min · map[email:dpbm136@gmail.com name:Dpbm]