Dans mes études, j'ai vraiment appris à construire des applications de A à Z. Ça veut dire que, quand on a une idée ou un besoin, je sais comment le transformer en quelque chose de concret et qui fonctionne. Par exemple, je me suis exercé à créer des maquettes, en pensant toujours à ce qui est le plus pratique et simple pour l'utilisateur, mais aussi agréable à regarder. Une fois la maquette validée, je n'ai plus qu'à la mettre en œuvre pour de bon. J'ai beaucoup travaillé sur la réalisation d'interfaces graphiques (IHM), notamment avec JavaFX, pour que l'utilisateur puisse interagir facilement et que l'application soit visuellement réussie. Tout ça, c'est aussi bâtir une architecture solide dès le départ, pour que l'application soit stable et facile à entretenir dans le temps.
Au-delà de la simple réalisation, j'ai aussi aiguisé ma capacité à imaginer des conceptions simples, mais vraiment futées. Mon rôle ici, c'est d'analyser un problème, de comprendre ce dont les utilisateurs ont vraiment besoin, et ensuite de traduire tout ça en une structure logicielle claire et une organisation des données qui tient la route. J'ai développé un sens logique qui me permet de penser des solutions qui ne se contentent pas de marcher : elles doivent aussi pouvoir évoluer et être faciles à maintenir. Concrètement, je m'appuie sur la modélisation de systèmes (avec des diagrammes UML, par exemple) et je mets au point des spécifications techniques précises avant même de toucher au code. Le but est limpide : m'assurer que la solution proposée colle pile aux attentes de départ et qu'elle pourra s'adapter sans heurts aux futures demandes.
Une étape cruciale, et que je maîtrise bien, c'est la réalisation de tests rigoureux et l'évaluation franche de leurs résultats. J'ai appris à élaborer et à dérouler divers types de tests – des tests unitaires aux tests d'intégration et fonctionnels – histoire de garantir que mes applications sont de qualité et ultra fiables. Le principe est simple : je compare systématiquement ce que l'application fait réellement avec ce qui était attendu, selon les spécifications initiales. Cette méthode me permet de débusquer les moindres erreurs, les bugs, ou ce qui pourrait manquer, et bien sûr, de corriger le tir. Cette compétence est indispensable pour s'assurer que le produit fini est non seulement conforme, mais qu'il fonctionne aussi parfaitement, peu importe la situation.
Lors de la SAE 1.01, j'ai eu l'opportunité de développer de A à Z un jeu de Marienbad en Java. C'était une belle occasion de mettre en pratique mes acquis : le jeu était non seulement visuellement agréable et intuitif, mais il répondait aussi parfaitement aux attentes formulées. J'ai même intégré différents niveaux de difficulté et optimisé son fonctionnement, ce qui m'a permis de démontrer ma maîtrise de Java acquise durant le semestre et l'année. Mission accomplie : la demande du client a été entièrement satisfaite !
Tout au long de l'année, j'ai solidifié mes bases en conception algorithmique en cours (avec des notions comme les tris et la recherche). La SAE du jeu de Marienbad a été un terrain de jeu idéal pour illustrer concrètement ces compétences. J'y ai conçu un système de difficulté ingénieux pour l'adversaire "ordinateur" : il peut jouer de façon aléatoire, choisir le coup gagnant, ou même garantir une victoire, montrant ainsi ma capacité à élaborer des logiques simples mais efficaces.