Acredito que você pode focar em estudar e aplicar analise de requisitos, diagramas de classe, casos de uso, e diagrama de entidades.
Quando falamos em desenvolvimento geralmente muitos pensam em já ir direto para a IDE, sabe? mas esse ato pode custar caro, e o caro aqui podemos estar falando em dinheiro e de tempo, pois você pode sem querer passar bastante tempo refatorando funcionalidades, ou criando funcionalidades que não sabia que precisava até precisar, por falta especificação de requisitos.
É interessante, na minha visão, que antes que você (ou sua equipe) coloque a mão no código, tenham em mente os requisitos funcionais e não funcionais do software, você pode documenta-los em um documento de requisitos, que pode ser montado em reunião com o cliente ou/e partes interessadas no sistema.
Requisitos funcionais:
São as funcionalidades especificas que o sistema pode ter, como:
- realizar cadastro de cliente;
- mostrar dados do cliente cadastrado;
- gerar relatórios;
Requisitos não funcionais:
Esses estão mais voltados ao ambiente no qual o sistema vai rodar, e tornar aquelas ações possiveis, exemplo:
- sistemas operacionais compatíveis;
- arquitetura de hardwares compatíveis;
- tratamento de informações em banco (ex: criptografia da senha);
A baixo, segue um artigo sobre diagramas UML:
Diagramas UML
Aqui listo alguns artigos interessantes sobre tipos de requisitos:
Requisitos Funcionais e Não funcionais
O que são requisitos funcionais e não funcionais?
É isso, espero que tenha conseguido lhe ajudar, ou menos da um norte de por onde seguir.
Abraços! ;)