[PYTHON] Définition des exigences - articles pouvant être des ressources humaines capables de concevoir des systèmes

introduction

Avez-vous déjà ressenti cela en étudiant la programmation?

** "Je ne peux pas fabriquer un produit même si j'étudie" ** ** "Comment faites-vous le développement en premier lieu?" ** ** "Quelle est la définition de l'exigence?" **

Pour résoudre ce problème, comprenons d'abord ** le sentiment général de développement **. Veuillez consulter la figure ci-dessous "Processus de développement logiciel"

La programmation que j'étudie toujours correspond à la partie ** "implémentation" **. En d'autres termes, il y a ** 4 murs ** avant de pouvoir démontrer vos compétences en programmation.

image.png

Par conséquent, dans cet article, il est nécessaire avant de démarrer l'implémentation (programmation). J'expliquerai ** "Planification-Conception" ** étape par étape. En particulier, nous nous concentrerons sur la ** «définition des exigences» et la «conception» ** que les ingénieurs devraient comprendre.

On dit que le temps utilisé pour ** la mise en œuvre (programmation) ** dans l'ensemble du développement est ** 20 à 30% du total **. D'autre part, ** 50% du total ** est utilisé pour ** les processus en amont ** tels que la définition et la conception des exigences.

En d'autres termes, ** les ressources humaines capables de définir et de concevoir les besoins augmenteront inévitablement leur contribution aux projets de développement **. Profitons de cette opportunité pour l'acquérir et élargir le champ d'activité.

Les chapitres de cet article sont les suivants.

Nécessité de la définition des exigences

Objectif de la définition des exigences

Il existe à peu près deux types de parties impliquées dans les projets de développement de systèmes.

Si vous voulez créer le système que vous voulez, il n'y a pas de problème car vous avez l'image terminée dans votre tête. Dans de nombreux cas, nous demandons au «commandeur ⇒ développeur» de développer.

À ce moment-là, le développeur ne sait pas quoi faire à moins que ** l'image dans l'esprit du client ne soit clarifiée **. Des définitions d'exigences existent aux fins de communication à cette fin.

Comparons-le à la vie quotidienne. Souhaitez-vous demander "Achetez un verre!" Quand vous avez soif?

Correctement «acheter du café» ou plus précisément "** J'ai acheté un café chaud au sucre fin. C'est une bouteille en PET, pas une canette! **" Vous ne pouvez pas acheter le café que vous pensiez ne pas dire.

Le développement du système est le même. ** "Que dois-je faire? Le but de la définition des exigences est de s'entendre clairement sur **.

C'est, ** Définition des exigences = Promesse préalable que vous pouvez confirmer spécifiquement "C'est OK!" Au moment de la livraison ** Il est bon d'avoir une compréhension telle que.

Processus de détermination de la définition des exigences

Maintenant que vous connaissez le but de la définition des exigences, comprenons les trois étapes pour terminer la définition des exigences.

image.png

La communication par ** «examen» et «proposition» ** est requise pour ce processus en trois étapes. Ce sera comme suit une fois arrangé dans l'ordre.

image.png

Questions décidées par définition d'exigence

Maintenant que vous connaissez le flux, organisons grossièrement les questions à décider dans la définition des exigences. Si vous l'organisez avec 3W (Pourquoi, Quoi, Comment), il sera bien organisé.

Comment faire une conception de base (conception d'écran, conception fonctionnelle, conception de données)

Vous pouvez imaginer qu'il y a tellement de choses à décider dans la définition des exigences, mais ne vous inquiétez pas.

Ce qui (flux commercial et exigences fonctionnelles / non fonctionnelles) n'est pas un ingénieur Même du côté du développement, il y a une tendance pour "** vendeur " et " ingénieur commercial **" pour gérer le travail.

Donc, je vais approfondir ** Comment (conception) ** où les ingénieurs peuvent démontrer leurs capacités. Parmi eux, ** la conception de base est la clé **, donc cet article se concentrera sur cela.

Comme mentionné ci-dessus, dans la conception de base, ** "écran / fonction / données" ** est conçu. Ce n'est que lorsque ceux-ci sont disponibles que le programmeur pourra démarrer le développement logiciel.

Conception d'écran (conception d'interface utilisateur)

Tout d'abord, l'élément à décider est ** la conception de l'écran (conception de l'interface utilisateur) **.

Étant donné que les utilisateurs utilisent le logiciel via l'écran (UI), Tout d'abord, obtenir le consentement à ** "Facilité d'utilisation de l'écran" ** est le raccourci vers la réussite du projet.

Comme mentionné ci-dessus, les éléments suivants sont décidés dans la conception de l'écran.

―― Que pouvez-vous faire sur chaque écran?

image.png

Si vous l'organisez jusqu'à présent, vous pouvez obtenir une image concrète du système terminé. C'est la raison pour laquelle la conception de l'écran est d'abord.

Design fonctionnel

Une fois la conception de l'écran (conception de l'interface utilisateur) terminée, concevez les fonctions à implémenter dans le système. Veuillez comprendre que la conception fonctionnelle est la phase qui définit ** "le traitement à exécuter en coulisses, les données nécessaires" **.

Les décisions que vous devez prendre sont celles décrites ci-dessus.

Concevons grossièrement les fonctions de chaque page qui apparaît dans le diagramme de transition d'écran.

image.png

image.png

image.png

image.png

image.png

image.png

En faisant cela, n'importe qui peut imaginer ** quel type de programme doit être écrit **. Puisque la composition des pièces qui compose le système est également clarifiée, la ** répartition des rôles au sein de l'équipe ** est également facile.

Pour compléter le design fonctionnel, relions le design de l'écran et le design fonctionnel. Visualisez quel type de ** opération utilisateur / traitement arrière ** est effectué entre les écrans.

image.png

La figure ci-dessous montre la disposition générale.

image.png

Conception des données

Le dernier est la conception des données. Après avoir préparé jusqu'à présent, vous pouvez enfin commencer la conception des données.

Comme mentionné ci-dessus, il y a trois choses à décider.

Ce que vous devez savoir ici, c'est que ** les données sont grossièrement divisées en quatre types **. Concevez comment ces quatre types de flux de données dans le système.

Contenu spécifique des données

À ce stade, nous incorporerons les définitions de données abstraites telles que ** «Informations sur les membres» **. Au niveau pratique, la connaissance de la ** «normalisation» ** est requise.

Conception de base de données

Une fois que le contenu des données est clair, concevez la base de données.

La première chose à retenir est que jusqu'à présent, les données étaient appelées par «informations sur les membres», «informations sur le produit», «historique des achats», etc. Du point de vue de la base de données, nous utilisons l'expression ** table **. *** "Tableau des membres", "Tableau des produits", "Tableau de l'historique des achats" **, etc.

La conception de la base de données nécessite trois tâches.

Commençons par diviser le rôle de chaque table selon les critères suivants.

Ensuite, "Relation de référence entre les tables" organise la relation entre la ** destination de référence et la source de référence ** avec des flèches. Si vous spécifiez également ** «Données générées à partir du comportement de l'utilisateur» **, il est facile à comprendre sans omission de flux de données.

image.png

Enfin, créez un diagramme ER qui sera le diagramme de conception de la base de données et complétez-le.

image.png

Flux de données (flux de données)

Enfin, si vous organisez ** "Relation entre base de données et diagramme de transition d'écran" ** Vous pouvez voir l'ensemble du système ** "Conception de l'écran x Conception fonctionnelle x Conception des données" **.

Puisque nous écrirons les programmes un par un sur la base de ce dessin de conception, Pratiquez-le plusieurs fois pour pouvoir dessiner fermement le tableau.

image.png

Une longueur d'avance sur la conception de base

Si vous comprenez jusqu'ici, vous pouvez faire une conception de base, donc c'est suffisant pour développer votre propre produit. Continuons la programmation en explorant diverses parties que nous ne comprenons pas.

Après le développement, de nombreuses personnes ont publié des articles Qiita sur les paramètres du serveur pour les services de publication. Veuillez vous référer à [cet article] s'il est facile à comprendre.

Dans le site de développement actuel, vous ne pouvez pas faire une demande claire au programmeur à moins que vous ne fassiez une ** conception détaillée **. Après avoir compris le contenu de cet article, veuillez d'abord étudier les éléments suivants.

--Faire un diagramme de classe et un diagramme de séquence --Déterminer l'architecture du système --Déterminer la technologie de montage pour chaque partie de l'architecture

Cela dit, l'innovation technologique est particulièrement rapide de nos jours, il y a donc des cas où de nouvelles technologies apparaissent au milieu de la conception détaillée. Suite au développement agile, vous pouvez continuer en disant "** La conception détaillée est décidée lors de la réalisation **".

à la fin

Dans le domaine du développement d'équipe, ** la répartition des rôles est un prérequis **. Trouvons l'image d'ensemble fermement et clarifions ** "qui fait quoi" ** et procédons au développement en douceur.

De plus, diverses informations sont également publiées sur SNS, donc si vous pensez que vous pouvez lire l'article Je vous serais reconnaissant de bien vouloir suivre Compte Twitter "Saku731".

(Une addition) J'ai écrit un article résumant les compétences requises pour développer un système avec Python. Veuillez vous référer à ceux qui programment par eux-mêmes.

Recommended Posts

Définition des exigences - articles pouvant être des ressources humaines capables de concevoir des systèmes
Confirmation que rkhunter peut être installé
Article qui peut être une ressource humaine qui comprend et maîtrise le mécanisme de l'API (avec du code Python)