Vous devriez commencer avec un croquis de conception d'ensemble de la solution. Vous en savez probablement plus que ce que vous pensez à propos de l'architecture retenue. Par exemple: avez-vous besoin d'une base de données? un serveur d'application? les services web? client de bureau? les clusters?
Puis vous commencez à développer les composants et commencez à vous poser quelques questions de base selon les technologies que vous pensez sont les plus appropriées selon le domaine de la problématique et de vos connaissances. Par exemple: Java ou .NET? Django ou Ruby-on-Rails? JBoss ou Tomcat? Metis ou Apache? Oracle ou MySQL?
Ensuite, vous allez dans les détails. Vous n'êtes toujours pas la mise en œuvre de rien, c'est juste un document préliminaire, et il est très probable que vous allez changer votre esprit à mi-chemin à travers le développement de toute façon. Demandez-vous si vous allez avoir besoin d'un ORM, un cadre, une bibliothèque, d'un appareil dédié. Par exemple: (N)Hibernate ou Toplink? Le printemps? JSF? Struts? Appareil de poche? Lecteurs de codes-barres? Ne mettez pas l'un de ces dans la spécification technique, sauf si il vous oblige à changer quelque chose (c'est à dire des problèmes d'incompatibilité).
Maintenant, il est temps de tout revoir de nouveau.
Rechercher sur le web pour des solutions de rechange, les nouveautés de l'un des composants, des projets similaires, open source concurrents.
Ajouter des détails, corriger les erreurs, la recherche d'informations pour les composants que vous avez été vague sur.
Demandez à vos collègues de relire votre document.
Ne posez pas de détails inutiles, d'essayer d'aborder les grands problèmes d'échelle, pas le petit optimisations. Se concentrer sur ce que vous connaissez le mieux. Créer un pic de la solution chaque fois que vous en avez envie.
Chaque fois que vous faites un commentaire, vous feriez mieux de comparer l'architecture de l'esquisse à l'encontre des exigences (n'oubliez pas les exigences non fonctionnelles).
En faire un processus itératif, de sorte que vous pouvez améliorer et toujours avoir un livrable prêt en tout temps pour les examens par des pairs et la collaboration. Aussi, si le client est satisfait avec le niveau de détail que vous avez réalisé, vous feriez mieux d'arrêter de sorte que vous pourriez vous concentrer sur la phase de développement.