Olá pessoal.
Fiquei muito tempo trabalhando com desenvolvimento acadêmico e não desenvolvi as boas práticas de desenvolvimento. Neste processo, acabei ignorando o desenvolvimento dos diversos modelos recomendados para o desenvolvimento de software, acabei esquecendo da maioria deles, para que servem e como estão relacionados.
Por exemplo:
-Modelo de objetos
-Modelo entidade relacionamento
-Etc…
Que outros modelos são importantes para o desenvolvimento de software?
Alguém pode me indicar uma referência em que posso estudar estes modelos?
Agradeço desde já.
Eu tenho visto que pouca gente sabe ao certo como usar esses modelos, quais os papeis que eles cumprem no desenvolvimento de software e como estão relacionados.
Jokabeludoido
Qualquer bom livro de Engenharia de Software aborda boa parte destes modelos. Entra nessa lista também:
- casos de uso;
- diagramas (classes, sequência, estado, etc)
E por aí vai…
Abraço.
Tem algum que você indicaria em específico?
Obrigado.
Eu desconheço qualquer referencia a “Modelo de desenvolvimento de software”!!!
Vc quis dizer o que? metodologia? arquitetura?
Favor esclarecer…
Fico intrigado com essas perguntas.
Sera que a rapazianda anda programando? Se alguem programou o suficiente ja identificou alguns problemas na sua forma de faze-lo, por exemplo se vc faz tudo sozinho em algumas semanas vc esquece totalmente o que aquilo fazia? Ou vc demora demais para entregar e o programa fica (bem) diferente do esperado?
Não me entenda mal, mas para compreender boas praticas e diferentes modelos de desenvolvimento é interessante ter uma experiência com desenvolvimento em Si (quanto mais variada, melhor) e, principalmente, na prestação de serviços. Se vamos fazer um projeto nosso ou vamos contribuir com outro projeto estamos prestando um serviço, se vamos fazer um freela estamos prestando serviço, e muitas metodologias estão ai para contribuir justamente com esta etapa. Veja o XP, por exemplo, vc tem praticas de código mas tem praticas para extrair informações do cliente e poder colher feedback do mesmo.
O melhor exemplo é o modelo em cascata: vc demora pra ter qq feedback dos artefatos que vc construiu pois o ciclo de testes acontece depois da analise E desenvolvimento. O feedback que os seus testes podem te dar são baseados na analise que vc fez ou seja no maximo corrigem falhas que aconteceram entre a analise e o desenvolvimento, mas o que garante que a analise estava correta? Só pq existe um contrato vc não pode tentar ser mais efetivo nesse momento? Desses e outros problemas surgem metodologias como Scrum, que está um tanto alem do desenvolvimento.
Existem centenas de formas diferentes de desenvolver, mas acredito que vc pode classificar de acordo com o numero de pessoas envolvidas. Alguns sistemas podem ser feitos por um unico cara ( que é O cara ) que faz sozinho e muito bem. Outros podem envolver milhares de pessoas em diferentes continente que o fazem de graça pois apoiam o projeto (como o Kernel Linux e tantos outros projetos open source). E ainda tem aqueles projetos corporativos que podem ter tantas pessoas quanto podem comprar com suas formas exoticas de gerenciar e desenvolver, mas sem entender a realidade e os problemas de um dado modelo e em que tipo de projeto ele cai bem fica dificil responder além de enumerar algumas respostas.
Por exemplo, eu posso fazer um grande sistema de uma forma totalmente procedural, sem me preocupar com objetos. Ou posso ter uma parte que utilize uma linguagem funcional como Erlang. Nesses casos pensar em objetos pode não fazer tanto sentido mas continua sendo util.