Tecnologia em Análise e Desenvolvimento de Sistemas ou Bacharelado em Engenharia de Software?

Posted in Ensino de engenharia de software on August 5, 2014 by José Augusto Fabri

Vários alunos me questionam, sistematicamente, sobre as diferenças entre o Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas e o Bacharelado em Engenharia de Software.

Neste post tento enumerar rapidamente algumas.

1 – Curso de Bacharelado e Curso Superior de Tecnologia

O bacharelado, segundo o MEC (Ministério da Educação), é o curso superior que “confere ao diplomado competências em determinado campo do saber para o exercício de atividade acadêmica ou profissional”. Perceba que grifei o termo campo do saber. Esse grifo é proposital e indica que este tipo de curso irá possuir uma carga horária maior, pois o aluno irá mergulhar em todos os conteúdos de um determinado campo do conhecimento.

Os cursos superiores de tecnologia, em sua maioria, possuem 2000 horas. Além do tempo reduzido, eles têm um objeto de estudo bastante específico. Por exemplo: não há um curso tecnológico de jornalismo (campo do saber), mas é possível encontrar um de fotografia (objeto de estudo). Como a carga de conteúdo, neste tipo de curso, é menor e mais centralizada, os estudos são mais focados.

2 – Engenharia de Software ou Análise e Desenvolvimento de Sistemas

Engenharia de Software como campo de saber

Segundo Friedrich Ludwig Bauer “Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe em máquinas reais”.

A Engenharia de Software se concentra nos aspectos processuais (levantamento de requisitos, análise e projeto de sistemas, codificação, teste, implantação, manutenção, gestão de projetos, gestão de configuração e gestão da qualidade).

O termo Engenharia de Software foi criado na década de 1960 e utilizado oficialmente em 1968 na NATO Science Committee. Numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas de software complexos.

Análise e Desenvolvimento de Sistemas como objeto de estudo

Perceba que o curso de Análise e Desenvolvimento de Sistemas se caracteriza como um objeto de estudo da Engenharia de Software. Neste tipo de curso teremos um aprofundamento nas atividades processuais de Modelagem de Negócio, Análise de Sistemas e Programação. As demais atividades do processo de software são encapsuladas em um grupo menor de disciplina.

3 – A diferença das matrizes curriculares e do tempo de integralização (cursos UTFPR – Campus Cornélio Procópio)

Ao analisar as matrizes curriculares dos cursos de Engenharia de Software e Tecnologia em Análise e Desenvolvimento de Sistemas é possível perceber:

  • As disciplinas ligadas algoritmos e programação de computadores são equivalentes em ambas às grades;
  • quando comparado ao curso de Análise e Desenvolvimento de Sistemas, o curso de Engenharia de Software possui um número maior de disciplinas ligadas à ideia de processo de produção  – veja os quadros grafados em azul nas grades. Dada esta diferença no número disciplina, o curso de Engenharia de Software possui uma carga horária 3250 horas, enquanto que o curso Tecnologia em Análise de Sistemas possui 2582.

4 – Qual curso é melhor?

Os dois cursos possuem um alto grau de excelência, a diferença está no tempo de formação. Para escolher você deve responder as seguintes questões:

Eu quero me aprofundar no campo do saber (engenharia de software) e ficar mais tempo na universidade?

Eu quero me aprofundar no objeto de estudo (análise e desenvolvimento de sistemas) e ficar menos tempo na universidade?

A opção pelo curso de Tecnologia em Análise e Desenvolvimento de Sistemas não inviabiliza que você possa complementar sua formação em outro momento. Para isto você pode cursar as demais disciplinas da Engenharia de Software.

José Augusto Fabri – UTFPR

O que é uma graduação? O que é uma especialização? O Que é um mestrado? O que é um Doutorado?

Posted in off topic on July 29, 2014 by José Augusto Fabri

graduacao-mestrad-doutoradoVários alunos me perguntam sobre a diferença entre graduação, especialização, mestrado e doutorado.

Vamos imaginar que a humanidade possui milhões de “partículas do conhecimento”, quando iniciamos nosso estudo no ensino fundamental e médio, caminhamos lentamente na direção de todas estas “partículas”. Este caminho é lento e tem a duração média de 12 anos.

Ao terminar o ensino médio, procuramos um curso de graduação. Neste momento, nós iremos nos aprofundarmos em um conjunto menor de “partículas” – as “partículas” da matemática. O tempo de caminhada é mais rápido, quando comparado ao efetuado na graduação.

Ao terminar a graduação, iremos nos especializar em uma área, por exemplo: Desenvolvimento de software para WEB. Um curso de especialização dura em média 360 horas e nos proporcionar aprofundarmos ainda mais em um conjunto mais restrito de “partículas” de conhecimento.

A mesma analogia apresentadas nos parágrafos anteriores também é válida para o curso de mestrado.

Por fim, no doutorado você se torna extremamente especializado em uma das “partículas do conhecimento” da humanidade e cria uma nova. Esta por sua vez, geralmente, é uma variação daquela que você se especializou (vide figura no início do post).

José Augusto Fabri – fabri@utfpr.edu.br

Engenharia de Software, CREA, SBC, ACM e ENADE

Posted in Ensino de engenharia de software on July 4, 2014 by José Augusto Fabri

O Conselho Regional de Engenharia e Agronomia (CREA) é uma autarquia responsável pela regulamentação das empresas e profissionais da área das engenharias clássicas, suas ramificações, como tecnólogos, técnicos industriais. É importante salientar que todo conselho regional é subordinado ao conselho federal – CONFEA.

O CONFEA surgiu em 11 de dezembro de 1933, por meio do Decreto nº 23.569, promulgado pelo presidente, Getúlio Vargas.

Atualmente, o CONFEA é regido pela Lei 5.194 de 1966, e representa também os geógrafos, geólogos, meteorologistas, tecnólogos dessas modalidades, técnicos industriais e agrícolas e suas especializações.

O objetivo do CREA e do CONFEA é:

Resguardar o interesse público e a ética no exercício das profissões das Engenharias, da Agronomia, das Geociências, das Tecnológicas e Técnicas, buscando sua valorização, através da excelência na regulamentação, organização e controle destas profissões” (fonte CREA-PR e CONFEA).

O curso de Engenharia de Software não é regulamentado pelo CREA.  É importante salientar que o referido curso é relativamente novo – a proposta pedagógica do curso é direcionada pela Association for Computer Machinery (ACM) e pelas diretrizes curriculares MEC desenvolvida em sua grande parte pela Sociedade Brasileira de Computação.

Outro fato de extrema importância, destacado neste texto, é a regulamentação da profissão na área de Informática (incluindo a Engenharia de Software).

A comunidade científica da computação vem trabalhando na regulamentação da profissão de Informática desde a década de 70.

Fruto dos debates ocorridos ao longo dos anos, nos diversos encontros de sua comunidade científica, em relação às vantagens e desvantagens de uma regulamentação da profissão de informática, a Sociedade Brasileira de Computação consolidou sua posição institucional em relação a esta questão pela formulação dos seguintes princípios, que deveriam ser observados em uma eventual regulamentação da profissão:

Exercício da profissão de Informática deve ser livre e independer de diploma ou comprovação de educação formal.

Nenhum conselho de profissão pode criar qualquer impedimento ou restrição ao princípio acima.

A área deve ser Auto-Regulada.

Os argumentos levantado junto à comunidade da SBC e que nortearam a formulação dos princípios acima estão detalhados na Justificação que acompanha o PL 1561/2003, o qual é integralmente apoiado pela Sociedade de Brasileira de Computação.

Fonte: homepage da SBC:

http://www.sbc.org.br/index.php?option=com_content&view=category&layout=blog&id=324&Itemid=964

Desconheço qualquer regulamentação para Engenharia de Software em outros países.

Outro fato que direciona inúmeros questionamentos é Exame Nacional de Desempenho dos Estudantes (ENADE) do curso Engenharia de Software. Neste ano serão avaliados os cursos de:

Arquitetura e Urbanismo; Sistema de Informação; Engenharia Civil; Engenharia Elétrica; Engenharia de Computação; Engenharia de Controle e Automação; Engenharia Mecânica; Engenharia Química; Engenharia de Alimentos; Engenharia de Produção; Engenharia Ambiental; Engenharia Florestal; Engenharia; Ciência da Computação; Ciências Biológicas; Ciências Sociais; Filosofia; Física; Geografia; História; Letras-Português; Matemática; Química; Artes Visuais; Educação Física; Letras-Português e Espanhol; Letras-Português e Inglês; Música; Pedagogia e os de Tecnologia em Análise e Desenvolvimento de Sistemas; Automação Industrial; Gestão da Produção Industrial e Redes de Computadores.

Perceba que o curso de Engenharia de Software não faz parte da lista, neste caso os formandos de 2014 estão isentos de participar do ENADE.

Por fim, em relação às questões que compõem o ENADE, tenho a plena convicção que teremos questões direcionadas a Engenharia de Software, assim como ocorre com os cursos de Licenciatura em Computação, Ciência da Computação, Engenharia da Computação e Sistemas de Informação – vide prova de 2011.

Qualquer dúvida sobre o curso por favor me escrevam.

José Augusto Fabri – fabri@utfpr.edu.br

A importância do estágio na vida profissional

Posted in off topic on June 10, 2014 by José Augusto Fabri

A palavra estágio tem origem Latim medieval stagium. Stagium significa período preparatório, etapa do ciclo vital de plantas ou animais. Dada a origem latina da palavra, a língua francesa cunhou a palavra stage (cujo o registro é de 1630), essa palavra tinha como objetivo designar as etapas que um cônego deve concluir durante um certo tempo antes de desfrutar das honras e da sua renda prebenda. No início do século XIX, o francês incorporou em seu dicionário a palavra stagiaire designando o profissional ou estudante, que durante um período pré-determinado, executa um conjunto de tarefas, com o objetivo de internalizar novas habilidades. Por fim, no início do século XX a palavra foi incorporada na língua portuguesa com a grafia de estagiário.

Dentro da esfera universitária, o estágio caracteriza-se como um processo educativo e supervisionado. É de extrema importância que ele seja desenvolvido no ambiente de trabalho, visando à consolidação dos conceitos apresentados ao estudante durante o curso de graduação.

O estágio se configura como uma ferramenta facilitadora para o ingresso de profissionais recém-formado no mercado de trabalho. Dentro deste contexto é importante salientar que o estagiário estará preparado para assumir o seu papel como um profissional com as competências pertinentes a sua atividade. O estágio é um meio eficiente de acompanhamento de avanços conceituais.

De posse da etimologia da palavra estagiário e dada sua definição, é possível perceber a importância, deste processo educativo, na preparação profissional de um estudante universitário.

O que é um bom estágio?

O estágio ideal deve ser realizado em entidade que cumpre o papel de supervisão do estudante. Promover oportunidades de crescimento profissional também é algo de suma importância dentro deste contexto.

A realização de um bom estágio está intimamente ligada à preparação do estudante. Oportunizar ou reforçar os conhecimento dentro da área escolhida, conhecer a realidade mercadológica, cultivar um bom relacionamento interpessoal e trabalhar em equipe são características de extrema relevância para se obter sucesso no estágio.

Procedimentos para a dos melhores estagiários.

Atualmente, 1 em cada 3 empresas (no mundo) encontram dificuldade no preenchimento de seus cargos. O Brasil é o segundo país no qual este tipo de problema é mais acentuado, perdemos apenas do Japão. Um dos problemas que agrava esta situação e o baixo índice de formação universitária, somente 7% da população brasileira, entre 25 e 34 anos, possui ensino superior (Fonte INEP 2014).

Dentro deste contexto as empresas buscam estudantes em plena condição de estagiar, a vontade de aprender e cursos de qualidade reconhecida são critérios determinantes no processo de seleção. Comunicação, capacidade de adequação a diversas situações também devem ser observadas pelas empresas.

Empresa e Estagiário

Na relação entre empresa e estagiário, é importante que a primeira cumpra com a legislação em vigor e conceba atividades de estágio coerente com o curso do estagiário. Possibilitar a participação do aluno em projetos, analisar a possibilidade de implantar as iniciativas do estudante e buscar a viabilização de sua contratação após a finalização do estágio contribuem para o bom relacionamento entre ambos.

Por fim, é importante salientar que o estagiário deve cumprir o acordado no termo de compromisso, estudar e aproveitar as oportunidades delineadas pela empresa.

Graduação em Engenharia de Software na UTFPR

Posted in Ferramentas, gestão de projetos, gestão do conhecimento, Introdução a Engenharia de Software, mercado produtor de software, processo de produção de software, qualidade de software on June 4, 2014 by José Augusto Fabri

modeloA Universidade Tecnológica Federal do Paraná – Campus Cornélio Procópio oferece, a partir do segundo semestre de 2014, o curso de Bacharelado em Engenharia de Software. Atualmente o profissional desta área é um dos mais procurados no Brasil e no Mundo. Veja o projeto pedagógico do curso neste link.

Na figura ao lado você encontra o modelo que norteou todo o desenvolvimento do projeto pedagógico.

Informações adicionais:
Titulação Conferida: Bacharel em Engenharia de Software.
Modalidade de Curso: Ensino presencial
Local de Oferta: Universidade Tecnológica Federal do Paraná Campus Cornélio Procópio.
Coordenação e Unidade Executora: Coordenadoria de Engenharia de Software
Duração do curso: 08 semestres letivos.
Regime escolar: Semestral, com a matrícula realizada por disciplina.
Número de vagas: 88 vagas por ano, com 44 vagas ofertadas em cada semestre.
Turno previsto: Noturno.

José Augusto Fabri – fabri@utfpr.edu.br

Kanban no desenvolvimento distribuído de software

Posted in gestão de projetos on May 14, 2014 by José Augusto Fabri

kanban ddsKanban é uma palavra de origem japonesa que significa placa ou registro. O Kanban permite agilizar a produção de componentes de software. Originário na indústria automobilística, os Kanbans físicos (cartões – ou post-it) se movimentam ou transitam entre as atividades de um processo de produção, permitindo uma gestão eficaz de um projeto – Esta forma gestão foi conhecida como Sistema Toyota de Produção.

No mês de abril realizei um experimento utilizando o Kanban no desenvolvimento distribuído de software.  O relato do experimento é dividido em 3 partes

1 – Caracterização do problema.

Uma empresa de software recebeu a incumbência de gerir um projeto de software cujo desenvolvimento teria características distribuídas.

Essa empresa fracionou o projeto e subcontratou três sites (outras empresas) para o desenvolvimento.

Cada site recebeu uma fração do projeto a ser desenvolvimento. Esta fração foi dividida em funcionalidades. Importante: O projeto já estava especificado e os sites eram responsáveis somente pela implementação e pelo teste do software.

2 – Princípios da gestão de projeto utilizados.

Ao receber o projeto, a empresa, responsável pela gestão global, consultou a sua base histórica de projetos e delineou as estimativas de custo, prazo e esforço. Estas informações foram consolidadas na Estrutura Analítica do Projeto (EAP) e no Cronograma.

Os pacotes de trabalho da EAP foram distribuídos para os 3 sites.  Os sites de posse destes pacotes consultaram a sua base histórica de projetos e estimaram o custo, o esforço e o tempo. Estas estimativas foram confrontadas com aquelas geradas com as da responsável pela gestão global do projeto. Este tipo de confronto, denomino como equalização do projeto. Realizado o confronto os sites popularam a coluna to do do quadro Kanban.

3 – A execução e o controle do projeto.

Durante a execução do projeto os sites percorreram as atividades de implementação e teste de software. Estas duas atividades caracterizam duas colunas do quadro kanban. É importante salientar que o quadro Kanban estava centralizado na ferramenta kanbanize (kanbanize.com).

É importante salientar que a ferramenta proporciona que todos os sites enxerguem um único quadro Kanban do projeto. Dentro desta ótica, ao movimentar os pacotes de trabalho de to do para implementaçãoe de implementação para teste todos tinham conhecimento sobre o andamento do projeto.

Quando os pacotes atingiram a coluna done do quadro Kanban, as informações sobre tempo, custo e esforço de produção foram caracterizadas pela própria ferramenta. Essas informações foram estruturadas e inseridas na base histórica da empresa responsável pela gestão global do projeto.

A Figura apresentada no início do post tenta resumir o relato do experimento realizado.

Por fim, é importante salientar este relato atenta somente as questões ligadas a planejamento, execução e controle do desenvolvimento distribuído de um projeto de software. Problemas sobre o fracionamento e integração do projeto foram mapeados porém não relatados.

Fabri – fabri@utfpr.edu.br

Requisitos Sistêmicos e a Semiótica

Posted in processo de produção de software on April 30, 2014 by José Augusto Fabri

A Semiótica tem como objetivo mapear conceitos sobre a semiose (fenômenos culturais caracterizados pelo seu significado e significante) e a concepção dos signos. Ambos os conceitos são derivados da palavra grega σημεῖον (sēmeion) – que significa signo. A teoria que alicerça a semiótica foi utilizada pela primeira vez, em 1670, como disciplina de um curso de medicina por Henry Stubbes (físico Inglês) com o objetivo de estudar a interpretação dos sinais.

A semiótica possuir uma maior abrangência quando alinhada a linguística, ciência esta que tem como objetivo estudar o sistema sígnico (de significados) da linguagem verbal.

A semiótica tem como objetivo mapear todo e qualquer sistema sígnico – Artes visuais, músicas, fotografia, cinema, culinária, vestuário, gestos, religião, ciência, etc.

Outro aspecto importante e caracteriza a semiótica por meio da interpretação dos sistemas sígnico em dois planos complementares: 1 – a forma (significante – aquilo que representa algo); 2 – o conteúdo (significado do que é indicado pelo significante).

Se analisarmos os conceitos que alicerçam a semiótica é possível estabelecer uma relação direta com a concepção dos requisitos em qualquer ambiente sistêmico, pois este ambiente, também é caracterizado pela sua forma e pelo seu conteúdo. A forma caracteriza a representatividade do sistema dentro de um, ou mais, contextos. Esta representatividade se traduz em uma série de conteúdos que podem ser materializados por um conjunto de signos pré-estabelecidos.

Vamos a um exemplo prático:

O sistema universitário possui uma representação concreta dentro dos contextos de ensino, pesquisa e extensão. Este sistema pode significar ascensão social, desenvolvimento de uma nação e melhoria contínua de uma determinada região. O referido sistema é composto de vários objetos que norteiam o seu conteúdo, destaco aqui, professores, pesquisadores, teses, dissertações, artigos científicos, projetos de pesquisa, equipamentos, laboratórios, etc. Dentro da engenharia de software esses objetos podem ser representados por um conjunto símbolos pré-estabelecidos. Os símbolos utilizados na representação devem atacar diretamente os dois planos citados – a forma (significante – aquilo que representa algo) e o conteúdo (significado do que é indicado pelo significante).

Enfim, podemos usufruir dos vários pressupostos da semiótica para explicitar requisitos implícitos, este á um assunto para um bom trabalho de pesquisa.

Follow

Get every new post delivered to your Inbox.

Join 39 other followers