terça-feira, 13 de novembro de 2012

Questões para debate


1)      O que é direito?

Direito é o ramo das ciências humanas que estuda o conjunto de todas as leis e disposições que regulam obrigatoriamente as relações da sociedade, com o objetivo de ir em busca aos direitos do ser humano como membro do meio social, diminuindo as injustiças sociais, as desigualdades e analisar todos os trechos não muito compreensivos da lei.

2)      O que é lei?

Lei é uma norma ou conjunto de normas jurídicas criadas através dos processos próprios do ato normativo e estabelecidas pelas autoridades competentes para o efeito. Fonte: http://pt.wikipedia.org/wiki/lei.


3)      O que é jurisprudência?

Jurisprudência é derivado da conjunção dos termos em latim, jus(direito) e prudentia (sabedoria), pelo que entende-se como a ciência do direito vista com sabedoria, ou, simplesmente, o direito aplicado com sabedoria. Atualmente se entende como jurisprudência a sábia interpretação e aplicação das leis a todos os casos concretos que submetam-se a julgamento da justiça. Ou seja, o habito de interpretar e aplicar as leis aos fatos concretos, para que assim, se decidam as causas. Fonte: http://condoworks.com.br/noticias/id/293/o-que-e-jurisprudencia

4)      Na sua opinião o que é crime (típico, antijurídico e culpável)

·          Crime típico seria uma omissão praticada pelo individuo que está descrito na lei como delito;
·         Crime antijurídico é que a conduta positiva ou negativa, além de típica, sendo ela contraria ao direito, sendo oposição ou contrario entre o fato e o direito.
·         Culpável é o elemento subjetivo do autor do crime. Sendo aquilo que se passa na mente daquela pessoa que praticou o delito.


5)      O que é justiça?

Justiça diz respeito à igualdade de todos os cidadãos. É principio básico de um acordo que objetiva manter a ordem social através da preservação dos direitos em sua forma legal (constitucionalidade das leis) ou na sua aplicação a casos específicos da sociedade (litigio). Fonte:http://pt.wikipedia.org/wiki/justi%C3%A7a

6)      Quem possui competência para aprovação de leis?

As leis no caso do Brasil são elaboradas e aprovadas pelas assembleias legislativas Municipal, estadual e federal, leis para repercussão nacional são votadas na Assembleia Legislativas pelos Deputados Federais, No âmbito estadual pelos Senadores e Deputados Estaduais e no âmbito municipal pelos vereadores.


7)      Analise a frase: “uma lei entra em vigor sempre na data de sua publicação?

As leis tem um tempo para serem aprovadas pelo diretório responsável pela sua elaboração, feito a aprovação da mesma e sendo ela publicada a nação ou instituição e a partir disso ela passa a vigorar.

8)      Qual a diferença entre crime próprio e improprio?

Crime próprio seria o sujeito ativo-passivo do delito dependendo assim das condições apresentadas pelo delator sendo ele capaz de cometer tais delitos dependendo assim de causas naturais e sociais como exemplo roubo, assassinato entre outros, crime improprio. Crime improprio quando o delator comete um crime como omissão de socorro, exemplo atropelamento o motorista não dá apoio a pessoa cujo o atropelou sendo ele não ter a intenção de cometer o mesmo.

quinta-feira, 16 de agosto de 2012


Tópicos avançados
A profissão de engenheiro de software
Introdução
O Engenheiro de Software é uma das profissões de maior demanda nas áreas de alta tecnologia, todas grandes consumidoras de Tecnologia da informação como rede bancárias, automobilismo, petrolíferas, logística, comercio em geral e empresas de softwares.Na economia e na politica, vemos o papel importante desempenhado pela indústria de softwares. A indústria de softwares é um dos maiores produtos exportados pela Índia. Também vemos a importância desta indústria quanto a contribuição para a economia e a renda per capta da Irlanda ,antes considerado um pais pequeno e pobre da Europa. Dado um ambiente social em que não existam disparidades sócio econômicas, o uso de tecnologias de informação e comunicação parece ser promissor e possuir um potencial fantástico. Mas sabe-se que na realidade de países como o Brasil a exclusão digital  deve ser considerada ao se pensar no uso de novas tecnologias para que estas não venham a perpetuar a exclusão e criar um abismo ainda maior entre os que têm e os que não têm acesso às inovações tecnológicas, por isso o conceito de combater a exclusão digital faz parte de muitas politicas de distribuição de renda  no mundo globalizado, apesar de no Brasil ainda se pode dizer que a não é real a inclusão digital.
Formação e Certificação
De hoje em dia o número de cursos com titulo “Engenharia de Software” Ainda é precário em todo mundo, a maioria dos profissionais são formados por cursos derivados com nomes diferentes como Ciência da Computação que é o conjunto de técnicas e conhecimentos que possibilitam a criação de programas de informática. O bacharel em Ciência da Computação analisa as necessidades dos usuários, desenvolve programas e aplicativos, gerencia equipes de criação e instala sistemas de computação. É ele quem elabora softwares, desde programas básicos de controle de estoque até os mais complexos sistemas de processamento de informações, como os utilizados nas pesquisas espaciais e na medicina genética. Presente em todos os setores da economia, também dá assistência aos usuários, mantém redes de computadores em funcionamento e assegura as conexões com a internet. Em indústrias e institutos de pesquisa, implanta bancos de dados e instala sistemas de segurança para as operações de compra e venda pela rede. e Sistemas de Informação é a administração do fluxo de informações geradas e distribuídas por redes de computadores dentro de uma organização. O bacharel em Sistemas de Informação planeja e organiza o processamento, o armazenamento e a recuperação de informações e disponibiliza esse material para usuários. Cria, adapta e instala programas para facilitar as consultas e administra redes de computadores. Nas redes internas das empresas e outras instituições e na internet, monta e gerencia bancos de dados e ainda desenha páginas de sites, que devem ser funcionais e elegantes, trabalho que exige versatilidade e criatividade. Pode atuar em qualquer tipo de empresa, pública ou privada, de quase todos os setores - comércio, indústria ou de serviços. É fundamental que esse profissional tenha domínio do idioma inglês, já que praticamente todos os programas o utilizam. Em poucos países do mundo pode se dizer que há a profissão regulamentada de Engenheiro de Software o caso mais conhecido deste fato é no estado americano do Texas. Há vários programas de certificação em tecnologias especificas como de fabricantes famosos como IBM, Microsoft e Sun, em técnicas de áreas especificas oferecidos por sociedades como:
·         IFPUG (International Function Point Users Group) (http://www.ifpug.org) é uma entidade sem fins lucrativos com a finalidade de os processos de desenvolvimento e manutenção de aplicações com o uso de pontos de função. Os seus membros são voluntários e o corpo diretivo é eleito pelos filiados;
·         PMI é a sigla em inglês para Instituto de Gerenciamento de Projetos. Trata-se de uma organização internacional com sede nos Estados Unidos voltada para melhorar o desempenho de profissionais nessa área. O método tem recebido cada vez mais aceitação por parte de empresas nacionais.
Project Management Institute (PMI), com mais de 200.000 membros, é hoje a maior entidade mundial sem fins lucrativos voltada ao Gerenciamento de Projetos. O Chapter São Paulo, Brasil do PMI (PMI® - SP), primeiro estabelecido no Brasil, compartilha dos mesmos padrões, princípios e ideais que norteiam a atuação global da entidade na busca pelo aprendizado e desenvolvimento do profissionalismo do Gerenciamento de Projetos como ciência e arte.
Administração de Projetos, Gerência de projetos ou gestão de projetos é a aplicação de conhecimentos, habilidades e técnicas na elaboração de atividades relacionadas para atingir um conjunto de objetivos pré-definidos. O conhecimento e as práticas da gerência de projetos são melhores descritos em termos de seus processos componentes.
·         O Simulador ISTQB (International Software Testing Qualifications Board) toma como base possíveis questões para os exames ISEB/ISTQB/BSTQB, além de possuir uma interface intuitiva e próxima a do exame. Com ele, você terá mais de 350 questões aleatórias para testar o seu conhecimento para o exame. No resultado final será exibido o total de questões certas e erradas com a possibilidade de impressão.
·         Certificação ASQ (Qualidade de Software) Preparação para os exames de certificação "Quality Engineer" da American Society for Quality "Refresher Course"
Este " refresher course" é baseado no modelo americano de preparação de profissionais da Qualidade para certificação de ampla aceitação internacional.
A certificação é concedida pela própria American Society for Quality - ASQ, através de exames realizados no Brasil, coordenados pela International Member Unit - IMU, sob a responsabilidade de grupo de profissionais detentores de uma ou mais certificações ASQ. É programa de auto-estudo com acompanhamento, que sempre obteve resultados significativos, em termos de aprovação. Nas últimas provas aplicadas , o índice alcançado por treinandos preparados pela ABCQ superou 70%.
O material didático em que as sessões se apóia foi desenvolvido especialmente, alternando textos em português e em inglês. Dá ênfase a questões que se assemelham às do exame, trabalhadas no decorrer do treinamento e em simulações da prova oficial da American Society for Quality, em inglês, com duração de 5 horas e 160 questões de múltipla escolha. É, portanto, imprescindível agilidade no idioma, para leitura e interpretação.
·         O único programa engenharia software de Certified Software Development professional para grande difusão internacional, se encontra  informações sobre este programa no sitio que também são oferecidos no Brasil e possui recursos de preparação e uma amostra das questões do exame.
Carreira
Muitas organizações se denomina o Engenheiro de Software como analista de sistemas, o restante praticado nos anos 70, analise disciplina que geralmente representa uma parte do esforço de um projeto de software. Desde essa época tentou-se varias vezes de alterar o nome da profissão gerando-se polemica visando de a reserva de mercado de trabalho para pessoas qualificadas nessa especificação na área e não proteger o interesse do publico sendo objetivo da regulamentação em outros países.
A SBC fez o seguinte  levantamento:
·         O exercício do profissional de TI deve ser livre – sem depender de diploma (Comprovante de Curso)
·         Nenhum conselho pode impedir ao critério anterior
·         A autoregulação

Para chegar ao nível 3 a organização deve dominar a área de desenvolvimento de carreiras  que terão como meta oferecendo oportunidades de carreira á força de trabalho, seguindo o regimento com o auxilio do plano de carreira. Outras formas relacionam as carreiras com a gestão de competências e planejamento da organização, com analise de competências, o desenvolvimento de competências e o planejamento da força de trabalho. O modelo de carreiras Construx de Steve Mcconnell descreve uma forma de desenvolvimento da empresa dele, podendo assim servir de referencia para as carreiras de uma organização tendo os seguintes elementos:
·         Conjunto de áreas de conhecimento baseadas no Swebok que é SWEBOK (Guide to the Software Engineering Body of Knowledge) é o documento técnico desenvolvido com o apoio do IEEE (Instituto de Engenheiros Elétricos e Eletrônicos, também popularmente chamado de I3E). Esse documento estabelece uma classificação hierárquica dos tópicos tratados pela Engenharia de Software, onde o nível mais alto são as Áreas do Conhecimento. As dez Áreas do Conhecimento tratadas pelo SWEBOK são: Requisitos de Software, Projeto de Software, Construção de Software, Teste de Software, Manutenção de Software, Gerência de Configuração de Software, Gerência da Engenharia de Software, Processo de Engenharia de Software, Ferramentas e Métodos da Engenharia de Software e Qualidade de Software. É importante ressaltar as diferenças entre o SWEBOK e o PMBOK, enquanto o SWEBOK é dirigido especificamente para a Engenharia de Software.

·         Quatro Níveis de Capacidade conforme tabela a seguir:

Nivel de capacidade
Descrição
Introdutório
Executa tarefas básicas, sob supervisão e ações eficazes para o próprio desenvolvimento profissional.
Competencia
Executa trabalho eficaz e independente; serve de modelo para profissionais menos experimentos, a quem ocasionalmente orienta
Liderança
Executa trabalho exemplar; orienta outros profissionais; exerce liderança de projetos e possivelmente em nível da organização.
Mestria
Desempenha trabalho de referencia em uma área e tem profunda experiência em múltiplos projetos. Geralmente ensina e escreve artigos ou livros. Exerce liderança em nível da industria, inclusive fora da organização

·         Niveis de Carreira numeradas de 9 a 14, na tabela a seguir:

Nível
Descrição
Requisitos
9
Recém formado trabalho sob supervisão
-
10
Alguma formação de engenharia de software; menos de dois anos de experiência; trabalha sob supervisão limitada.
Introdutório: todas as áreas competência: 3 áreas
11
Formação solida de engenharia de software; trabalha de forma independente; experiente em pelo menos um projeto, em todas as etapas do ciclo de vida.
Introdutório: todas as áreas; competência: 6 áreas;
Liderança: 1 área
12
Participação essencial em projetos de sucesso; capacidade de decidir e resolver problemas rotineira e consistentemente; capaz de inovação, contribuições originais e orientação de outros.
Introdutório: Todas as áreas
Competência: 8 áreas
Liderança: 3 áreas
13
Capaz de tratar corretamente e decidir bem sobre todos os aspectos internos e externos de um projeto, contribuindo significativamente para lucratividade e a qualidade da organização.
Introdutório: Todas as áreas
Competência: 8 áreas
Liderança: 5 áreas; Mestria: 1 área
14
Capaz de vencer desafios técnicos muito difíceis e tomar decisões chaves para a organização. Conhecido dentro e fora da organização, com contribuições para o estado da arte. Longa carreira em engenharia de software
Intencionalmente não definidos.
15
Líder dentro da area de engenharia de software, capaz de desenhar e produzir em nível internacional. Responsável por definição de práticas da organização. Realizações reconhecidas em nível da industria
Intencionalmente não definidos.

Considerando a opinião deste autor, seria a Carreira em Y. muitas organizações só é possível progredir acima de certo grau da carreira assumindo funções gerenciais. Podendo assim ser considerado um erro este fato, devido a falta de personalidade e motivação por parte do profissional sendo assim dividida este tipo de carreira em duas partes
·         Técnicos
·         Gerenciais

Para se tornar do ramo gerencial um individuo tem que adquirir uma vasta esperiencia técnica exercendo papeis como:
·         Engenheiros de Requisitos: área de conhecimento fundamental para a construção de software.
·         Analista: profissionais da área que geram softwares.
·         Desenhista
·         Programador
·         Desenhista de testes
·         Programador de testes
·         Engenheiro de processos
·         Engenheiro da qualidade

A partir desta divisão pessoas que buscam pelo gerenciamento fazem cursos e treinamentos para capacitação, cursos denominados MBA, ou PMI, geralmente pessoas que já tem habilidades de gerenciamento de pessoas, sendo de dirigir e orientar pessoas da área técnica. Sendo exercido em cargos como Gerente de Projeto e Gerente de Produto, ou em cargos de duplo significado no caso do Gerente da Qualidade, Gerente de processos e o mais elevado seria Engenheiro de requisitos.
Profissionais que procuram por cargos técnicos será graduados que procuram pelo menos por uma formação acadêmica de nível de Mestrado, um exemplo desse caso seria os arquitetos e em níveis mais elevado o engenheiro de processos.

Código de ética  
Toda profissão tem um código de ética, visando assim proteger a profissão, o publico diante de ações do profissional o descumprimento deste código pode acarretar punições de proporção que pode levar a perda do direito de ser um profissional.
A ACM e IEEE formularam um código que será apresentado abaixo:
1)    Publico – engenheiros de software agirão de forma condizente com interesse publico
2)    Cliente e empregador – os engenheiros de softwares agirão de acordo com os melhores interesses de seus empregadores, desde que sejam de interesse do publico
3)    Produto – engenheiros darão garantia de seus produtos atenderão os requisitos solicitados pelo cliente
4)    Julgamento – os engenheiros de software manterão a integridade e independência em seu julgamento profissional
5)    Gestão – abordarão eticamente o desenvolvimento e manutenção do software realizada pelos engenheiros de softwares
6)    Profissão – os engenheiros promoverão a integridade e reputação da profissão de acordo com o publico
7)    Colegas – os engenheiros serão justos e darão apoio aos colegas
8)    Para Si – os engenheiros manterão para toda vida o aprendizado da profissão, promovendo e abordando eticamente na pratica da profissão.  

Fonte de IFPUG: carloscamposinfo.com
Fonte de: Engenheiro de Requisitos - livrodeengenhariaderequisitos.blogspot.com


terça-feira, 5 de junho de 2012


Memoria virtual é uma técnica sofisticada e poderosa de gerencia de memoria, onde as memorias principal e secundária são combinadas, dando ao usuário a ilusão de existir uma memória muito maior que a capacidade real da memória principal, fundamenta-se em vão vincular o endereçamento feito pelo programa. Existe uma forte relação entre o gerenciamento de memória virtual e a arquitetura de hardware do computador, por motivos de desempenho sendo implementadas algumas ações da memoria virtual para o hardware. O compartilhamento de memória é extremamente importante em aplicações que precisam compartilhar dados de memória principal.
Parecido com o compartilhamento de códigos, o mecanismo de paginação permite que processos façam o mapeamento de uma mesma área na memoria e tendo acesso compartilhamento de leitura e gravação.
A memoria virtual por paginação é a forma de gerenciamento de memoria onde o espaço de endereçamento virtual e o espaço de endereçamento real são divididos em blocos iguais em tamanho chamando-se paginas. Paginas no espaço virtual são chamadas paginas virtuais e paginas no espaço real são denominados paginas reais ou frames. Podemos apontar como politicas de busca de paginas a paginação por demanda que são as paginas do processo são transferidas da memória secundária para a principal somente quando referenciadas; na paginação antecipada o sistema carrega para a memoria principal, além da pagina referenciada outras que podem ou não ser necessárias ao processo ao longo do seu processamento isto pode ser aplicada na criação de um processo ou na ocorrência de um  page fault. As politicas de alocação de páginas determina quantos frames cada processo pode manter na memoria principal tendo assim duas alternâncias básicas: Alocação Fixa e Alocação Variável. Os dois problemas são se o numero máximo de paginas alocadas for muito pequeno, o processo tenderá a ter um elevado numero de page faults, o que pode impactar no funcionamento do sistema e o outro é no caso o numero de paginas seja muito grande, cada processo irá ocupar na memoria principal um espaço maior do que o necessário, reduzindo o numero de processos residentes e o grau de multiprogramação.
As Politicas de substituição de páginas é  o processo quanto atinge o seu limite de alocação de frames e necessita alocar novas paginas na memoria principal, o sistema operacional deve selecionar, dentre diversas paginas alocadas, qual deverá ser liberada.

Os algoritmos de substituição de página são:

Ótimo:
O algoritmo ótimo seleciona para substituição uma página que não será mais referenciada no futuro ou aquela que levará o maior intervalo de tempo para ser nova­mente utilizada.
Aleatório:
O algoritmo aleatório, como o nome já sugere, não utiliza critério algum de sele­ção. Todas as páginas alocadas na memória principal têm a mesma chance de serem selecionadas.

FIFO (First-ln-First-Out):
No algoritmo FIFO. a página que primeiro foi utilizada será a primeira a ser esco­lhida, ou seja, o algoritmo seleciona a página que está há mais tempo na memó­ria principal. O algoritmo pode ser implementado associando-se a cada página o momento em que foi carregada para a memória ou utilizando-se uma estrutura de fila, onde as páginas mais antigas estão no início e as mais recentes no final.
O algoritmo FIFO é raramente implementado sem algum outro mecanismo que minimize o problema da seleção de páginas antigas que são constantemente refe­renciadas.

LFU (Least-Frequently-Used):
O algoritmo LFU seleciona a página menos referenciada, ou seja, o frame menos utilizado. Para isso, é mantido um contador com o número de referências para cada página na memória principal. Este esquema, como apresenta­do, é raramente implementado, servindo apenas de base para outros algoritmos de substituição.

LRU (Least-Recently-Used):
O algoritmo LRU seleciona a página na memória principal que está há mais tempo sem ser referenciada. Se considerarmos o princípio da localidade, uma página que não foi utilizada recentemente provavelmente não será referenciada novamente em um futuro próximo.
Para implementar esse algoritmo, é necessário que cada página tenha associado o momento do último acesso, que deve ser atualizado a cada referência a um frame. Quando for necessário substituir uma página, o sistema fará uma busca por um frame que esteja há mais tempo sem ser referenciado. Apesar de ser uma estratégia com uma eficiência comparável ao algoritmo ótimo, é pouco empregada na prática, devido ao seu elevado custo de implementação.

NRU (Not-Recently-Used):
O algoritmo NRU é bastante semelhante ao LRU. porém com menor sofisticação. Para a implementação deste algoritmo é necessário um bit adicional, conhecido como bit de referência (BR). O bit indica se a página foi utilizada recentemente e está presente em cada entrada da tabela de páginas.

FIFO com buffer de páginas:
O algoritmo FIFO com buffer de páginas combina uma lista de páginas alocadas (LPA) com uma lista de páginas livres (LPL). É importante notar que a página selecionada e que entrou na LPL continua dispo­nível na memória principal por um determinado intervalo de tempo. a página não for mais referenciada, com o passar do tempo irá chegar ao início da LPL. quando será utilizada para um outro processo. Caso a página seja posterior­mente referenciada, o sistema terá que carregá-la novamente da memória secun­dária.

FIFO circular (clock):
O algoritmo FIFO circular utiliza como base o FIFO, porém as páginas alocadas na memória estão em uma estrutura de lista circular, semelhante a um relógio. Os algoritmos de substituição de página tem como objetivo selecionar os frames que tenham as menores chances de serem referenciadas em um futuro próximo. A melhor estratégia se substituição será aquela que escolhesse um frame que não fosse mais utilizado no futuro ou levasse mais tempo para ser novamente referenciado. O principal argumento para o uso de paginas pequenas é a melhor utilização da memória principal.
A técnica de partições fixas gera muita perda de memória e não é mais utilizada na prática. Embora
partições variáveis seja um mecanismo mais flexível, o desperdício de memória em função da
fragmentação externa é um grande problema

Em sistemas multiprogramaveis, onde diversas aplicações compartilham a memoria principal devem existir mecanismos para preservar as áreas de memória do sistema operacional e dos diversos processos dos usuários. O sistema operacional deve impedir modificações sem autorização, se modificado pode gerar certa instabilidade no sistema.
Memoria virtual por segmentação é o gerenciamento de memoria onde o espaço de endereçamento virtual é dividido em blocos de tamanhos diferentes chamados segmentos. Um programa é dividido logicamente em sub-rotinas e estruturas de dados, que são alocados em segmentos na memoria principal.
Memoria virtual por segmentação com paginação é o gerenciamento de memoria onde o espaço de endereçamento é dividido em segmentos, cada segmento dividido em paginas oferecendo vantagens técnicas de paginação e segmentação.
Swapping é quando não se há memoria principal livre para certo processo, sendo assim selecionado um ou mais processos para saírem da memoria e oferecerem espaço para novos processos.
Thrashing é a definição da excessiva transferência de paginas e segmentos entre a memoria principal e memoria secundária. Esse problema está presente em sistemas que implementam tanto paginação como segmentação.
Podemos apontar dois níveis, sendo eles no nível do processo, a excessiva paginação ocorre devido ao elevado numero de page faults, e o segundo nível é o do sistema.