こんにちは。ムツキチです。
最近、新しいお仕事を探す機会がありました。
そこで必要になるのがスキルシート。
その際に、要件定義や基本設計など記載する場面があって「あれ、自分ってこれ経験あるで合っているのかな?」(これまであまり意識したことなかったのでよく分かってなかった)となってたので改めて要件定義や基本設計などがどういうことかを調べてみました。
chatGptに問い合わせてみた
「調査分析」、「要件定義」、「基本設計」、「詳細設計」、「実装・単体」、「テスト」、「保守・運用」について教えてクレメンス
もちろんです!以下に、ソフトウェア開発を例え話で説明します。
1:要件定義: ソフトウェア開発は、まるでお店のおもちゃの注文を作ることに似ています。おもちゃを作る前に、お客さんが何を望んでいるのかを知らなければなりません。つまり、お客さんと話をして、どんなおもちゃが欲しいのかを聞くことが大切です。
2:基本設計: 次に、おもちゃの設計図を作ります。例えば、どんな形をしているかや、どの部分が動くのかを決めます。設計図には、おもちゃの骨組みや部品の配置が書かれます。
3:詳細設計: おもちゃの詳細な設計をする時です。これは、おもちゃの一部分一部分について考えます。例えば、ボタンがある場所や、おもちゃの色やサイズを決めるといったことです。
4:実装・単体: ここでは、おもちゃを作る工程です。設計図に基づいて、実際におもちゃを作ります。おもちゃのパーツを組み立てて、完成させます。おもちゃが出来上がったら、それぞれの部品がちゃんと動くかどうかを確認します。
5:テスト: おもちゃが完成したら、お客さんが遊ぶ前にテストします。例えば、ボタンを押して正しく動くか、壊れた部分がないかを確かめます。これによって、おもちゃがちゃんと機能することを確認できます。
6:保守・運用: 最後に、おもちゃをお店で販売したり、お客さんが使い方に困った時に助けることも大切です。おもちゃを作った後も、必要な修理やサポートを提供します。
このように、ソフトウェア開発もおもちゃ作りに例えることができます。要件を確認し、設計し、作り、テストし、最後にお客さんに提供するという流れが似ています。
らしい!
chatGptやるな〜
要するにこいうこと?
今までのキャリアとしては主にサーバーサイドでapi開発がメインだったので例を挙げると
1:要件定義
お客さんがどういうことをやりたいかをヒアリングして、それを実現するための機能を洗い出し
例:プロフィールが見れる機能が欲しい→プロフィール見れる機能、プロフィールを登録する機能がいるな
2:基本設計
その機能についてフロントエンドの担当とどういうrequest と response が欲しいかを話し合う
例:プロフィールを登録する機能がいるな→req 入力されたデータが欲しい res 登録成功or失敗
例:プロフィール見れる機能がいるな→req 欲しいユーザーのIDなど res DBに格納している紐付く名前
3:詳細設計
そのapiについてどういう風に機能するのがベストかを考える。↑の基本設計の細かいすり合わせも入ると思う
DBの格納方法などかな?今までの経験のイメージは実装中に「あれ、そういえばここのところどうするんだろ?」ってなってその都度確認しに行ってる気がする
4:実装・単体
実際にapiを実装する作業
5:テスト
apiの実装が完了したら単体でいろんなrequestを送ったりして正常に動くかテストしてみる。
単体で動いてるのであれば、フロントエンドと連携をとって結合テストなどもしてみる。
6:保守・運用:
実際にapiを作ったプルリクをメインにマージしてみて動くかの見守り。運用中に問題が起こったらそのapiの担当者が修正などの対応するなど
こんな感じかな?
ざっくりしたイメージですがスキルシートを記載する際にお役に立てれば嬉しいです。
コメント