Archive for Março, 2008
Aula: Melhoria de processos de software
Hoje a aula de melhoria de processos de software foi basicamente a leitura do artigo: Software process: a roadmap, do Antonio Fuggetta, que ao contrário do que eu estava imaginando, não ocorreu um debate em torno do tema e dos objetivos do texto.
Um assunto que me chamou atenção, foi a afirmação do professor de que os termos: Metodologia, Processos e Métodos são sinônimos no desenvolvimento de software. Ele apresentou essa afirmação, após eu questioná-lo que ao ele citar a Extreme Programming (XP) e o Scrum como exemplos de processos de desenvolvimento de software não estava ocorrendo um problema de confusão de conceitos de termos diferentes.
Na minha opinião, trata-se de termos conceitualmente diferentes e que me motivou a pesquisar mais mais sobre o assunto.
Add comment Março 25, 2008
Processo de Software
O professor da disciplina de Melhoria de processos de software, nos recomendou a leitura do artigo: Software process: a roadmap, e sugeriu que cada pessoa estudasse sobre o tema, utilizando esse artigo como referência inicial.
O trabalho é utilizar pelo menos uma das referências utilizada pelo autor na elaboração do artigo, e um artigo que tenha referenciado esse artigo do Fuggeta. O objetivo desse trabalho segundo o professor, é nos auxiliar a pesquisar artigos científicos, ou no mínimos de fontes mais confiáveis, utilizando as ferramentas adequadas. No caso, o site da ACM, do IEEE e o Scholar da Google.
A tarefa de encontrar os artigo referenciados pelo autor e os que fazem referência a ele é muito simples, pois tanto o Scholar da Google, quanto a ACM já disponibilizam essa informação quando pesquisamos um artigo.
Abaixo, uma apresentação que preparei sobre o tema.
Add comment Março 23, 2008
Início das aulas…
Hoje foi primeiro dia de aula do curso, com o professor Zalkind Lincoln Dantas Rocha, que irá ministrar sobre Melhorias de processo de software. Ele iniciou a aula convidando à todos para refletirem sobre a velocidade com que as coisas mudam hoje em dia, e para estimar em quantos anos o conhecimento que iremos adquirir ao longo do curso estará desatualizado, e em algumas situações, não terá valor.
Para isso, ele citou os livros: The Age of Intelligent Machines, The Age of Spiritual Machines: When Computers Exceed Human Intelligence, ambos do Ray Kurzweil.
O tempo da aula foi todo empregado na apresentação individual de cada aluno(a) que tinha de elaborar uma pergunta a ser feita ao professor sobre qualquer coisa.
Add comment Março 3, 2008
O que é Engenharia de Software e o que esperar de um curso de Engenharia de Software
Engenharia de Software
Definição
A engenharia de software é uma disciplina da engenharia que relaciona todos os aspectos necessários a produção de software, desde a sua concepção até a sua operação e manutenção, fornecendo todo um arcabouço que abrange um processo, um conjunto de métodos e ferramentas. Para Sommerville, ela é uma disciplina da engenharia tradicional, porque os engenheiros fazem as coisas funcionarem. Eles aplicam teorias, métodos e ferramentas onde for apropriado, mas eles os usam de forma seletiva e sempre procuram descobrir soluções para os problemas, mesmo quando não existem teorias e métodos aplicáveis. Além disso, os engenheiros de software adotam uma abordagem sistemática e organizada em seu trabalho, que é freqüentemente, a maneira mais eficaz de produzir software de alta qualidade.
Para BAUER, A 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 confiável e que trabalhe eficientemente em máquinas reais.
O termo foi criado na década de 60 e utilizado oficialmente em 1968 na NATO Conference on Software Engineering (Conferência sobre Engenharia de Software da OTAN). Sua criação surgiu numa tentativa de contornar a crise do software e dar um tratamento mais sistemático e controlado ao desenvolvimento de sistemas de software complexos.
“Na sociedade moderna, o papel da engenharia de software é fornecer sistemas e produtos que melhoram os aspectos materiais da vida humana, tornando assim a vida mais fácil, menos perigosa, mais segura e mais agradável.” (Richard Fairley e Mary Willshire, apud, Pressman, in Software Engineering: a practitioner approach. 6th edition, pp. 2, 2005).
A Engenharia de Software não está relacionada apenas com os aspectos técnicos do desenvolvimento de software, mas também, com as atividades como: gerenciamento de projeto de software e o desenvolvimento de ferramentas, métodos e teorias que apóiem a produção de software.
Dessa forma, podemos definir a Engenharia de software como uma disciplina que reúne metodologias, métodos e ferramentas a ser utilizadas, desde a percepção do problema até o momento em que o sistema desenvolvido deixa de ser operacional, visando resolver problemas inerentes ao processo de desenvolvimento e ao produto de software, com o objetivo de auxiliar no processo de produção de software, de forma que o processo de origem a produtos de alta qualidade, produzidos mais rapidamente e a um custo cada vez menor. A Engenharia de software segue o conceito de disciplina na produção de software, fundamentado nas metodologias, que por sua vez seguem métodos que utilizam de ferramentas automáticas para englobar as principais atividades do processo de produção.
Achei interessente a abordagem apresentada no texto: O que é engenharia de software, no qual o autor propõe uma pesquisa no objetivo de obter respostas as seguintes indagações:
- Qual a diferença entre o desenvolvimento de um produto de forma artesanal e o desenvolvimento seguindo os princípios de engenharia? Em outras palavras, qual a diferença entre o trabalho de um artesão e o de um engenheiro?
- Qual a diferença entre cozinhar e fazer engenharia de alimentos?
- O que as diferentes engenharias (civil, mecânica, elétrica/eletrônica, química, ambiental, etc.) têm em comum?
O que esperar de um curso de Engenharia de Software?
O que normalmente espera-se de um curso de especialização em geral é o debate sobre alguma área do conhecimento já estudada ou não durante a graduação, porém com um enfoque mais crítico e mais profundo, do que o apresentado durante a graduação, pois, no caso específico da engenharia de software, que é uma disciplina com carga horária média de 90 horas nos cursos de graduação em Ciência da Computação, o tempo é suficientemente baixo conhecer e estudar as diversas áreas, especialidades, da engenharia.
Por se tratar de um curso de especialização, eu espero aulas mais participativas e menos expositivas, uma vez que, que objetivo do curso é tornar todos os alunos, após a sua conclusão, especialistas em Engenharia de Software.
Add comment Março 3, 2008