sexta-feira, 12 de março de 2010

Processos, métodos, ferramentas, tipos de software e Stakeholoders

1. Processo

Modo pelo qual se realiza ou executa uma coisa; método, técnica.


2. Método

Forma pela qual será realizado um processo, tendo como objetivo, definir a forma.

3. Ferramentas

O que será ultilizado para a construçao do software. As ferramentas auxiliam os métodos e processos.

4. Tipos de Software

Tempo Real - Software que apresenta um tempo de resposta menor, ou seja, resposta imediata.
On-line - Software que apresenta um tempo de resposta maior.
Ex: Compra, pela internet, de um livro por duas pessoas ao mesmo tempo.
Embarcado - Sistemas ou dispositivos que executam funções dedicadas, ou seja, são responsáveis por uma função específica ou um conjunto restrito de funções específicas e co-relacionadas.
Científico - Trata de aplicaçoes científicas.

5. Stakeholder

Qualquer pessoa ou organização que tenha interesse, ou seja afetado pelo projeto de construção de um software.

A palavra vem de:

Stake: Interesse, participação, risco
Holder: Aquele que possui

Os primeiros stakeholders que imaginamos em um projeto são: o Gerente de Projeto, o Patrocinador do Projeto, a Equipe de Projeto e o Cliente. Entretanto, na prática podem existir muitos outros:

  • A comunidade
  • Outras áreas da empresa
  • Concorrentes
  • Fornecedores
  • Investidores e acionistas
  • Governo
  • As famílias da equipe de projeto

Além disso, cada projeto pode ter alguns stakeholders que sejam específicos para sua realidade e que não se apliquem a outros projetos.

A importância de identificar os stakeholders é que além de serem afetados pelo projeto, eles podem ter uma influência direta ou indireta no seu resultado. Uma falha nesta identificação significará que o gerente de projeto não estará pensando nas necessidades de todos os envolvidos, e isto é um fator de risco para o projeto.

O CVS e seu Funcionamento

O CVS, ou Concurrent Version System (Sistema de Versões Concorrentes) é um sistema de controle de versão que permite que se trabalhe com diversas versões de arquivos, organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de quem e quando manipulou os arquivos.
É especialmente útil para se controlar versões de um software durante seu desenvolvimento, ou para composição colaborativa de um documento. A exemplo de outros softwares, o CVS pode ser baixado gratuitamente e tem o seu código aberto.
O CVS utiliza uma arquitetura cliente-servidor: um servidor armazena a(s) versão(ões) atuais do projeto e seu histórico, e os clientes se conectam a esse servidor para obter uma cópia completa do projeto, trabalhar nessa cópia é então devolver suas modificações. Tipicamente, cliente e servidor devem estar conectados por uma rede local de computadores, ou pela Internet, mas o cliente e o servidor podem estar na mesma máquina se a configuração do CVS for feita de maneira a dar acesso a versões e histórico do projeto apenas a usuários locais. O servidor geralmente roda o sistema ao estilo Unix, enquanto o cliente CVS pode rodar qualquer sistema operacional.

Para que serve o Controle de Versão de Software?


O Controle de versão apóia o desenvolvimento de diversas maneiras:
• Histórico. Registra toda a evolução do projeto, cada alteração sobre cada arquivo. Com essas informações sabe-se quem fez o que, quando e onde. Além disso, permite reconstruir uma revisão específica do arquivo sempre que desejado;
• Colaboração. O controle de versão possibilita que vários desenvolvedores trabalhem em paralelo sobre os mesmos arquivos sem que um sobrescreva o código de outro, o que traria reaparecimento de defeitos e perda de funcionalidades;
• Variações no Projeto. Mantém linhas diferentes de evolução do mesmo projeto. Por exemplo, mantendo uma versão 1.0 enquanto a equipe prepara uma versão 2.0.
Enfim,o controle de versão é fundamental para o desenvolvimento de software. Todos os ambientes de desenvolvimento modernos, tais como o Eclipse e o NetBeans, já possuem plugins para integração com algum sistema de controle de versão.

Controle de Versão de Software

O controle de versão de software, é um software com a finalidade de gerenciar diferentes versões no desenvolvimento de um documento qualquer. Esses sistemas são comumente utilizados no desenvolvimento de software para controlar as diferentes versões – histórico e desenvolvimento – dos códigos-fontes e também da documentação.
Esse tipo de sistema é muito presente em empresas e instituições de tecnologia e desenvolvimento de software. É também muito comum no desenvolvimento de software livre; além de ser útil, em diversos aspectos, tanto para projetos pessoais pequenos e simples como também para grandes projetos comerciais.

O que são Ferramentas CASE e para que elas servem?


A sigla CASE significa “Computer-Aided Software Engineering”. Traduzindo para um bom português: “Engenharia de Software Auxiliada por Computador”.Uma ferramenta CASE é um aplicativo que auxilia os profissionais envolvidos na tarefa de produzir sistemas. O tipo de “ajuda” que a ferramenta fornece, depende exclusivamente da proposta do fabricante. Por este motivo, as ferramentas se dividem em três categorias. São elas:

01. Lower CASE - ferramentas de codificação (front-end);
02. Upper CASE - ferramentas de análise, projeto e implementação;
03. Integrated CASE - união de Upper e Lower CASE.

Um dos componentes indispensáveis de uma ferramenta CASE é a modelagem visual, ou seja, a possibilidade de representar, através de modelos gráficos, o que está sendo definido.

quinta-feira, 11 de março de 2010

Mitos do Software

Segundo [Pressman], diversos mitos difundidos entre programadores escondem a importância de um desenvolvimento de software de acordo com os princípios de uma engenharia. Vejamos alguns deles:

  • O estabelecimento de objetivos gerais é suficiente para se começar a escrever programas;
  • Uma vez que o programa esteja escrito e funcionando, nosso trabalho está feito;
  • Mudanças no software podem ser feitas facilmente porque ele é "flexível";
  • Dê a uma pessoa técnica um bom livro de programação e você terá um programador;
  • Até que o programa esteja "rodando" não é possível verificarmos a sua qualidade;
  • Um projeto é bem sucedido se conseguirmos um programa funcionando corretamente.

Objetivos da Engenharia de Software

  • A engenharia de software tem por objetivos: a aplicação de teoria, modelos, formalismos e técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software;
  • Associado ao desenvolvimento, é preciso também aplicar métodos, técnicas e ferramentas para o gerenciamento do processo de desenvolvimento;
  • Finalmente, a engenharia de software visa a produção da documentação formal do software, do processo de desenvolvimento e do gerenciamento destinada a comunicação entre os membros da equipe de desenvolvimento bem como aos usuários finais.