Pular para o conteúdo principal

Diferenças entre os cursos de computação

Vimos na postagem anterior que existem várias propostas para formação de profissionais em nível superior na área de computação/informática.

O curso de Bacharelado em Ciência da Computação oferece uma formação mais ampla na área, cobrindo suas diferentes sub-áreas (computação gráfica, inteligência artificial, arquitetura de computadores, redes de computadores, teoria da computação, e sistemas distribuídos) e não oferece, portanto, formação específica e direcionada para a área de engenharia de software. 


O curso de Bacharelado em Sistemas de Informação oferece uma formação voltada a profissionais que desejam trabalhar na área de tecnologia de informação, cobrindo técnicas e métodos de análise de processos de negócio de empresas, e que se concentram sobretudo na produção de um tipo específico de software, os sistemas de informação. 


curso de Engenharia de Computação é voltado, principalmente, para o projeto de sistemas de hardware e sistemas de software relacionados à automação industrial, telecomunicações, e sistemas embarcados.    


A Engenharia de Software é fundamentada sobretudo na ciência da computação e na matemática [Software Engineering Curriculum ACM/IEEE, 2005]. Ao longo dos últimos anos, a área de engenharia de software e suas diferentes disciplinas têm amadurecido bastante, através da proposição de novos métodos e técnicas que possibilitem o desenvolvimento de softwares mais confiáveis, de melhor qualidade, com custo reduzido e alta produtividade. 


Buscando atingir tais objetivos, a formação do profissional de ES exige não apenas um amplo domínio de técnicas de programação modernas e avançadas, mas também o conhecimento e o domínio das diferentes disciplinas que compõem o processo de desenvolvimento de software. 


A IEEE Computer Society apresenta, em seu guia de corpo de conhecimento na área de engenharia de software [SWEBOK, 2004], as principais disciplinas que compõem a área, sendo elas: requisitos, projeto, construção, testes, manutenção de software, gerência de configuração, gestão de projetos, processos de desenvolvimento, ferramentas e métricas de engenharia de software, e qualidade de software. Cada uma destas disciplinas requer o aprendizado de técnicas e ferramentas específicas. 


A diferença de formação de profissionais nas diferentes carreiras em computação [ACM Carreers, 2009] é também destacada pela Association for Computing Machinery (ACM), a qual já reconhece explicitamente a área de engenharia de software como uma carreira na área de computação, e destaca as diferenças e necessidades de formação de profissionais em comparação com outras carreiras, tais como, ciência da computação e engenharia da computação. 


Referências



[ACM/IEEE-CS, 2005] Computing Curricula 2005 – The Overview Report. The Joint Task Force on Computing Curricula IEEE Computer Society/Association for Computing Machinery, 2005. URL: http://www.acm.org/education/education/curric_vols/CC2005-March06Final.pdf

[SWEBOK, 2004] Guide to the Software Engineering Body of Knowledge, IEEE Computer Society, 2004. URL: http://swebok.org

Comentários

Anônimo disse…
Você não falou nada com nada. Que artigo é esse? Ciência da Computação tem 3 matérias, 3! de Desenvolvimento de Software e não forma pra ser Engenheiro de Software? Acho que você trocou as bolas. O Curso de Ciência da Computação só tem um apelido "software" e você fala que não faz formação? Muitos cientistas da computação vão trabalhar justamente com engenharia de software, porque é a área que eles mais dominam. Total falta de informação este artigo.

Postagens mais visitadas deste blog

O Modelo Espiral

O objetivo do modelo espiral é prover um metamodelo que pode acomodar diversos processos específicos. Isto significa que podemos encaixar nele as principais características dos modelos vistos anteriormente, adaptando-os a necessidades específicas de desenvolvedores ou às particularidades do software a ser desenvolvido. Este modelo prevê prototipação, desenvolvimento evolutivo e cíclico, e as principais atividades do modelo cascata. Sua principal inovação é guiar o processo de desenvolvimento gerado a partir deste metamodelo com base em análise de riscos e planejamento que é realizado durante toda a evolução do desenvolvimento. Riscos são circunstâncias adversas que podem surgir durante o desenvolvimento de software impedindo o processo ou diminuindo a qualidade do produto. São exemplos de riscos: pessoas que abandonam a equipe de desenvolvimento, ferramentas que não podem ser utilizadas, falha em equipamentos usados no desenvolvimento ou que serão utilizados no produto final, etc.

O Modelo Evolutivo

O modelo evolutivo descreve um processo na qual o software deve ser desenvolvido de forma a evoluir a partir de protótipos iniciais. Para entender melhor este modelo é importante entender o que é prototipação (ou prototipagem). Prototipação é uma abordagem baseada numa visão evolutiva do desenvolvimento de software, afetando o processo como um todo. Esta abordagem envolve a produção de versões iniciais - "protótipos" - de um sistema futuro com o qual pode-se realizar verificações e experimentações para se avaliar algumas de suas qualidades antes que o sistema venha realmente a ser construído. Objetivos da Prototipação Num projeto de software várias questões podem ser respondida com a construcão de protótipos. Nas situações típicas de desenvolvimento podemos distinguir entre diferentes objetivos na prototipação: Exploratória - é quando o protótipo é usado para ajudar a esclarecer requisitos dos usuários com respeito ao sistema futuro. Uma prototipação também é exploratória

Sistemas Computacionais

Um sistema computacional (ou baseado em computador) é aquele que automatiza ou apóia a realização de atividades humanas através do processamento de informações. Um sistema baseado em computador é caracterizado por alguns elementos fundamentais. Hardware Software Informações Usuários Procedimentos ou Tarefas Documentação O hardware corresponde às partes eletrônicas e mecânicas (rígidas) que possibilitam a existência do software, o armazenamento de informações e a interação com o usuário. A CPU, as memórias primária e secundária, os periféricos, os componentes de redes de computadores, são exemplos de elementos de hardware. Um único computador pode possibilitar a existência de diversos sistemas e um sistema pode requisitar diversos computadores. O software é a parte abstrata do sistema computacional que funciona num hardware a partir de instruções codificadas numa linguagem de programação. Estas instruções permitem o processamento e armazenamento de informações na for