[[PageOutline]] = Spec Editor (仮) - やりたいこと = == 大枠 == * ソフトウェア・システムの設計をするためのツールが欲しい。 * 要件定義~基本設計~外部設計~DB設計~内部設計までをこなせるものを目指す。 * あらゆるシーンに対応する (業務アプリ、Web、ゲーム、組み込み、etc...) == 優先順位 == === 開発プロセス === 1. 外部設計 (特にGUI設計) 1. テスト設計 (結合、統合) 1. 基本設計 (環境定義、制約の洗い出し、フレームワーク) 1. 要件定義 (ユースケース、用語定義) * リサーチ、立案、計画を含む (…べき?) DB設計、UML は優秀なツールが多数存在するので後回しでもいいかも…。 === 想定シーン === 1. 業務アプリ (GUIを要するもの) 1. API 1. Webアプリ 1. モバイルアプリ 1. ゲーム? 1. 組み込み? === グループ開発支援 === そもそも単位ファイルで管理するよりDB管理を想定した方が作りやすそう。 1. デスクトップPC向けに作り始める。 1. クラサバ化 (API実装、DBアクセス分離) 1. ユーザー管理 1. 変更履歴管理 1. 文書整形、エクスポート 1. Web閲覧 == 欲しい機能 == === 外部設計ツール === * 画面設計 * 画面レイアウト * 画面項目定義 * 画面部品設計 * イベント設計 * トリガー * パラメータ * 画面遷移 * 入出力 * データ参照 * エラー定義 * パフォーマンス要求、タイムアウト * ステータス定義 * メッセージ定義 * データ型定義 * データ定義? (DB設計) * ファイル設計 * セッション、パラメーター、etc... === テスト設計 === * 外部設計との照合 * 画面レイアウトによる画面イメージとの連携 * イベントカバレッジ * 障害管理 * 障害由来のテストケース管理 * アドホックテスト計画 * ゲームなどでの使用を想定 * 特定のイベントを実行するのに確たる操作手順がないものについて、ヒントと到達可否管理を提供 === 基本設計 === * コンポーネント定義 * システム階層設計 * セキュリティースコープ * 環境および制約事項 * アクターの構成 * ネットワーク構成 * 業務構成 * システム用語定義 === 要件定義 === * ヒアリングメモ * ブレインストーミング * 業務フロー * 業務用語定義 * アクター定義 * 振る舞い要求定義 (ユースケース) * ユースケースポイント見積概算 === その他の機能 === * 文書整形・生成機能 * 任意の設計情報を抽出し、任意のフォーマットに整形する * 画面遷移図、コンポーネント関連図、システム階層図などの図表化をサポートする * 履歴管理 (改版管理) * 初版、もしくは改版時からの変更履歴を管理する * 変更履歴ごとに変更内容を記録する * 変更履歴ごと変更内容を削除できるようにする (変更のリジェクト) * 変更箇所が衝突する場合に確認できるようにする * レビューを前提とし、変更内容の承認を行えるようにする * レビューを不要とするモードがあってもいいかも * すべての変更が承認されて初めて改版ができるようにする * 判ごとの変更点が確認できるようにする * メモページ * Web化を想定するならWikiとの互換性が欲しい * 業務用語定義、システム用語定義との連携 * 該当用語を入力すると強調表示、ツールチップ表示する等 設計内容を様々な角度から検証しながら作成できるツールにしたい。 設計情報間でどのような連携が可能かは常に考えながら作っていく。