Ajuda pensar em requisitos no sentido de "promessas que uma aplicacao" faz para o usuario? Tenho experimentado isso nas aulas (grad e pos) e o efeito tem sido muito positivo. Ao forcar a leitura como "a aplicacao promete fazer isso para o usuario", o modelador tende a identificar um requisito funcional mais claramente. Da mesma forma, ao forcar a leitura "a aplicacao promete fazer isso obedecendo aquilo para o usuario", um novo requisito regulatorio (nao-funcional) e identificado.Alem disso, a palavra "promessa" tambem sugere a possiblidade de nao ser cumprida: o modelador conseguira chegar em uma arquitetura que cumpra todas as promessas feitas pela aplicacao para o usuario? Eventualmente, algumas promessas poderao ser cumpridas (alocando-se responsabilidades aos objetos) e outras nao, as quais sofrerao um processo de negociacao conjunta com o usuario.Em relacao as promessas regulatorias, uma classificacao adicional pode auxiliar na identificacao de requisitos:promessas de negocio (regras e leis de negocio)promessas de produto (URPS)promessas de metodologia (processo de desenvolvimento, ferramentas, tecnicas, praticas e linguagens)... P(Ftp)L De tempos em tempos encontro uma discussao relacionada com os conceitos iniciais de programacao que devem ser apresentados em uma disciplina introdutoria. Inevitavelmente, o foco acaba destacando uma antiga (agora) discussao: seguir a trilha das linguagens procedimentais ou seguir a trilha das linguagens OO.Solucao de ProblemasAcredito que um ponto importante a ser considerado e aquele que se relaciona com o tema "solucao de problemas" no nivel abstrato. Esse tema conduz, naturalmente, ao estudo dos algoritmos [Vega, 2008]. Ou seja, quais tecnicas auxiliam na descoberta de instrucoes que resolvem um problema? Quais tecnicas auxiliam a organizar tais instrucoes para que o problema seja resolvido? Como saber se o algoritmo, ao ser executado (em uma maquina abstrata) resolve o problema? O estudo das estruturas de controle (sequencia, decisao e repeticao) nao pode ser excluido. Como, tambem, as diferentes maneiras de se organizar as informacoes manipuladas pelas instrucoes do algoritmo.Codificacao Por outro lado, a codificacao do algoritmo (e das estruturas de dados), revela um outro tema, de natureza diferente ao de "solucao de problemas". Preocupa-se com a geracao de um codigo que resolve um problema ao ser executado em uma maquina concreta (fisica ou virtual). Quais tecnicas sao apropriadas para gerar o codigo? Como coordenar os esforcos de varios programadores, quando da geracao de trechos de codigo que devem ser posteriormente integrados?Seriam as questoes relacionadas a solucao de problemas e de codificacao tratadas em um momento introdutorio? Certamente. E como fazer isso? Qual o papel das linguagens de programacao? O problema e que o desenvolvimento de software e um importante esforco, mas nao amadureceu como processo de engenharia, ainda e uma forma de arte.Craig Mundie Executivo-chefe de pesquisa e estrategia da Microsoft http://idgnow.uol.com.br/computacao_corporativa/2007/06/05/idgnoticia.2007-06-05.7937781119/Normalmente, definem-se indicadores de desempenho sobre pessoas, artefatos (produtos) e atividades, procurando estimar tempo ou gasto financeiro. No caso de projetos de TI, entretanto, surge um agravante: processo, seja ele de desenvolvimento ou de gerencia. Dependendo do processo, ocorre uma variacao muito grande nos parametros pessoas-artefatos-atividades, tornando os indicadores de pouca valia (em parte, dai surgem os 400% de erro do Boehm...) Supondo-se uma maturidade do processo (no