Buscar

Módulo 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Paulista (UNIP)
Paradigma de Linguagem
Vladimir Camelo, MSc.
São Paulo, 2017
Conceitos fundamentais
Algoritmos
Algoritmos são encontrados em diversas situações da vida, por exemplo, ao ler uma bula de remédio vemos uma sequencia de passos para que possamos tomar o medicamento, isto é um algoritmo.
Segundo o dicionário Aurélio um algoritmo pode ser definido como um “Conjunto de regras e operações bem definidas e ordenadas, destinadas à solução de um problema, ou de uma classe de problemas, em um número finito de etapas”.
Em outras palavras, um algoritmo consiste em uma sequência de ações que devem ser executadas para a resolução de um problema ou para a realização de uma tarefa. Como exemplos de algoritmos utilizados em nosso dia a dia, podemos citar uma receita culinária, um manual com instruções de como montar um móvel.
Os algoritmos podem ser representados de diferentes formas, as principais representações são:
Descrição Narrativa: faz uso da linguagem natural para expressar os algoritmos, ou seja, para expressar os passos para a realização das tarefas.
Diagrama de Chapin: São utilizados representações em retângulos para determinar as ações.
Fluxogramas: é uma forma de representação gráfica que emprega formas geométricas para indicar as diversas ações (passos) e decisões que devem ser executadas para a resolução dos problemas. Também é conhecida por diagrama de blocos, pois os fluxogramas são constituídos por caixas ou blocos que contêm as instruções a serem realizadas. Essas caixas são conectadas por setas que indicam o fluxo das ações. Cada uma das formas geométricas utilizadas indica uma determinada ação.
Pseudocódigo (português estruturado, ou Portugol): utiliza uma linguagem intermediária entre a linguagem natural da descrição narrativa e a linguagem de programação. É a forma mais utilizada para representação de algoritmos computacionais, uma vez que é flexível, resumida, não propensa a ambiguidades e proporciona uma facilidade de tradução para uma linguagem de programação.
Programas
Os algoritmos são amplamente utilizados por estudantes e profissionais ligados à área da computação. Afinal, um programa de computador é, essencialmente, um algoritmo. Todos os computadores têm uma estrutura física similar, constituídos por: UCP (Unidade Central de Processamento), memória e dispositivos de entrada e saída. Esses componentes são interligados pelo barramento, configurando o que conhecemos como Arquitetura de Von Neumann.
A UCP, comumente chamada de processador, é uma das mais importantes partes do computador, pois ela é a responsável pelos cálculos, execução de tarefas e processamento de dados. Um processador executa um conjunto específico e particular de instruções ou comandos, conhecido como linguagem de máquina. A memória, por sua vez, é um dispositivo que permite que o computador armazene informações. Ainda temos os dispositivos de Entrada/Saída que conecta o computador ao ambiente externo, como o teclado, mouse, monitor, impressora etc. Por último, temos o barramento que interliga todos esses dispositivos.
Um programa nada mais é do que a codificação de um algoritmo que contém instruções a serem executadas pelo processador, resultando na resolução de uma tarefa pelo computador. Na prática, esses programas não são escritos diretamente na linguagem de máquina, mas em uma linguagem de programação que geralmente é independente do processador em que o programa será executado. Dessa forma, aumenta-se a portabilidade dos programas e a produtividade do programador. Como exemplos de linguagens de programação, temos C, C++, C#, Delphi, Java, Python, Prolog etc.
Linguagens de programação
Um computador nada mas é do que uma máquina capaz de transformar instruções em cálculos e por meio de um conjunto de cálculo realizar tarefas. Mas para isso é preciso informa a esta máquina o que deve ser calculado e como deve ser calculado. A função das linguagens de programação é exatamente essa, ou seja, servir de um meio de comunicação entre computadores e humanos.
Existem dois tipos de linguagens de programação: as de baixo nível e as de alto nível. Os computadores interpretam tudo como números em base binária, ou seja, só entendem zero e um. As linguagens de baixo nível são interpretadas diretamente pelo computador, tendo um resultado rápido, porém é muito difícil e incômodo se trabalhar com elas. Exemplos de linguagens de baixo nível são as linguagens binárias e a linguagem Assembly.
Exemplo de código em Assembly:
MOV r0, #0C ;load base address of string into r0
LOAD: MOV r1,(r0) ;load contents into r1
CALL PRINT ; call a print routine to print the character in r1
INC r0 ;point to next character
JMP LOAD ;load next character
Neste exemplo pode-se observar que Assembly é uma linguagem bastante complicada.
Já as linguagens de alto nível são mais fáceis de trabalhar e de entender, as ações são representadas por palavras de ordem (exemplo faça, imprima, etc) geralmente em inglês, foram feitos assim para facilitar a memorização e a lógica. Elas não são interpretadas diretamente pelo computador, sendo necessário traduzi-las para linguagem binária utilizando-se de um programa chamado compilador.
Quando programamos em uma linguagem de programação de alto nível primeiramente criamos um arquivo de texto comum contendo a lógica do programa, ou seja, é onde falamos ao computador como deve ser feito o que queremos. Este arquivo de texto é chamado de código-fonte, cada palavra de ordem dentro do código-	fonte é chamada de instrução. Após criarmos o código-fonte o computador irá durante o processo de compilação transformar isto para linguagem binária correspondente com a linguagem na qual estamos programando. O compilador irá gerar um segundo arquivo que chamamos de executável ou programa, este arquivo gerado é interpretado diretamente pelo computador.
Existem algumas linguagens de programação que não necessitam de compiladores, como o PHP, uma linguagem dedicada à produção de websites dinâmicos. As instruções em PHP são compiladas e executadas ao mesmo tempo.
Exemplo de código PHP (alto nível)
print (“Bem vindos!”);
print (” Vamos contar até 50:”);
for($x=1;$x<=50;$x++) {
 	print $x;
print ” “;
}
if(4 == 2) {
print’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ (“Fim do mundo! 4 é igual a 2!”);
} else {
print (“Ufa! 4 é diferente de 2″);
}
Cada linguagem de programação é diferente da outra, contendo palavras-chave próprias. Exemplos de linguagens de alto nível são C++, Java, C#, Delphi (Pascal), PHP, Visual Basic, etc
Processo de desenvolvimento de programas
Um processo de desenvolvimento de software pode ser visto como um conjunto de atividades organizadas, utilizadas para definir, desenvolver, testar e manter um software. Os principais objetivos do processo de desenvolvimento de software são: 
Definição das atividades a serem executadas; 
Após ser determinada a atividade quando esta deve ser executada; 
Pessoa ou grupo que deverá executar a atividade; 
Utilização de padrões e modelos no processo de desenvolvimento, com o objetivo de padronizar. 
Existem diversos processos de desenvolvimento de software, no entanto há algumas atividades básicas comuns à grande parte dos processos existentes, como por exemplo: Levantamento de requisitos; Análise de Requisitos; Projeto; Implementação; Testes; Implantação.
Levantamento de Requisitos: tem por objetivo, compreender o problema, dando aos desenvolvedores e usuários, a mesma visão do que deve ser construído para resolução do problema. Desenvolvedores e clientes, em conjunto, buscam levantar e priorizar as necessidades dos futuros usuários do software (necessidades essas denominadas como requisitos). E como um sistema de informações geralmente é utilizado para automatizar processos de negócio em uma organização, esses processos da organizaçãodevem ser bem compreendidos para que o restante das atividades do processo de desenvolvimento flua de acordo com as reais necessidades do cliente.
Análise de Requisitos: Esta etapa, também chamada de especificação de requisitos, é onde os desenvolvedores fazem um estudo detalhado dos dados levantados na atividade anterior. De onde são construídos modelos a fim de representar o sistema de software a ser desenvolvido. O interesse nessa atividade é criar uma estratégia de solução, sem se preocupar como essa estratégia será realizada, ou seja, utilizar as necessidades dos clientes, depois de compreendido o problema, para resolução do problema solicitado. Assim é necessário definir o que o sistema deve fazer, antes de definir como o sistema irá fazer. O que acontece com frequência, é quando as equipes de desenvolvimento partem para a solução do problema do software, sem antes ter definido completamente o problema em questão. Nesta fase deve-se então realizar a validação e verificação dos modelos construídos, antes de partir para solução do problema.
Validação: Assegurar que o sistema de software está atendendo às reais necessidades do cliente;
Verificação: verificar se os modelos construídos na análise estão em conformidade com os requisitos.
Projeto: Nesta fase é que deve ser considerado, como o sistema funcionará internamente, para que os requisitos do cliente possam ser atendidos. Alguns aspectos devem ser considerados nessa fase de projeto do sistema, como: arquitetura do sistema, linguagem de programação utilizada, Sistema Gerenciador de Banco de Dados (SGBD) utilizado, padrão de interface gráfica, entre outros. No projeto é gerada uma descrição computacional, mencionando o que o software deve fazer, e deve ser coerente com a descrição realizada na fase de análise de requisitos. O projeto possui duas atividades básicas: projeto da arquitetura (ou projeto de alto nível), e projeto detalhado (ou projeto de baixo nível). Em um processo de desenvolvimento orientado a objetos, o projeto da arquitetura normalmente é realizado por um arquiteto de software. O projeto da arquitetura visa distribuir as classes de objetos relacionados do sistema em subsistemas e seus componentes, distribuindo também esses componentes pelos recursos de hardware disponíveis. Já no projeto detalhado, são modeladas as relações de cada módulo com o objetivo de realizar as funcionalidades do módulo. Além de desenvolver o projeto de interface com o usuário e o projeto de banco de dados.
Implementação: Nessa etapa, o sistema é codificado a partir da descrição computacional da fase de projeto em uma outra linguagem, onde se torna possível a compilação e geração do código executável para o software. Em um processo de desenvolvimento orientado a objetos, a implementação se dá, definindo as classes de objetos do sistema em questão, fazendo uso de linguagens de programação como, por exemplo: Delphi (Object Pascal), C++, Java, etc. Pode-se também utilizar na implementação ferramentas de software e bibliotecas de classes preexistentes para agilizar a atividade, como também o uso de ferramentas CASE, que dinamizam o processo de desenvolvimento, nas várias atividades, onde inclui-se geração de código-fonte, documentação, etc.
Testes: Diversas atividades de testes são executadas a fim de se validar o produto de software, testando cada funcionalidade de cada módulo, buscando, levando em consideração a especificação feita na fase de projeto. Onde o principal resultado é o relatório de testes, que contém as informações relevantes sobre erros encontrados no sistema, e seu comportamento em vários aspectos. Ao final dessa atividade, os diversos módulos do sistema são integrados, resultando no produto de software. 
Implantação: Por fim a implantação compreende a instalação do software no ambiente do usuário. O que inclui os manuais do sistema, importação dos dados para o novo sistema e treinamento dos usuários para o uso correto e adequado do sistema. Em alguns casos quando da existência de um software anterior, também é realizada a migração de dados anteriores desse software.
Estilo e qualidade de software
Existem diversos tipos de softwares no mercado e que são distribuídos com tipos diferentes de licenças, cada uma com especificações diferentes, entre elas podemos citar: 
Software proprietário: Neste tipo de licença, toda a cópia, redistribuição, ou modificação são estritamente proibidas, o que pode levar a processos judiciais. Neste tipo de licença, encontramos vinculados alguns dos mais conhecidos programas mundiais, caso do Windows, Adobe Photoshop, Adobe Dreamweaver, Adobe Flash, Mac OS, entre outros.
GNU General Public License (GPL): O GPL é a licença com maior utilização por parte de projetos de software livre, em grande parte pela sua utilização no mundo Linux. 3 grandes restrições que gerem e protegem o software com licença GPL:
Software livre pode ser distribuído e comercializado por qualquer pessoa, mas o distribuidor tem de avisar o receptor acerca dos termos GPL
Qualquer pacote de software derivado de software protegido pela GPL, também tem de estar abrangido pela GPL
Código fonte de todo o software protegido pela GPL tem de estar acessível publicamente.
Software livre: O conceito “Software Livre” refere-se a qualquer programa que pode ser usado, copiado, estudado, modificado e redistribuído sem nenhuma restrição. Este conceito opõe-se ao conceito de “software proprietário”, mas não ao termo de “software comercial”. Este tipo de licença, como o próprio nome dá a entender, baseia-se em quatro liberdades:
Liberdade de executar o programa, para qualquer propósito;
Liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades. Para tal o acesso ao código – fonte é necessário.
Liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo.
Liberdade de aperfeiçoar o programa, e libertar os seus aperfeiçoamentos, para que deste modo, toda a comunidade se beneficie deles. Para tal o acesso ao código – fonte é necessário.
Código aberto: ou como é conhecido “open source”, refere-se ao mesmo software chamado de software livre, ou seja aquele que respeita as quatro liberdades anteriormente referidas. A única diferença entre os dois está no discurso. Enquanto o termo “software livre” é usado em questões éticas, direitos e liberdade, o termo “código aberto” é utilizado para discursar sobre o ponto de vista puramente técnico, sem que leve a conflitos de questões éticas.
Software comercial: Software desenvolvido por uma empresa com fins lucrativos com a sua utilização. É de referir que “comercial” e “proprietário” não são o mesmo, pois, a maioria dos softwares comerciais é de software proprietário, mas existem softwares livres que são comerciais, e existem softwares não-livres e não comerciais.
Software gratuito (freeware): Mais conhecido por freeware é qualquer programa cuja utilização não implica o pagamento de licenças para a sua utilização. Mas não se enganem que para este tipo de licença que não é necessário o contrato de licenciamento para a sua utilização. Normalmente, ao instalar um software deste tipo, o utilizador deverá concordar com o seu contrato de licenciamento que normalmente acompanha o programa, pois neste podem estar restrições como sendo freeware de uso pessoal, acadêmico, militar e governamental. Pois, não é por ser freeware que ele pode ser utilizado por qualquer um.
Introdução à qualidade de software
A qualidade existe desde os tempos dos reis e faraós. Era controlada por inspetores que aceitavam ou rejeitavam os produtos, caso não cumprissem as especificações. Hoje, qualidade é uma palavra muito difundida nas empresas: fácil de falar e difícil de fazer. Entretanto, existe pouco entendimento do que vem a ser qualidade. Qualidade é um conceito complexo que possui significados diversos para diferentes pessoas, em um contexto altamente dependente (não é trivial).
Qualidade desoftware é, portanto, um conjunto de propriedades a serem satisfeitas, em determinado grau, de modo que o software satisfaça as necessidades de seus usuários. Também é um conceito multidimensional, realizando-se por intermédio de um conjunto de atributos ou características. Empresas de desenvolvimento de software devem assumir a responsabilidade de estabelecer níveis aceitáveis de qualidade e meios para verificá-los.
A Internacional Organization for Standardization (ISO) é uma organização mundial criada em 23 / 09 / 1974 - Genebra/Suíça, sua principal finalidade é criar mecanismos e padrões que possibilitem criar, organizar e gerenciar a qualidade na produção de produtos (seja ou não um software). No Brasil a Associação Brasileira de Normas Técnicas (ABNT) tem por objetivo realizar a tradução das normas ISO e adaptá-las para o contexto nacional.
Modelo de qualidade de software proposto pela ISO/IEC
Itens necessários para que seja possível o mínimo na qualidade de um software
Grau de excelência para o produto e para a organização;
Conformidade com requerimentos do cliente;
A totalidade de características de uma entidade que garantem sua habilidade em satisfazer necessidades implícitas ou não;
Adequação ao uso;
Adequação ao propósito;
Inexistência de defeitos, imperfeições, ou contaminação;
Consumidores satisfeitos.
Gestão da qualidade de software
A gestão da qualidade esta baseada nos seguintes pilares:
Orientação por objetivos; e 
Orientação pelo cliente.
Com base nestes pilares é possível afirmar que a gestão da qualidade de produtos deve se preocupar em:
Realizar a visão e a missão organizacional; e
Alcançar os objetivos e atingir as metas organizacionais.
Tudo isso tentando satisfazer o interesse dos stakeholders .
Implementação de um sistema de gestão da qualidade
Diagnóstico organizacional: nesta fase, elabora-se o plano estratégico da organização, com a definição da missão, visão, objetivos e metas e a análise SWOT. Também são levantados os processos desenvolvidos pela organização;
Capacitação: Inicia-se a capacitação com a conscientização da cúpula estratégica. Sem o envolvimento desta, o novo sistema de gestão não será bem implementado;
Conscientização: do corpo gerencial e dos multiplicadores. Estes últimos serão responsáveis pela conscientização dos empregados e pela implementação do novo sistema de gestão;
Sistematização e documentação do sistema de gestão: Os processos antigos são revistos e adequados ao novo plano estratégico. Os que não se enquadrarem nos novos objetivos organizacionais são eliminados. Novos processos são criados, se necessário. Estes processos são documentados e é elaborado um manual da qualidade com os objetivos organizacionais, missão, visão e metas, resumo dos processos da organização e postulado ético. Todos os processos da organização ficam disponíveis para os funcionários consultarem e propor melhorias;
Implementação e treinamento: Cada funcionário passa por processo de conscientização sobre o novo sistema de gestão e é treinado, on the job, sobre os processos em que atua. A extensão dos treinamentos formais variam de acordo com as necessidade e possibilidades de cada organização. É elaborado um cronograma para a implementação dos novos processos de trabalho;
Modelo de qualidade de software ISO 9126
A norma 9126 se foca na qualidade do produto de software, propondo Atributos de Qualidade, distribuídos em seis características principais, com cada uma delas divididas em sub-características, conforme figura abaixo
20 Passos para se implantar um sistema Gestão da qualidade
Comprometimento com a qualidade total;
Formação do comitê gestor da qualidade total;
Criação das equipes de gestão da qualidade;
Treinamento do comitê gestor em qualidade total;
Criação da visão e dos princípios da gestão;
Estabelecimento de macro objetivos estratégicos;
Comunicação e divulgação;
Identificação das forças e fraquezas organizacionais;
Identificação de apoiadores e resistores (resisters);
Avaliação da satisfação e atitudes dos funcionários;
Avaliação da satisfação dos clientes;
Planejar a implementação e rodar o PDCA;
Identificar os projetos;
Compor as equipes;
Treinar as equipes;
Ativar e gerir as equipes;
Dar o feedback das equipes ao comitê gestor;
Dar o feedback da satisfação dos clientes;
Dar o feedback da satisfação dos funcionários;
Modificar a infra-estrutura, se necessário

Continue navegando