Etapas para projetar um sistema

Bom pessoal, estudando java, cheguei uma parte que percebi que projetar o sistema antes de sair pensando e fazendo nada é essencial. No meu estudo primeiro ele pega faz um documento de requisitos, depois analisa, extrai o objetivo etc etc… Queria saber ai dos Engenheiros de Software, analistas, projetistas desse forum ou qualquer um que ja tenha projetado um sistema bem, que me dê dicas, me indique etapas ou forneça links bons dizendo as etapas para projetar um sistema. Tipo assim:

1° - Faça um documento de requisitos( converse com o cliente para saber, blabla)
2° - Veja o objetivo do sistema
3° - Faça UML blbalbalbalbALALasdadasda…

Então, alguém poderia me ajudar dizendo tudo sobre projeto de sistemas

Na prática, é impossível definir um único modelo de desenvolvimento que sirva para todos os projetos. De um ponto de vista didático, pode ser interessante dividir um projeto de sistemas em elicitação de requisitos, análise, projeto, implementação e testes. Mas como eu disse, de um ponto de vista didático, exclusivamente, para poder entender quais tipos de ferramentas podem ser empregadas em cada uma delas. Entendendo cada uma das etapas, você precisa buscar quais são os modelos de desenvolvimento que estão presentes no mercado e as melhores práticas.

De minha experiência, tenho concluído que artefatos de código são melhores que documentos. Por exemplo, um protótipo funcional e alguns testes de aceitação são ferramentas melhores que templates de documentos para levantar requisitos. Uma boa prática, também na minha opinião é o desenvolvimento iterativos, combinando com a priorização de estórias de usuário segundo o valor de negócio.

Eu sei que não tem um modelo único, pois onde li disse que cada software tem o seu próprio modelo de acordo com as necessidades. Mais fiz minha pergunta me referindo a um sistema básico, não super complexo. Para iniciantes. E ah aproveitando. Qual livro seria bom ler depois do Java Como Programar 8° edição - deitel