Pular para o conteúdo principal

Postagens

Os fundamentos da engenharia de software

A maioria das engenharias tem seus fundamentos em ciências. As engenharias civil, mecânica e elétrica, para citar as mais tradicionais, estão fundamentas nas leis da física. Estes fundamentos permitem a construção de artefatos que, obedecendo a estas leis, possuem a qualidade desejada pelas pessoas. Queremos qualidade em software. Queremos sistemas que funcionem corretamente e que atendam as necessidades das pessoas. Que sejam confiáveis, robustos, com bom desempenho e seguros. E quais são os fundamentos que garantem isso? Parte destes fundamentos estão na ciência da computação. Há modelos matemáticos que permitem identificar problemas de funcionamento em um software apenas pela análise do código fonte. Pode-se prever o desempenho de um programa que processa uma quantidade enorme de dados com análise matemática. Vários fundamentos já são conhecidos e devem ser usados pelos engenheiros para que seus produtos atendam os requisitos de qualidade. Mas esses fundamentos não podem negli
Postagens recentes

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.  O  curso de Engenharia de Computação é voltado, principalmente, para o projeto de sistemas de hardware e sistemas de software relacionados à automaçã

A Engenharia de Software e os Cursos de Computação

A UFRN é uma das pioneiras no Brasil a oferecer uma graduação em Engenharia de Software. O curso iniciou suas turmas em 2010 e conta com cerca de 100 alunos matriculados. Já existem outros cursos semelhantes na UFG, a UNB, a Unipampa, a UFC e outras. O curso de Engenharia de Software da UFRN tem sua base na computação e na matemática, mas foca sua parte aplicada nas diversas atividades práticas necessárias para os profissionais da área. Para saber mais você pode visitar a página do curso . Mas você sabe a diferença entre o curso de ES e os outros cursos de computação. Vamos começar aqui alguns esclarecimentos numa série de postagens. A Computação é uma área ou disciplina bastante abrangente que envolve a fundamentação teórica das construções computacionais, o desenvolvimento de tecnologias que viabilizam processos computacionais, a aplicação do conhecimento teórico e das tecnologias na construção de soluções práticas para problemas da sociedade e o estudo dos fenômenos individua

Padrões de Projeto

Padrões de projeto (em inglês, Design Patterns) são soluções para problemas específicos que ocorrem de forma recorrente em um determinado contexto que foram identificados a partir da experiência coletiva de desenvolvedores de software. A proposta original de padrões veio do trabalho de Christopher Alexander na área de arquitetura. Sua definição para padrões é que "Cada padrão é uma regra (esquema) de três partes que expressa uma relação entre um certo contexto, um problema, e uma solução". O contexto descreve uma situação no desenvolvimento na qual existe um problema. O problema que ocorre repetidamente no contexto deve também ser descrito bem como as forças (requisitos, restrições e propriedades) associadas a ele. A solução descreve uma configuração ou estrutura de componentes e suas interconexões, obedecendo às forças do problema. As forças , denominação dada por Alexander, descrevem: os requisitos que caracterizam o problema e que a solução deve satisfazer, as

Usando cenarios para descobrir requisitos

O levantamento de informações sobre as tarefas e os usuários pode ser melhor realizado quando os analistas procuram descrever situações do processo de trabalho. Os métodos baseados em cenários consistem de uma coleção de narrativas de situações no domínio que favorecem o levantamento de informações, a identificação de problemas e a antecipação das soluções. Cenários são uma maneira excelente de representar, para clientes e usuários, os problemas atuais e as possibilidades que podem surgir. Os cenários têm como foco as atividades que as pessoas realizam nas organizações possibilitando uma perspectiva mais ampla dos problemas atuais onde o sistema será inserido, explicando porque ele é necessário. Eles proporcionam um desenvolvimento orientado a tarefas possibilitando maior usabilidade do sistema. Não é objetivo dos cenários oferecer uma descrição precisa, mas provocar a discussão e estimular novos questionamentos. eles permitem também documentar o levantamento de informações a respe

O emprego dos sonhos nos Estados Unidos é ser engenheiro de software.

Engenharia de software, uma profissão que envolve o design e a criação de software para diversos dispositivos desde sistemas operacionais a aplicativos de telefones celulares e videogames, foi classificado como o  melhor emprego de 2011 nos EUA pelo relatório Jobs Rated da CareerCast. Foram analisadas 200 diferentes profissões em uma ampla variedade de indústrias e foram analisados níveis de habilidades e salários de acordo com cinco critérios: ambiente de trabalho, esforço físico, estresse, salários e perspectivas. O objetivo do estudo é indicar qual emprego é mais gratificante para a maioria dos empregados (e não apenas para os mais bem sucedidos). O que torna a engenharia de software como a melhor opção são as possibilidades de duas indústrias em expansão: sistemas Web e Computação-em-Nuvem. Um grande número de empresas está investindo em desenvolver aplicações para smartphones e tablets que fazem uso de recursos situados na "nuvem", ou seja, em servidors ligados à inter

O que é Arquitetura de Software?

A arquitetura de software é descrição abstrata, na forma de modelos, de diferentes visões do sistema em termos de unidade (partes) que interagem entre si. Arquitetura não é uma fase do desenvolvimento, mas o resultado das decisões de design sobre a estrutura e o comportamento do software. Mesmo que esta atividades não tenha sido deliberadamente realizada, vale ressaltar que: Todo software tem uma arquitetura A arquitetura pode ser analisada por diferentes pontos de vista   (visões arquiteturais) A arquitetura deve dar suporte à funcionalidade do sistema (requisitos funcionais) e deve estar em conformidade com a qualidade (requisitos não-funcionais). O design arquitetural é o processo de tomar as decisões que visa definir estrutura e comportamento para atender aos requisitos funcionais e não-funcionais. Um bom arquiteto deve conhecer diferentes modelos e estilos de arquitetura e saber aplica-los de forma a atender aos requisitos. Um dos princípios básicos para organização d