| Autor |
Mensagem |
|
|
Pessoal, a implementação completa do meu artigo está no site abaixo. Desde o problema até a solução em Java + Struts + Hibernate.
Lá temos artefatos exemplo, alguns videos explicativos, modelos, requisitos, códigos, arquiteturas, enfim, um exemplo baseado em metodologia ágil seguindo o OpenUP.
Acessem:
http://www.aspercom.com.br/hotmotors
|
 |
|
|
Amigos(as), desculpem o OFF, mas algum de vocês da comunidade é cartunista nas horas vagas? Estou escrevendo um artigo e gostaria colocar alguns cartoons sobre situações entre equipe de desenvolvimento e o cliente...
Mandem mensagem private para não poluir aqui... valeu?!?!
Tks!
|
 |
|
|
Você pode estender a coleção e fazer o que quiser com ela. Algumas situações eu já montei classes que estendem/implementam collections.
|
 |
|
|
Exatamente, ele vai reimplementar o Hibernate... acho que o Hibernate implementa proxy usando CGLIB...
Todo mundo acha hibernate um troço do outro mundo... Mas é fácil.
|
 |
|
|
Creio que o controle do relacionamento estaria do lado do itempedido, assim sendo, poderia ser uma agregação... o produto por sí não "conseguiria entrar dentro de um itempedido sozinho".
Vamos relembrar que isso é tudo conceitual. Java não implementa nem agregação e nem composição.
|
 |
|
|
Cara, depende dos seus requisitos? É uma nota por pedido ou um pedido gera várias notas?
Geralmente não tem tanta amarração (pelo menos nos casos ERP/CRM que trabalhei).
|
 |
|
|
Você faz o mapeamento do Hibernate e ele gera o banco para você, não importando se é SQLServer, Oracle, DB2, Derby, MYSQL. Ele gera pk, fk, relacionamentos...
É simplesmente "show de bola". Fazer script de banco é um saco...
Tem um exemplo no estudo de caso da Hotmotors no site da ASPERCOM...
www.aspercom.com.br
|
 |
|
|
lucasdeoliveira wrote:Até então eu entendia que se o seu sistema-alvo permitir a realização de casos de uso por um ator que é cadastrado no sistema então vc provavelmente vai ter uma classe relativa à esse ator na sua modelagem de análise/projeto. Certo?
Err.... não... você pode ter um ator com o mesmo nome de uma classe no seu sistema. Essa classe pode representar o ator, mas a classe é a classe e o ator é o ator. Como disse, o ator tem responsabilidades fora do controle do sistema, mas a classe é interna e o sistema é responsável por ela.
O ator na UML representa alguma coisa fora do sistema. Você se chama Lucas, certo? Se eu criar uma classe chamada Lucas, daria para colocar você no lugar da Classe? Ou melhor, daria para reaproveitar você no lugar da classe?
|
 |
|
|
paribe, resumindo, com direito a uma metáfora que você nunca mais vai esquecer (as meninas que me perdoem, mas vocês não vão esquecer por raiva também).
Dependência (seta tracejada): é o relacionamento mais fraco da UML, simplesmente diz que um elemento client (que atira a seta) é semanticamente ou estruturalmente dependente do supplier (que recebe a seta). Exemplo: Produto e AliquotaImposto.
Associação (linha contínua): as duas classes são independentes e podem trabalhar juntas. A visibilidade destaca qual lado consegue enxergar as extremidades da associação, mas ambas as classes podem estabelecer o relacionamento. Exemplo: Cliente e Fornecedor.
Agregação (linha contínua com diamante branco): a classe que possui o diamante branco controla a associação. Exemplo: Equipe e Pessoa. A equipe é quem pode estabelecer o relacionamento, você adiciona pessoas à equipe. Uma pessoa por sí só não pode "entrar na equipe". É a equipe que manda no relacionamento, mas mesmo assim, as classes são independentes. Pessoas existem fora de equipes. METÁFORA: Podemos dizer que a classe que possui o diamante branco é a MULHER, ela quer controlar o relacionamento!
Composição (linha contínua com diamante negro): a composição é uma agregação mais forte. A classe que possui o diamante controla a associação, e além disso, a outra classe só pode existir associada à classe que tem o diamante e não pode estar associada a outras instâncias. Exemplo: Nota e ItemNota, Pedido e ItemPedido. METÁFORA: A classe com o diamante negro é uma MULHER CIUMENTA, além de controlar o relacionamento, não permite que o composto se associe com mais ninguém e julga que o outro não existe sem ela....
(um dia desses ainda vou ser linchado na minha aula de OO)
|
 |
|
|
lucasdeoliveira wrote:Atores são classes esterotipadas!! Segundo a UML um ator é uma classe com stereótipo <<Actor>>.
Err... não lucas, Ator na UML não é classe. Ator na UML é um classifier que simplesmente permite herança (vide figura 401 da Superstructure). Um Ator não pode ter dados (atributos) e nem comportamentos (operação) na UML. O fato de permitir que o ator seja representado como um retângulo estereotipado como <<actor>> é um notação alternativa da UML, também prevista na especificação. Não é porque é um retângulo que é uma classe.
lucasdeoliveira wrote:Se o seu sistema precisa de manipular dados desse ator então é possível vc reaproveitar seu ator como classe na modelagem de análise e projeto sim!
O sistema mudando dados do Ator? Acho que a única situação que eu ví isso foi no filme Matrix e no Exterminador do Futuro. Se o que você está falando fosse verdade você sentaria na frente do computador e o sistema falaria "Lucas, vou mudar a sua idade para 81 anos. OK? Está mudado. Veja a sua nova data de nascimento no RG.". [desculpe a ironia, mas não deu para deixar escapar... sorry, afinal, estamos aqui para dar umas risadas também]
lucasdeoliveira wrote:Só pra exemplificar: Quem usa o JudeUML (que por acaso está de acordo com a UML)...
Não existe ferramenta 100% aderente à UML.
|
 |
|
|
Não gosto muito de ensino a distancia. A obtencao de conhecimento é muito dinamica, como voce pode fazer um MBA a distancia? Isso nao existe, nem somente em faculdade voce consegue aprender muito, a maioria dos cursos te mandam para empresas por alguns meses, as vezes até em outros paises.
Bom, é seu gosto pessoal. Acho que a maneira que eu coloquei foi muito determinante! Mas já vou consertar: realmente nem todo curso dá para fazer à distância com a mesma qualidade, mas um curso que dá para fazer à distância (como o nosso de Casos de Uso) teria o mesmo valor acadêmico que um curso presencial... Nosso curso de Levantamento e Especificação de Requisitos não daria para fazer on-line com a mesma qualidade do presencial (simulamos uma reunião com o cliente no curso, não seria a mesma coisa fazer via net.)
Tambem nao acho que provas não provam nada. Acho que as provas não dizem tudo, mas provam alguma coisa sim.
Provam muito pouco. Teve alguma prova que você fez e o professor te deu um feedback pessoal, discutindo os pontos que você está tendo dificuldades, permitindo que você corrija os erros e REALMENTE aprenda? O estudo em universidades é em atacado: faça a prova, se passou parabéns, senão, volta e faça de novo.
Eu fiz um curso a distancia de frances, com todas as ferramentas possiveis, por 3 meses. Apos isso, tentei um professor normal. Cara, o negócio rendeu 1000% mais que o curso a distancia.
Vc está comparando curso com aula particular... aí é covardia... já comentando, ele aplicava provas? No meu caso não dá para dar aula particular sobre desenvolvimento de software. Apesar que agora, discutindo com você, acho que até deve ter mercado para dar aulas particulares de Word, Excell, Windows... já tó dando uma dica para quem quiser ganhar aí uns 30-40 reais hora num negócio bem fácil...
|
 |
|
|
Ensino a distância é válido. É uma realidade no mundo todo e por incrível que pareça, já tem mais de 100 anos no Brasil.
Não é só uma questão de "material, leitura e fóruns". O ensino à distância pode chegar aonde a sala de aula não chega. Nosso curso on-line tem inscrições até em Angola, Portugal. Quem mora em grandes centros urbanos não tem tanta dificuldade e pode escolher, mas certas regiões do país não tem tanta oferta e os cursos via internet são interessantes.
Eu vejo que o curso à distância tem o mesmo valor educacional que um curso presencial, e não tem muito a ver com a "disciplina" do aluno, mas sim com a sua vontade de aprender. Para mim, se o aluno vai para a sala de aula desmotivado, dá uma estudadinha e tira a nota para passar na matéria ele não está aprendendo, fazer o curso não é garantia que o aluno aprendeu. Prova não prova nada.
Mas o curso on-line deve ser atraente, o negócio tem que atrair o aluno, desafiá-lo! O ensino on-line realmente é um desafio que muitos educadores não estão prontos. Prender a atenção de um aluno em sala de aula já é um desafio, agora fazer isso via internet é um desafio maior ainda. O material muda, o formato do ensino muda, a maneira que você expõe o conteúdo muda!
Fazer um curso on-line que funcione não é um negócio fácil e nem barato. É preciso muita dedicação e "reaprender a ensinar". Existem muitos formatos de cursos à distância, desde via correio como o Instituto Universal Brasileiro (lembra dos anúncios nos gibis?) como um ambiente de ensino à distância via internet como o que temos na ASPERCOM.
|
 |
|
|
cissosaito,
O software por sí só é um "ser inanimado", isto é, não funciona sozinho. O M$-Word, sozinho não consegue produzir texto, precisa do ator para digitar as letrinhas.
O ator é alguma coisa externa ao sistema que possui responsabilidades fora do controle do próprio sistema. 99% dos casos o ator será uma pessoa ou um sistema externo (integração entre sistemas).
Seria legal você fazer o nosso curso on-line grátis como ponto de partida. Cadastre-se e acesse: www.aspercom.com.br (recomendo a lição 2, onde tratamos esse assunto).
Pode ocorrer de ter uma classe com o mesmo nome de um ator, mas a classe é interna à responsabilidade do sistema, o ator não!
|
 |
|
|
A relação entre DBAs e o Hibernate é péssima, pois IMHO DBAs estão perdendo bastante terreno atualmente. Alguns projetos que trabalhei onde os DBAs ficaram responsáveis pelo mapeamento OO->ER deu muitos problemas, pois os DBAs ficavam inventando histórias no mapeamento para fazer aquelas famosas justificativas: -"mas quando esse indice alcançar mais de 5 alocamentos de disco lá pelo ano de 2046 a performance ficará comprometida em 2 ms".
Você só teria um impedimento ao uso do Hibernate se por acaso os DBAs da sua empresa não permitirem o uso de queries diretas (SELECT/INSERT/UPDATE/DELETE), permitindo apenas stored procedures.
Se o sistema está baseado em stored procedures, realmente perdemos um ganho significativo no uso do hibernate, que é a independência de banco de dados. Associar perfis de segurança ao banco também não é uma boa idéia, mas acontece muito em inst. financeiras. Função do banco é guardar dados.
Nos meus últimos projetos, o hibernate tem caído como uma luva. Alguns com mais de 300 tabelas não tive problema algum. Nem precisamos mais de modelagem de dados tipo MER. Nossa visão dos dados acaba sendo as próprias classes. Um modelo de classes já nos é suficiente. Nem precisamos do MER, nem sentimos falta. Aliás, nem escrevemos os scripts de geração do DB. O schemaexport resolve.
|
 |
|
|
Na aba Scenario das propriedades do Caso de Uso vc consegue escrever o texto do caso de uso e depois gera um documento Word através do "Rich Text Documentation". É melhor do que ter conteúdo fora da ferramenta. Mesmo assim, o EA não é poderoso para gerência de requisitos.
OK?
|
 |
|
|
|
|