Como se faz análise?
Sempre comento com os alunos que muitas vezes a análise de sistemas acaba sendo negligenciada.
Na verdade acredito que isso seja um efeito colateral da forma como a análise é ensinada. Muitas vezes nossas matérias de programação, banco de dados, anélise e projeto de sistemas são ensinadas de forma isolada. Dificilmente conseguimos abordar um processo de desenvolvimento, seja RUP ou XP, na prática e isso vai ser feito somente durante o projeto final do curso. Acho que a pior parte é que durante a disciplina de análise não temos um cliente para cada aluno então os projetos acabam sendo “inventados” e isso gera uma falsa impressão de que o analista inventa a análise o que está longe da verdade. A melhor ilustração disso foi conseguida no site Nerdson não vai a escola. Apenas por garantia eu vou incluir a figura aqui.



[...] Análise de Sistemas I – essa disciplina varia de nome, mas essencialmente ensina as técnicas de análise de sistemas. Muitas vezes trabalha com técnicas de análise estruturada e essencial, outras vezes são trabalhadas já as bases da análise orientada a objetos, mas dificilmente conseguimos trabalhar com o aluno as questões referentes a como fazer as entrevistas com o usuário e o cliente. Aliás, como o aluno não tem um cliente durante o curso acaba gerando uma idéia errada de que existe uma análise de sistemas inventada. Também dificilmente se aborda o tema de como confeccionar orçamentos e propostas de projeto, que são artefatos que devem ser entregues antes de começar uma atividade no mercado. [...]
[...] Jogos são entidades mÃsticas difÃceis – a grande dificuldade aqui está no fato de perceber que os jogos (eletrônicos sejam de computador ou de consoles), são programas de computador tradicionais a diferença está exclusivamente na forma de apresentar os dados para o usuário. Ora, consideremos um jogo simples como o “Jogo da Velha” (tic-taci-toe em inglês), este jogo consiste em uma grade com 9 campos onde dois jogadores se alternam em turnos marcando cada um seu sÃmbolo (tradiocionalmente um X ou um O) em cada uma das casas livres. Ganha o jogador que conseguir marcar 3 casas na vertical, horizontal ou diagonal. Até aà não falamos nada de computador, só das regras de negócio do sistema, até aà estamos fazendo a “análise” (e o ideal é que isso seja escrito de forma clara para sabermos o que faremos), mas vamos pular diretamente para as internas. Uma forma tradicional de representar o jogo da velha é uma matriz 3×3 de inteiros iniciada com valores 0, uma variável “turno” indica o valor do jogador atual, ou seja, de quem é a vez. Quando o jogador representado por “turno” (digamos 1) faz sua jogada, mudamos o valor dessa variável para o valor do outro jogador (digamos 2), e marcamos na matriz o valor do jogador que fez a jogada (o valor 1). Assim a matriz vai sendo preenchida com os valores dos jogadores, a cada jogada verificamos todas as linhas colunas e as duas diagonais para saber se alguém ganhou e se ainda existem jogadas possÃvies (se ainda existem casas com valor 0). Até aqui só falamos de procedimentos internos então o que sobre realmente é a questão de como mostrar o estado atual da matriz na tela e como ler da tela onde o usuário atual clicou para sabermos qual célula foi selecionada pelo usuário para podermos converter isso numa posição da matriz. Outra comparação interessante é a criação de personagens, se considerarmos jogos mais sofisticados tais como os da série Need for Speed e jogos tipo RPG como Rise of Nations: Rise of Legends, nesse tipo de jogo temos que cadastrar um personagem para (com diferentes graus de detalhe) isso equivale por exemplo a um cadastro de contatos que fazemos em um sistema de controle de agenda telefônica (exemplo comum em disciplinas de programação) mais uma vez a diferença reside na interface, que nos jogos costuma ser desenhada com gráficos diferente de janelas de cadastro convencionais. [...]