Existe maneira correta de se iniciar o desenvolvimento de um sistema?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
fggs
Thread.start()

Membro desde: 20/06/2011 10:16:34
Mensagens: 46
Offline

Bom dia,

Me deparei com essa pergunta, já que estou começando a desenhar um, mas não consigo enxergar direito os relacionamentos, o jeito certo de fazer, já tentei entrevistar os funcionarios para ver se facilitava, digamos que ajudou, mas ainda assim é complicado..

Quando eu disse "correta", quis dizer mais usual pois devem existir N maneiras...

Pelo que li eu deveria começar pelo diagrama de classes, é isso mesmo?
alissonvla
GUJ Master

Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline

eu gosto de seguir a seguinte sequencia, Modelar Banco de Dados, Camada de Persistencia, Camada de Negocio e Camada de Visão.

t+
DaviPiala
Virtual Machine Man
[Avatar]
Membro desde: 17/08/2007 19:17:35
Mensagens: 598
Localização: São Paulo
Offline

Eu acho que o ideal é começar pelos processos, um bom trabalho de BPM com Aris mapeando processos em EPC ou BPMN faz muita diferença. Se a empresa já possui um AS-IS de todos os processos, vc poderia gastar mais tempo do projeto planejando o TO-BE de todos os processos, nessa modelagem vc identifica quais são oportunidades de reusabilidade e se uma atividade é melhor aproveitada sendo completamente humana ou suportada por algum sistema ou funcionalidade.

Após esse trabalho com o TO-BE vc já tem um norte, fica mais fácil elaborar uma arquitetura de referência vc saberá com quais sistemas irá interagir e se os componentes que vc irá adicionar irão atender os processos.

Em paralelo ao trabalho de arquitetura pode ser tocado um mapeamento de requisitos funcionais a partir dos requerimentos gerados nos processos, os requisitos são o insumo para produção dos casos de uso e prototipação.

Após a definição dos Casos de Uso e com os processos a mão fica mais fácil produzir artefatos para desenho técnico, em paralelo a essa etapa acho que é possivel produzir o documentação para testes.


Si temi more regat
Efamima dove tore
Infata dio re
Infa lati plastire
fggs
Thread.start()

Membro desde: 20/06/2011 10:16:34
Mensagens: 46
Offline

Obrigado pelas rápidas respostas Alisson e Davi!

E se no caso a empresa ainda não possui um bom AS-IS, por assim dizer? Vou pesquisar sobre como obter isso, mas gostaria da opinião de vocês.

Vou estudar o TO-BE para já começar alguma coisa quando o AS-IS tiver pronto.
renanreismartins
GUJ Ranger
[Avatar]

Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline

muita coisa depende de escopo, imagino que seu projeto seja simples.

Entao vc pode ter uma abordagem prática, começou bem, entrevistou os usuários, se já descobriu oque eles querem, vc pode usar as user stories ou casos de uso mesmo para documentar, documente somente o necessario para comunicaçao, nao se apegue a documentacao inutil que vai ser um monte de papel esquecido e desatualizado. Entenda o negocio do seu cliente.

pesquise que tecnologia se enquadra melhor. Feito isso comece a desenvolver. FAÇA TESTES. E foque na comunicação

abrasss

This message was edited 1 time. Last update was at 11/10/2011 11:55:05


http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software
[WWW] [MSN]
alandiniz
JavaEvangelist
[Avatar]

Membro desde: 14/03/2010 20:06:59
Mensagens: 314
Localização: Cianorte
Offline

Eu imagino que tenha várias maneiras de começar...

O que eu aprendi é começando pelos requisitos, anotar tudo... fazer várias reuniões - brainstorm (tempestade de idéias).

A partir dai, você filtra o que é útil....

As vezes, montar um exemplo de tela, pode ajudar a montar um banco de dados!!
não precisa ser a tela mesmo, em swing ou html/css ou sei lá oq.... pode ser um desenho no papel mesmo ou no photoshop/corel draw.
Eu faço muito isso, desenhar telas no papel, e realmente ajuda na formação do banco de dados.
[Email] [WWW] [MSN]
fggs
Thread.start()

Membro desde: 20/06/2011 10:16:34
Mensagens: 46
Offline

Mais uma vez, obrigado pela resposta Renan.

Se é simples não sei, o que sei é que sou meu próprio cliente e entrevistei para enxergar melhor os processos, mas o que aconteceu é que cada um enxergava o processo de uma forma, fazia de um jeito. Talvez caiba ao meu sistema disciplinar os processos.

O que eu quero que o sistema faça e bem é gerar bons relatórios, isso é primordial.

To aqui lendo sobre EPC e BPMN, pelo que entendi, EPC é bom para linkar varias dimensões, BPMN é melhor no controle de fluxo, vou analisar meu caso e começar a desenvolver esse BPM para depois partir para arquitetura de referência e assim por diante.

Pelo menos esse é meu plano hehehe
fggs
Thread.start()

Membro desde: 20/06/2011 10:16:34
Mensagens: 46
Offline

Respondendo ao Alan, eu também achava que fazendo telas facilitava para enxergar, mas eu me perco na hora de organizar. Na realidade fico naquela.. como criar essa tela? Assim ou assado?

Poxa, muito obrigado pela ajuda de todos, eu estava mesmo precisando de uma base teórica. De um jeito ou de outro não da para fugir de conhecer as necessidades, acho que vou começar por ai
drsmachado
GUJ Expert

Membro desde: 25/09/2010 12:54:06
Mensagens: 3986
Localização: Curitiba / São José dos Pinhais - PR
Offline

Começar pelo diagrama de classes?
De onde essas classes virão?
Mapeando processos?
Depende do escopo?
Existem N maneiras?

Sim, existe a maneira certa e as erradas. Se você quer a maneira correta, precisa conhecer o negócio, o objetivo do sistema, quais são os pontos em que ele irá ser aplicado, quem irá utilizar e como essa interação vai ocorrer. Isso lembra alguma coisa? Se você disse "requisitos" a resposta está correta.

Levantar requisitos vai além de entrevistar usuários, é fazer parte do cotidiano deles, ver como as operações são feitas atualmente, que entradas, onde o processamento ocorre e de que forma e quais são as saídas.

Não é possível criar um sistema para padaria, pensando que vender pães é a mesma coisa que vender roupas.

É por isso que se chama análise de sistemas, você precisa estudar, analisar a coerência do que existe e, então, mapear os processos, criar os use-cases, diagramas de classes e sequências, modelar e desenvolver em uma das N maneiras existentes.

Quando você programa um HelloWorld, aí sim, não precisa de nada disso, só criar a classe ou arquivo, compilar e rodar.

Rumo aos 4000
"Os homens de verdade assumem suas responsabilidades e culpas. Esquivar-se e dar desculpas é atitude dos tolos, que preferem não se comprometer".

Lugar de perguntar é no fórum!
Não respondo via MP
Não respondo por Email
Não respondo por IM
fggs
Thread.start()

Membro desde: 20/06/2011 10:16:34
Mensagens: 46
Offline

Exatamente drsmachado!

Na verdade são muitos termos para eu assimilar então posso ter escolhido o errado, mas é realmente isso, análise de requisitos.

Estou fazendo o possível para conhecer o negócio, nessa parte as entrevistas ajudaram pois entrevistei todos que cuidavam de ENTRADAS, minha idéia inicial era mapear as entradas, mapear os cenários dessas entradas e por último mapear as saídas. Pelo que você me falou eu não estava totalmente errado, mas acho que com o BPM isso vai ser mais completo.

Como eu disse, nas entrevistas cada um tinha uma visão de como fazer uma coisa, até implementamos uma certa padronização, mas acredito que isso só vai se consolidar com um sistema rodando.

Achei umas apresentações muito interessantes sobre Mapeamento de Processos no Slideshare, acham que é uma boa eu postar os links? Talvez possa ser útil para outros novatos como eu..

drsmachado
GUJ Expert

Membro desde: 25/09/2010 12:54:06
Mensagens: 3986
Localização: Curitiba / São José dos Pinhais - PR
Offline

fggs wrote:Exatamente drsmachado!

Na verdade são muitos termos para eu assimilar então posso ter escolhido o errado, mas é realmente isso, análise de requisitos.

Estou fazendo o possível para conhecer o negócio, nessa parte as entrevistas ajudaram pois entrevistei todos que cuidavam de ENTRADAS, minha idéia inicial era mapear as entradas, mapear os cenários dessas entradas e por último mapear as saídas. Pelo que você me falou eu não estava totalmente errado, mas acho que com o BPM isso vai ser mais completo.

Como eu disse, nas entrevistas cada um tinha uma visão de como fazer uma coisa, até implementamos uma certa padronização, mas acredito que isso só vai se consolidar com um sistema rodando.

Achei umas apresentações muito interessantes sobre Mapeamento de Processos no Slideshare, acham que é uma boa eu postar os links? Talvez possa ser útil para outros novatos como eu..

Para o BPM ter resultado, é preciso saber o mínimo sobre como o processo funciona.
Cada usuário irá falar do próprio conhecimento e isso acaba gerando ruído e poluição para a análise.
É fato que um sistema, quando implementado, irá atender a determinadas necessidades e acabar por suprimir outras.
De qualquer forma, você está no caminho certo.
Qualquer metodologia de desenvolvimento prega que você precisa levantar requisitos para começar, seja ela para desenvolvimento ágil ou "normal".

Rumo aos 4000
"Os homens de verdade assumem suas responsabilidades e culpas. Esquivar-se e dar desculpas é atitude dos tolos, que preferem não se comprometer".

Lugar de perguntar é no fórum!
Não respondo via MP
Não respondo por Email
Não respondo por IM
fggs
Thread.start()

Membro desde: 20/06/2011 10:16:34
Mensagens: 46
Offline

O que eu tenho em mente hoje é me basear nas entrevistas para determinar como vai ser. Eu poderia simplesmente determinar como quero e pronto, mas acho que isso dificulta na hora do usuário interagir com o sistema, se ele está acostumado a efetuar uma tarefa de um jeito e ficar muito diferente no sistema, ele vai levar mais tempo para se familiarizar.

Talvez um meio termo ajude, porque realmente gera ruído e me deixa confuso.
DaviPiala
Virtual Machine Man
[Avatar]
Membro desde: 17/08/2007 19:17:35
Mensagens: 598
Localização: São Paulo
Offline

drsmachado wrote:
Para o BPM ter resultado, é preciso saber o mínimo sobre como o processo funciona.
Cada usuário irá falar do próprio conhecimento e isso acaba gerando ruído e poluição para a análise.


Falou mais que a verdade, o pessoal prega que para vc valide os processos vc use como base uma reunião baseada em JAD, onde vc desenha o processo com os usuários chave de um processo presentes, assim vc evita que cada usuário desenho o processo do jeito que mais lhe interessa.


Si temi more regat
Efamima dove tore
Infata dio re
Infa lati plastire
fggs
Thread.start()

Membro desde: 20/06/2011 10:16:34
Mensagens: 46
Offline

Vocês não tem idéia de como estou aprendendo com este tópico, não só para o meu projeto, como para toda minha empresa, assim como a vida. Li quase 200 páginas sobre o Aris e ele ajuda bastante a desenhar os cenários, não o conhecia, obrigado pela dica.

Se vocês não se importarem, vou formular um passo-a-passo para eu seguir, dai vocês comentam se estou entendendo corretamente os conceitos e se essa é a forma de obter o que eu preciso.

Trabalho melhor quando tenho um guia.

Obrigado mais uma vez pela participação de todos!
DaviPiala
Virtual Machine Man
[Avatar]
Membro desde: 17/08/2007 19:17:35
Mensagens: 598
Localização: São Paulo
Offline

O Aris é uma plataforma que era da IDS scheer, a IDS foi adquirida pela Software AG que também é dona de uma plataforma muito bem conceituada a Webmethods. Além do Aris existem outras ferramentas para essa funcionalidade como o BPA da Oracle que é praticamente igual ao Aris foi desenvolvido na Argentina com ajuda de alguns consultores IDS Scheer aqui do Brasil, a Oracle fez uma parceria a nivel Global com IDS Scheer na epóca e o intuito era desenhar processos em EPC e migrar nativamente para BPEL ou XPDL.

No começo a migração era uma bosta e só se fazia via plugins, hj já melhorou bastante.

Os processos que vc desenhar no Aris assim como no BPA podem ser migrados para XPDL ou para BPEL através de um plugin que vc instala no Aris Business Architect .

This message was edited 2 times. Last update was at 11/10/2011 21:42:55


Si temi more regat
Efamima dove tore
Infata dio re
Infa lati plastire
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team