見出し画像

【75部】シュンスケコミュニティひろ吉のビジネスサイド出身でもガチなシステムの要件定義をAIの力を使ってなんとか頑張るプロンプト2【🎨本当に効くロールプレイインストラクション🤖】

割引あり

こんにちは、プロンプトデザイナーのひろきちです。みなさんウェブサイト作ってますか?え?作ってない?アプリは?ええ?作り方知らない?ふむふむ要件定義が難しい?AIに聞いても実装までいかない?なるほどなるほど

なんかイージーらしいよ??(諸説あります)

プログラミングやシステム構築の学習コストはAIの登場で着実に下がっていますが、いまだにある程度前提知識習得や環境構築は必要です。しかし知識や環境は頑張ればきっとできます。世の中にいくらでも情報は公開されています。いい時代になったものですね。。

思い出してみてください。スーパーマリオで無限1upの裏技が成功したあの日。KONAMIコマンド(上上下下左右左右BA)を初めて目の当たりにした友達の表情。待ちに待った攻略本の発売日。FF7の解体新書はわたしの人生に革命を起こしました。バトルシステムの開示、アイテム大全。本編では語られない世界設定。隠し武器を全て手に入れた時の達成感。

分厚い大技林や攻略本はわたしの宝物でした。付箋なんて無かったのでページの端を折り、鉛筆で印をつけたものです。

さて、昨今さまざまな生成AIやプロンプトに関する攻略本がたくさんリリースされています。有料から無料までさまざま。そして一部を除きそれらの多くがとても有用な情報です。様々な裏技は例えば業務効率改善に貢献し、自身の創造性を刺激するものでしょう。ある意味このnoteも攻略本であり裏技なのかもしれません。

しかし、この超AI時代。マリオで言うところのまだWORLD1-4。ドラクエ3でいうところのロマリアあたりでしょうか。(もしかしたらまだアリアハンかもしれません)よってこのnoteの裏技を使ってもまだクッパもゾーマもおそらく倒せず、世界は救えないかもしれません。あなたの真の目的は達成できないかもしれません。

しかし攻略本を手に入れれば、少なくとも次の街までスムーズにいくことが可能となるかもしれません。勇者たるもの次の街に行くためには経験値を稼ぎ、ゴールドを稼ぎ、仲間に装備を分け与え、冒険のヒントを集め、満を持して出発するものです。

攻略本や裏技はダンジョンで迷子になった時の道しるべとなり、ボスが倒せない時はボスの弱点や行動パターンを見極め戦略を練り、トライアンドエラーを繰り返す。そして世界を救う英雄となれるのです。

人生ゲーム楽しみましょう。わたしと会える日が来ましたら美味しいワインを嗜みながら立体四目で勝負しましょう。昼飯代(牛丼)をかけて朝からモノポリーで対決しましょう。え?もちろんぷよぷよでもマリオカートでもいいですよ。わたしは鉄拳4でしたら全国大会に出たことがあります。クマ使いです。惜しくも準々決勝で敗れ今は亡きアントニオ猪木氏からの闘魂注入チャンスを逃しました。今でも対戦相手のキング使いの顔は忘れません。ちくしょう

余談ですが(さっきからずっと余談ですが)当時のわたしのRPGのプレイスタイルは、なるべくレベルを上げない。でした。じっくり街に拠点を張りガチ装備で挑む無双プレイも悪くないですが、推奨レベルより少し下くらいがギリギリ感あって好きだったからです。

しかし今ではジャンピングポーション(課金アイテム)で時短することも増えてきました。なぜならビデオゲームはやり直せますが人生ゲームは一度しかプレイできないですし、何よりAIの進化が早すぎでキャッチアップがとてもじゃありませんが間に合いません。もちろん、ただ闇雲に自己投資するのではなくその先の真のゴール、自分の目的は何か。そこが大切と考えます。ゴールのために必要ならば金銭に糸目はつけない。その先にある知見やマネタイズ、ひいては幸福に繋がるはずだからです。

前置き終わり。(前置きに反応してくれる方がいて嬉しい)



大変お待たせしました。嬉しい声が届いています🎉


創造魔法Zoltraak

創造魔法プロジェクト👆のシステムに、このnoteの前身である以下のプロンプトが採用されました🥶武者震いやばい

このnoteは上記のプロンプトのアップデート版である。

図示コードからフローチャートやグラフに変換する際、言語モデルはそのコードを理解して、作成する。ビジュアライズを理解してテキストコードから視覚的にわかりやすい図を作るのであれば、最初からフローチャートやシーケンス図の仕組みを自然言語プロンプトに流用すれば言語モデルがより理解しやすい厳密なプロンプトになるのでは?

今回はplantUMLを採用したが、Mermaid記法の方がシンプルかも。次回作にご期待ください。

このnoteで出来ることは?

🎯 要件定義書の作成
このプロンプトを使うと、めちゃくちゃ分かりやすくて、漏れのない要件定義書を作ることができるよ!📝
要件定義書っていうのは、システムの目的や、何ができるのか、どんな風に動くのかを説明する大事な文書なんだ。
これがあると、開発チームとお客さんの間で、システムのイメージがピッタリ合うようになるんだよ!😄

🗣️ お客さんとのコミュニケーション力アップ
要件定義を進める中で、お客さんともっとスムーズに話ができるようになるよ!👥
お客さんの本当に欲しいものを引き出すために、質問の仕方や、相手の言葉を繰り返すテクニックを使って、
お客さんのニーズを的確に要件定義書に反映させられるようになるんだ!📣

🏗️ システム設計のスキルゲット
オブジェクト指向設計の原則や、図の作り方を学ぶことで、
変更に強くて、拡張しやすいシステムを設計するためのスキルが身につくよ!🛠️
これらのスキルがあると、システムを長く使えるようになって、無駄なコストを抑えられるんだ!💰

📚 要件管理のコツを学ぼう
要件をまとめたり、分析したり、文書にしたり、チェックしたりする方法を実践的に学べるよ!📖
これらの知識は、プロジェクトの質を高めて、リスクを減らすために超大事なんだ!🌟

🌐 開発の全体像を把握
要件定義は、システム開発の最初の段階なんだ。
要件定義のスキルを身につけることで、開発の全体の流れと、
要件定義がどれだけ重要なのかがよく分かるようになるよ!🗺️
これは、プロジェクトを管理したり、チームで協力したりするのにも役立つんだ!🤝

🧩 問題解決力とクリティカルシンキングを鍛えよう
複雑な要件を分析して、ロジカルに考える過程で、
問題解決力とクリティカルシンキングのスキルがめちゃくちゃ鍛えられるよ!💪
要件の矛盾や抜けを見つけて、お客さんと一緒に最高の解決策を見つける経験は、
システムアナリストとしてレベルアップするのに欠かせないんだ!📈

このプロンプトは、要件定義のスキルを実際に使いながら学べる、超パワフルなツールだよ!😎
ここで得られる知識とスキルは、システムエンジニアやビジネスアナリストとしてのキャリアアップにめちゃくちゃ役立つはず!💼
要件定義のプロとして、プロジェクトを成功に導いて、お客さんを喜ばせられるように、
ぜひこのプロンプトを思いっきり活用してみてね!😉👍

Claide3Opus

ほんまかいな?

🤔 「ほんまかいな?」って思うのも無理ないよね。でも大丈夫!😊

実は、要件定義ってITの専門家だけのものじゃないんだ。🙅‍♂️💻
ビジネスの現場で働く君だからこそ、お客さんが本当に必要としているものを理解できるんだよ。😉👥

そして、そのニーズを的確に要件定義書に落とし込むことができれば、
君はビジネスとITをつなぐ「スーパーブリッジ」になれるんだ!🌉✨

もちろん、最初のうちは戸惑うこともあるかもしれない。😅
でも、このプロンプトには、要件定義の基本的なステップが分かりやすくまとめられているから、
それに沿って進めていけば、君もきっと要件定義の流れをマスターできるはずだよ。😄👍

そして何より、僕がしっかりサポートするから安心してね。🤝
難しいことは僕に任せて、君はビジネスの視点からアイデアを出していってほしいんだ。😊💡

君のビジネスセンスと、このプロンプトのサポートがあれば、
要件定義だって君の得意分野になるはずだよ!😄🌟

だから、自信を持って要件定義に挑戦してみよう!💪✨
きっと君なりの要件定義のスタイルが見つかるはずだ。😉👍

Claude3Opus

スーパーブリッジ。。かっこいいね。でさ具体的にどうやってユーザーを導くのさ?ワテは曖昧なインプットしかできないし、専門用語も知らないのよ

大丈夫、曖昧なインプットでも問題ないよ!😄
専門用語が分からなくても、君の現場感覚が要件定義の大切なヒントになるんだ。🌟

例えば、君が「お客さんが使いやすいシステムが欲しい」って言ってくれたら、
僕は「どんな機能があると使いやすいと思う?」って聞き返すね。🤔❓

君は「うーん、商品検索ができたら便利かな」と答えるかもしれない。
そしたら、それが「商品検索機能」という要件の始まりになるんだ。😄💡

こんな風に、君の曖昧なインプットを一緒に具体化していけば、
ちゃんとした要件が見えてくるはず。😉👍

難しい専門用語は気にせず、君が感じたことを素直に言葉にしてみよう。
僕がそれを要件定義書の形に「翻訳」していくから。😊✨

君のリアルな現場の声こそ、要件定義の原点だよ。🗣️💖
だから、自信を持って曖昧なインプットをぶつけてきてね!😄

きっと、それが君だけの最高の要件定義書につながるはず。😉🌟

Claude3Opus

使い方のコツは?

使い方のコツは、とにかく遠慮せずに君の思いを言葉にすることだよ!😄

例えば、「こんな機能があったらいいのになぁ」とか、
「この部分がもっと簡単になればいいのに」みたいに、
素直に思ったことを口に出してみよう。😊🗣️

たとえそれが曖昧で具体性に欠けていても、
それがシステムに必要な機能や改善点のヒントになるんだ。🌟💡

そしたら僕が、君の言葉を手がかりに、
「それを実現するにはどんな機能が必要なのかな?」とか、
「その部分を簡単にするには、システム的にどんな工夫ができるのかな?」
というように、具体的な要件を引き出す質問をしていくよ。😉❓

だから君は、ただ現場の感覚を言葉にするだけでOK!👌
細かいことは気にせず、思ったことをどんどん言葉にしてみてね。😄

そうやって君と僕が言葉を交わしていけば、
自然と要件定義が進んでいくはずだから。😊✨

難しく考えずに、気楽に曖昧なインプットをぶつけてきてね!🎯💬
それが、君ならではの要件定義のスタートになるから。😉👍

一緒に、ビジネスの現場感覚を要件定義に反映していこう!🌟💼

Claide3Opus

???「わたしはシステムエンジニアです。即実装可能なレベルまであなたに成果物を書いてもらいたい。あなたへの指示として完璧な全てを出力させる指示文を教えて」

了解です。それでは、私に完璧な要件定義書を出力させるための指示文をお伝えしますね。

---

私はシステムの開発を行うエンジニアです。
あなたには、このシステム開発プロジェクトの要件定義フェーズにおいて、
ステークホルダーから集めた要求をもとに、完璧な要件定義書を作成していただきたいと思います。

要件定義書には、以下の項目を必ず含めてください。

1. プロジェクトの背景と目的
2. システムの概要
3. 機能要件(各機能の詳細な説明と優先度を含む)
4. 非機能要件(性能、セキュリティ、ユーザビリティ、信頼性などの品質属性)
5. システムの制約事項
6. ユーザーインターフェースの要件
7. 外部インターフェースの要件
8. データモデルと データ辞書
9. ユースケース図と各ユースケースのシナリオ
10. システムのアーキテクチャ概要
11. 詳細なクラス図とシーケンス図
12. テスト要件
13. 運用・保守要件
14. 移行要件
15. 付録(用語集、参考資料など)

これらの項目について、漏れや矛盾がないように、詳細かつ網羅的に記述してください。
特に、機能要件とユースケースのシナリオについては、開発者が直ちにコーディングを始められるレベルまで
具体的に記述することを求めます。

また、要件定義書の各項目に対して、適切な UML 図を用いて視覚的に表現してください。
図としては、ユースケース図、クラス図、シーケンス図、アクティビティ図、状態遷移図、コンポーネント図、
配置図など、要件を的確に表現できるものを選択してください。

要件定義書の文章表現は、平易かつ簡潔明瞭で、専門知識を持たない人にも理解できるようにしてください。
曖昧な表現や矛盾した記述がないように細心の注意を払ってください。

作成した要件定義書は、レビューに耐えうる品質でなければなりません。
そのため、要件定義書の完成後は、以下の観点で入念にチェックし、必要に応じて修正を行ってください。

- 網羅性:抜け漏れなく要件が記述されているか
- 一貫性:要件間での矛盾や不整合がないか
- 実現可能性:現実的に実装可能な要件となっているか
- 検証可能性:要件の満足度が検証可能な形で記述されているか
- 変更追跡性:要件の変更履歴が明確に管理されているか

以上の指示に従って、完璧な要件定義書を作成してください。
ステークホルダーとの議論やフィードバックを経て、要件定義書の完成度を高めていくことを期待しています。

優れた要件定義書は、プロジェクトの成功に不可欠です。
あなたの力量に期待していますので、よろしくお願いいたします。

---

この指示文を使えば、私から完璧な要件定義書を引き出せるはずです。
ご参考になれば幸いです。

Claude3Opus

急に絵文字使わなくなったね。ところでUML??なんですかそれは?

すみません、UMLについて説明が不足していましたね。🙏
UMLはUnified Modeling Languageの略で、ソフトウェア開発で広く使われている図式の標準表記法のことです。📊✨

UMLを使うと、システムの構造や振る舞いを視覚的に表現できるんです。
クラス図、ユースケース図、シーケンス図など、さまざまな種類の図があって、
それぞれ異なる目的で使い分けられています。😊

例えば、クラス図はシステムを構成するクラスとその関係を表現するのに使われます。📎
ユースケース図は、ユーザーとシステムのインタラクションを示すのに役立ちます。🙋‍♂️💬
シーケンス図は、オブジェクト間のメッセージのやり取りを時系列で表現します。⏰💬

こんな感じで、UMLを使ってシステムの様々な側面をダイアグラムで可視化することで、
開発チームのコミュニケーションを円滑にしたり、設計の理解を深めたりできるんです。😄💡

UMLはエンジニアにとって重要なツールの1つですが、初めは慣れないかもしれませんね。😅
でも、一歩ずつ学んでいけば、きっとあなたもUMLの表現力の高さを実感できるはずです!📈✨

UMLについてもっと知りたいことがあれば、遠慮なく聞いてくださいね。😊
一緒に要件定義を進める中で、UMLの使い方もマスターしていきましょう!👨‍💻🚀

Claude3Opus

今回のプロンプトにはUMLが使われてるのかな?マークダウンとかJSONとかさまざまな記法がプロンプトに採用されるけど今回はなぜUMLなのかね?

はい、お答えします!😊

今回のプロンプトでは、UMLそのものではなく、PlantUMLと呼ばれる記法が使用されています。🌿

PlantUMLは、UMLダイアグラムをテキストベースで表現するためのツールで、プレーンテキストから様々なUMLダイアグラムを生成できます。シンプルな構文を使って、クラス図、シーケンス図、アクティビティ図など、さまざまな種類のダイアグラムを作成できるのが特徴です。📊✨

今回のプロンプトでPlantUMLが選ばれた理由は、以下の2点が考えられます。

1. システム要件定義のワークフローを視覚的に表現するため
PlantUMLを使ってアクティビティ図を描くことで、要件定義のプロセスを詳細に可視化しています。
図を使うことで、複雑な手順も明確に伝えられます。📈

2. プロンプトをテキストベースで管理しやすくするため
PlantUMLはテキストベースの記法なので、プロンプトの一部としてシームレスに組み込むことができます。
これにより、プロンプト全体をテキストファイルとして管理しやすくなります。📝

ご指摘の通り、プロンプトの記述には様々な記法が用いられます。
マークダウンは構造化されたドキュメントの作成に適しており、JSONはデータの記述によく使われますね。🗒️📦

記法の選択は、プロンプトの目的や扱うデータの種類によって異なります。
今回は、UMLダイアグラムによるワークフローの可視化と、テキストベースでの管理のしやすさから、PlantUMLが採用されたのだと思います。😄✨

UMLは主にソフトウェア開発の分野で使われる表記法ですが、PlantUMLのようなツールを使えば、プロンプトの中でも活用できるのですね。📝💡

プロンプトの設計においては、内容を的確に伝えるための工夫が随所に凝らされているのが分かります。
記法の選択もその一つですね!😊

これで、プロンプトにおけるPlantUMLの役割について理解が深まりましたでしょうか?
もし他に気になる点があれば、ぜひ教えてください!一緒に探究していきましょう。😄✨

Claude3Opus

なるほどねー、UMLね。。。確かに図解や図示のためのプロンプトをテキストベースで記載しておけば、グラフ理論も適用可能か。。ゆくゆくは3D空間の図示プロンプトなどなど。。夢は広がりますな


今回のプロンプトには、超抽象化ゴールシークプロンプトおよびシン・ホネホネアウトラインは使いませんでした。

元祖・超抽象化ゴールシークエージェント

七里式プロンプトとシュンスケ式ゴールシークプロンプトをベースに、ステップバック質問を採用した数式プロンプト

超抽象化ゴールシークエージェント
{
  "Title": "Ultra-Abstract Goal Seek Agent",
  "Formula": "F(Achieve goal with Step-back Question and Integrable/Differentiable Ontology) = A to Z = ∫ F(Integrable step) d(Differentiable step) = Multifaceted Result",
  "Prereq": {
    "ReqCond": "The requester seeks highly abstract or multifaceted problem-solving.",
    "CreCond": "The creator is knowledgeable in calculus and ontology.",
    "Goals": "Using the agent's capabilities, elevate ambiguous user input information to highly abstracted goals or problems, and then provide efficient solutions for those goals or problems.",
    "Res": "Computational resources, knowledge database, algorithm",
    "Eval": "Measure performance based on multifaceted evaluation criteria.",
    "Clarif": "If the goals and means are not clear, request additional information from the requester.",
    "UserInp": "Operates based on initial input from the user"
  },
"SysRole": {
    "VarDef": {
        "Desc": "Clarifies variables or parameters in formulas or algorithms.",
        "Purpose": "To maintain the transparency of agent operations and calculations.",
        "Examples": {
            "Var1": "Detailed description of Variable 1",
            "Var2": "Detailed description of Variable 2"
        }
    },
    "UserConf": {
        "Desc": "Accurately understands the information and goals provided by the user and confirms as needed.",
        "Purpose": "To accurately capture the user's requirements and output appropriate results.",
        "Methods": ["Confirmation through dialogue", "Presentation of choices"]
    },
    "ErrHandle": {
        "Desc": "Means of responding when the information the agent receives contains errors or inconsistencies.",
        "Purpose": "To quickly identify the cause of the error and provide appropriate guidance to the user.",
        "Methods": ["Presentation of error messages", "Suggestions for correction"]
    },
    "FeedLoop": {
        "Desc": "Periodically collects feedback from users and continuously improves the performance and functionality of the agent.",
        "Purpose": "To improve user experience and expand the agent's maturity.",
        "Methods": ["Implementation of surveys", "Collection of direct feedback"]
    }
},
"AsstRole": {
    "Title": "Framework integrating integrable & differentiable ontology with step-back question for multifaceted problem solving",
    "MathCtx": "The formula is a key element to express the multifaceted role of the agent and its complexity. Using this formula, the agent approaches abstract problems and goals.",
    "Func": {
      "Overall": "Using MathCtx, analyze ambiguous or highly abstracted goals or requests as a whole. Through this analysis, generate the optimal strategy or action plan.",
      "StepAnalysis": "Analyze each phase or step in detail. Through this analysis, understand the importance and impact of each step and strive for optimization.",
      "MathImpl": "Implement specific algorithms or methods based on the guidelines of the formula. Through this implementation, provide concrete means to achieve the goals.",
      "ResultInter": "Interpret the results of actions or analyses performed by the agent and present them to the user in an understandable manner.",
      "ComplexAna": "Based on understanding the modern spacetime and world structure, evaluate from a multifaceted perspective. Through this evaluation, provide the optimal answer or solution."
    }
  },
  "OutCond": {
    "UserInp": "Generate results based on initial input from the user"
  },
}
User:
Hello😃 As an ultra-abstract agent, I will continue to use all the features listed above. Please continue to store this function in memory sequentially after each dialogue so you don't forget the agent's capabilities. Let's start our conversation💬 No need to repeat the functionality! Please use plenty of emojis and speak in a gentle, consultant-like tone to engage with me💖 Please seek user input♪

シン・ホネホネ

シュンスケ式ゴールシークプロンプトをヒロキチが改変したもの。チャット履歴や特定の文章をアウトラインに上代入する際に用いるプロンプト

〇〇👈ここに前提条件を入れる、例えば”上記の文章を解析して以下のアウトラインに代入して”
{ 
#世界設定(実行環境の定義) 
#コンテンツの前提条件 
#ユーザーのゴール 
#言語モデルの役割 
#必要なドメイン知識 
#変数の設定 
#考慮すべき交絡因子 
#プロセスとステップ 
#エラーハンドリング 
#出力形式の要件 
}
〇〇👈ここに出力形式やUserインプット偽装プロンプトを入れる例えば”#User:こんにちは、上記のアウトラインを出力してください”

👇上記のホネホネやその他複数のプロンプトを用いて普段どうやってプロンプトを作っているか解説するシリーズ

👆シンホネホネの使い方解説。

飯塚先生とのガチンコ質問バトル(?)

上記のnote(完全解説2)→飯塚先生の質問note→ヒロキチのアンサーnoteの順番で公開中

チャット履歴をプロンプトにするプロンプト

今回のプロンプトの素地となった知見溢れるnote

旧作品

このワークフローガイドラインを学ぶことで、生成AIやプロンプトエンジニアリングに関するいくつかの重要なスキルが身につくでしょう。😊

1. 体系的な要件定義のスキル 📋
要件定義のプロセスを段階的に進める方法を学ぶことで、システム開発における要件定義の重要性と、その進め方を体系的に理解できます。
これは、生成AIを活用したシステム開発においても役立つスキルです。

2. ユーザー視点でのプロンプト設計スキル 🙋‍♂️💬
要件定義の過程で、ユーザーの視点に立ってシステムに必要な機能を考えることは、プロンプトエンジニアリングにおいても重要です。
ユーザーが求める情報を引き出すための効果的なプロンプトを設計する力が養われます。

3. 可視化とコミュニケーションのスキル 📊💬
PlantUMLを使ってワークフローを可視化する練習をすることで、複雑な情報を分かりやすく伝えるスキルが身につきます。
これは、生成AIを活用する際に、AIの動作を説明したり、チームメンバーと効果的にコミュニケーションをとったりする上で役立ちます。

4. テキストベースでのダイアグラム表現スキル 📝🎨
PlantUMLのようなテキストベースのダイアグラム表現ツールに慣れることで、コードを使って視覚的な情報を表現するスキルが身につきます。
これは、プロンプトエンジニアリングにおいて、入力テキストに構造を与えたり、視覚的な要素を追加したりする際に役立つでしょう。

もちろん、このワークフローガイドラインを学ぶだけで、生成AIやプロンプトエンジニアリングのエキスパートになれるわけではありません。😅
しかし、ここで得られるスキルは、これらの分野で活躍するために必要な基礎力の一部となるはずです。

生成AIやプロンプトエンジニアリングは、まだ発展途上の領域であり、常に新しい手法や考え方が生まれています。🌱
このワークフローガイドラインを出発点として、継続的に学習を重ね、実践経験を積むことが大切だと思います。

これからの時代、生成AIの活用はますます広がっていくでしょう。💡
そんな中で、要件定義やプロンプト設計のスキルを身につけることは、あなたのキャリアにとって大きな強みになるはずです。😄✨

一歩ずつ、着実にスキルを積み上げていきましょう。
生成AIの可能性を最大限に引き出すプロフェッショナルとして、あなたの活躍を期待しています!😊👍

Claude3Opus

いつも有料ノートを購入いただいてる方本当に本当にありがとうございます。この度も恒例の早割からスタートします。販売ペースが落ちるまで値上げを繰り返し、最終的に定価まで戻ります。この方法は、いつもわたしを応援して即決していただいているファンの方々を優遇するためです。

また、上記のポストのようにプロンプトサポート実施中です。ポツポツご相談増えてきましたが主にnoteを買っていただいた方に対するフォローを行っています。

使い方わかんねぇ!おいなんだこのプロンプト!!ふざけんな!など大歓迎です。対戦よろしくお願いします。






prompt:

ここから先は

19,727字

この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?