• 締切済み

アプリケーションの仕様書の作り方

アプリケーションの仕様書の作り方 趣味で携帯電話用のアプリを作っています。最近になり作った数も増え、少しは複雑な事も出来るようになりました。そうなってくると、後で自分が作った物を再利用したくても、何を考えて作ったのか全く思い出せません。何かしら文書の形で資料を残さねばとは思うのですが、仕様書のようなものを作ったことが無いので、どうすれば良いか皆目見当がつきません。 ぱっと思いつくところでは ・どんなアプリか:概要 ・動作フロー ・変数一覧(デバイスリスト) ・関数一覧 ・通信を伴う部分では、リクエストURLやパラメータ などがあるかと思います。こんなフォーマットで作ると良い、こんな事を書くと良い、といったアドバイスを頂けたらありがたいです。よろしくお願いします。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

どのプログラム言語を使っているのか不明ですが、再利用というと、関数やクラスだと思うので、それらの定義文の前に、関数の呼び出し法、引数、返値、動作概要などをコメントするのがよいかと。 書式としては、以下のように、言語によって、ソースからコメントを取り出して、ドキュメントファイルを作ってくれるユーティリティもあります。 Java だと、javadoc という、ソースにクラスやメソッド、プロパティの説明を入れる書式があります。この書式に沿っていれば、標準APIドキュメントと同じ書式で、htmlドキュメントを作れます。 http://java.sun.com/javase/ja/6/docs/ja/tooldocs/javadoc/index.html perl にも、POD形式でソース内にコメントを付けておくと、perlユーティリティプログラムで、htmlやLatex、または通常テキストなどに変換できます。 http://perldoc.jp/docs/perl/5.6.1/perlpod.pod phpにもphpDocumentor というプログラムがあって、javadoc のような形式で、コメントを入れておくと、コメントを取り出して、ドキュメントファイルを作ってくれます。 http://php-web.net/

全文を見る
すると、全ての回答が全文表示されます。
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

再利用するというのが前提なら「リファレンスマニュアル」とか「ライブラリドキュメント」みたいのにすると 良いんじゃないかな。 http://help.adobe.com/ja_JP/Director/11.0/help.html?content=Part02_Scripting_Dictionary_1.html http://msdn.microsoft.com/ja-jp/library/52cs05fz.aspx http://www.php.net/manual/ja/ 参考に。↑のは規模が大きい物だけど、使う側も再利用側も、こういう感じであれば勝手は悪くないと思うけど。。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ホームページ制作時に必要な仕様書等を教えてください。

    この度、「Webシステム開発」を行おうと考えているのですが、今まで業務でWeb開発経験がないため、どの様な「内部資料・納品時の書類(今回はありませんが参考までに)」を用意し、どのように進めるのが”効率的”で、かつ、”一般的”なのかが分からず困っております。 簡単ですが仕様的には、 ・PHPで動的に表示 ・MySQLとデータのやり取り ・フレームワーク使用 で作成します。 現状、分からないながら想定している書類は、 ・サイト企画書 ・サイト概要仕様書 ・画面一覧 ・画面遷移図 ・画面機能一覧 ・画面シーケンス図 ・画面詳細仕様書 ・DBテーブル定義 です。 お手数では御座いますが、業務でWeb開発経験が有られる方、以下の部分を教えて頂けませんでしょうか? ・資料の過不足 ・資料のサンプルURL(有れば程度で) ・その他(アドバイス・失敗談) 以上、よろしくお願いいたします。

  • POST/GETリクエストパラメータのモニタリング(一覧表示)について

    カテゴリが適切かどうか微妙ですが、詳しい方がたくさんいらっしゃいそうですので、ここで質問させていただきます。 Webアプリの開発で、アプリケーションのテスト(評価)時にリクエストパラメータの内容をモニタリング(一覧表示)したいのですが、そんなことができるソフトはありますでしょうか? (デバッグプリントという手もありますが、なるべく本体には手を入れたくないのです) パケットモニタリングソフトはあるようですが、POSTパラメータやGETパラメータのキーと値を一覧表示してくれるソフトが見つかりませんでした。 フリーソフトウェアがベストですが、1万円以下の有償のソフトウェアでも結構です。 開発アプリはApach+PHP+MySQLで、評価の実行環境はWinXP(ローカルマシン)です。 よろしくお願いいたします。

  • 仕様書の見方教えてくださいませんか。HPCompaq nx6120/CT のノートを買おうと思っています。

    東芝のノートを4年ぐらい使っていたのにノートパソコンの知識はまったくのゼロです。お恥ずかしい... その東芝のノートが壊れてしまい、新しいのを買おうと思っています。 用途は、ネットで資料集め、文書作成、海外の放送局のニュース動画を見る程度です。 タイトルにある機種を考えていますが、 プロセッサ- 東芝/3DNow AMd-K6 450Mhzと HP/インテル® Celeron® M プロセッサ 360J 400Mhzってどう違いが現れてくるんでしょうか。 お恥ずかしい質問なんですが、 東芝のは、仕様書に キャッシュメモリ 1次64kb,2次128kb メモリ 64mb/192mbって複雑に書いてあるのに、HPのは256MBとだけしかなくどう判断してよいのか分かりません。タイトルの機種を買おうと思ったのはただ安いからという理由です。 すいません。分かる方、教えてもらえませんか。

  • dosのfor構文の意味について

    昨日に異なる階層も含めたファイルの一覧表示のやり方について質問させて頂きました。(http://oshiete1.goo.ne.jp/qa4360685.html) その中で以下のコマンドだと目的の一覧が出力できたのですが、初心者のため構文の意味が分かりませんでした。 c:\>for /r c:\folder1 %i in (*.csv) do @echo %~nxi >> list.txt 質問事項といたしましては大きく2点です。 1.for文の構文である「%変数」の変数とは何なのか http://itpro.nikkeibp.co.jp/article/Windows/20051006/222331/ FOR %変数 IN (ファイル名セット) DO コマンド [コマンドパラメータ] 2.一覧表示に使ったコマンドの意味(具体的にはそれぞれの単語(/r,%i,@echo,%~nxi)))です 回答よろしくお願いいたします。

  • Ciscoルータのアクセスリストについて

    ciscoルータのアクセスリストの設定に関して質問なのですが、sourceのポートの指定の必要性がいまいちわかりません。クライアントをはじく事は出来ませんし、サーバからの送信をはじくのであれば、クライアントからのそもそものリクエストを弾けばいいと思うのですが・・・ 使い道がわかりません 仕様ですか?

  • Perl ログオン後の別ページへのリクエスト

    ■現状 ・会社で利用しているサービスの請求情報を取得したく。  そのサービスが提供しているダウンロード機能は概要のデータのみの提供で情報が不足します。 ・Webからは詳細な情報が取れますが、リンクを複数たどる必要あり、件数も多いので時間が足りません。 ・一度にデータを取得することができれば、と思い、LWPでできればと、試行錯誤中です。 ページの構成は次の通りです。 1.ログオンページ  ↓ユーザーID、パスワードでログオン   成功すると、リダイレクトでトップページが表示されます。 2.トップページ  ↓ボタンクリックでサービスメニューページに移動   Cookie がセットされます。 3.サービスメニューページ  ↓顧客コードを選択   ※顧客コードが複数あります。事前に把握可能です。 4.月選択画面  ↓月を選択すると、その月の請求概要データの一覧が表示されます。 5.請求概要データ一覧画面  ↓伝票番号を選択すると、請求詳細情報が表示されます。   ※件数が多い場合、複数ページに分かれます。   ※請求詳細キーをフォームのパラメータで渡します。 6.請求詳細データ画面 ■実現したいことは、 a.IDとパスワードを使ってログオン b.ログオン後、月選択画面に移動 c.請求概要データ一覧画面でキーを取得 d.キーをパラメータで渡して、請求詳細データ画面の情報を取得する a.は実現できました。 ■わからないこと ・b でログオン後に月選択画面に移動するためのリクエストを再度生成して処理する方法がわかりません。 ・c でキーを取得する方法  ※HTML::TreeBuilder でキーの一覧を解析する予定ですが、試せておらず。 ===== 以下、スクリプト ===== use LWP::UserAgent; use HTTP::Request; use HTTP::Request::Common qw(POST); use HTTP::Cookies; # cookie_jarの生成 my $cookie_jar = HTTP::Cookies->new(file => "cookie.txt", autosave => 1, ignore_discard => 1); # リクエストの生成 my $url = 'https://hogehoge/login'; my %formdata = ('ID' => 'ID', 'PW' => 'PW'); my $request = POST($url,[%formdata]); # UserAgentを生成して処理 my $ua = LWP::UserAgent->new; $ua->cookie_jar($cookie_jar); #my $res = $ua->request($request); my $res = &process_request($ua, $request); print $res->as_string; # 以下質問 ここから先、別のリクエスト(https://hogehoge/serviceへのリクエスト)を生成し、 UserAgentを生成して処理する方法がわかりません。 res を print するサンプルはいくつかあるのですが、別のリクエストをどうやって生成したらよいのか。 "if ($res->is_success) {処理} " とすればよいのでしょうか? # 質問終わり sub process_request { my ($ua, $request) = @_; my $res = $ua->request($request); while ($res->is_redirect) { my $url = $res->header('Location'); $res = $ua->request(HTTP::Request->new(GET => $url)); } return $res; } ==========

  • ファイルの読み込みについて。

    javaを勉強中なのですが、ファイルの入出力について 分からない事が出てきましたので、ご教授ください。 以下のファイル(cntl.d)から値を読み込みそれぞれ変数に入れたいと思っています。 各行のデータ数がバラバラなので、どのようにすればよいか、見当がつきません。 また、それぞれを別の変数に代入するのも。 やっと、一つの変数にファイルから値を読むことはできました。 cntl.dの内容。 1331   1000 602   0   0   0   0 0.0100000   10.0000000   1.0e-12   .0000010 100   200   0   1   1 2   0   100   0   0 という内容で、 nnode,nelem nb1,nb2,nb3,nb4,nb5 dt,tend,epscg,epsmac iopt1,iopt2,iopt3,iopt4,iopt5 iopt6,iopt7,iopt8,iopt9,iopt10 とそれぞれ変数に値を代入したいと思っています。 例えばフォートランなら、 read (icntl,100) nnode,nelem read (icntl,110) nb1,nb2,nb3,nb4,nb5 read (icntl,120) dt,tend,epscg,epsmac read (icntl,130) iopt1,iopt2,iopt3,iopt4,iopt5 read (icntl,140) iopt6,iopt7,iopt8,iopt9,iopt10 100 format(2i10) 110 format(5i10) 120 format(4f15.7) 130 format(5i10) 140 format(5i10) こんな感じになるのかと思いますが、javaでは見当がつきません。 ご存知の方がいらっしゃいましたら教えてください。 また、なにか不足の事項がありましたら補足いたします。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • このサイトのページはどうやって作られているのですか

    このサイトのページはどうやって作られているのですか?? http://www.appbank.net/ アプリを開くと、ブログの概要(見出し)みたいなのが一覧で出てきて、さらにそれを開くとphpのファイルになりますよね。 このようなブログ見たいなページを作ろうとphp、MySQLなど勉強中なのですが、ブログみたいなのに必要な事は何ですか? またこのような構造のページは何というのですか?

    • ベストアンサー
    • PHP
  • クラス変数をアクセス元ごとに初期化

    お世話になります。連投になってしまいすいません。 現在、Servletを使いオンライン通信を行うプログラムを組んでいるのですが、 同じLAN上にあるPC2台で動作確認した所、どうやらどのPCから接続しても同じ変数にアクセスしている様です。 調べた結果、そういったServletの仕様なのだろうという事は分かりましたが、 ユーザーごとに変数を保存させるのに、何か良い方法はありますか? 最悪、web.xmlを使い初期化パラメータを取得させようか思っているんですが、あまりに不便で他に方法はないか質問させて頂いた次第です。 よろしくお願いします。

  • Javaの細かい仕様を教えていただけませんか?

    ずっと前にちょろっと触ってJavaは一端離れていましたが 仕様を細かく確認してみたくなったので、駆け足で先ほどまた触れてみました。 なお、それぞれ触れた時間はだいぶ違いますが、プログラミング言語に関してはC、C++、C++/CLI、C#、HLSL、PHPは経験があります。(アセンブリはほんの少しだけ読める程度) なのでそれら(とくにC++)との比較を教えていただけると早く理解が出来そうで また、かなり多くの質問があります(だいたいは基本的なことでしょう)が、全部でなくとも、一部でもいいので教えていただけると助かります。 ためしに以下のようなコードを書いてみました。 class MySamplePrint { private static interface PrintIF { void Print(); //(1) } private static final class MyClass1<T> implements PrintIF { private final class Nest1{ private int num = 0;} private final Nest1 n = new Nest1(); //(2)、(3) private final T data; MyClass1( T data_, int num_ ){ //(4) data = data_; n.num = num_; } MyClass1( final T data_ ){ data = data_; } //(5) //MyClass1(){ this((T)0); } //(6)、(7) //(8) public void Print(){ System.out.println(data); System.out.println(n.num); } } public static void main(String[] arg){ PrintIF a = new MyClass1<Integer>(123); //(9) a.Print(); final MyClass1 b = new MyClass1("abc"); //(10) a = b; a.Print(); a = new MyClass1<String>("def",234); a.Print(); int i = 0; { //int i; //(11) int x = 0; } int x = 1; //(12) final PrintIF c = new MyClass1<String>("def",234); c.Print(); } } 結果 123 0 abc 0 def 234 def 234 (1) C++ でいうconstメンバ関数はJavaにもないですか?(可能であればvoid Print() const;のようなものを書きたい) (2)コンストラクタと、このようにメンバの宣言場所でついでに 「型 変数 = 何々;」については、どっちが先かとか明確な順番は規格上定義されているのでしょうか? (3)メンバ変数にも、このようにfinalを付け、コンストラクタ(か 「型 変数 = 何々;」)で一度だけ値を代入する、といったことが、試したら出来ましたが、これは仕様上普通に可能って事になっていますか? (4)C++でいう、int num_ = 0など、書かなかった場合それになる、というデフォルト引数というものは、Javaにもないんでしょうか?(つまり、呼び出し側で同じような書き方をしたければこのようにオーバーロードを使う?) (5)ローカル変数同様、引数にも普通にfinalを指定可能…? (6)C#ではC++の初期化子リストっぽく MyClass1() : this(何々){ } とか言う書き方になるかと思いますが、Javaでは専ら{}内にのみ記述(this(何々)だったら一行目)でしょうか? (7)この行はコメントアウトすると 「int から T へキャストすることはできません」 とエラーになります。 んでも(T)""にすると一応通ります。 String型などと整数の0(nullを意図してほしい)は互換性がないのでしょうか (8)C++やC#のoverrideのようにオーバーライドを明示的に示す方法(や、C#のnewに匹敵するものとか)はありませんか? (9)<int>はできませんでした。ジェネリックスに指定できる型にはどういう制限があるのでしょうか? (10)警告は出ましたが、<String>を省略しても通ってしまいました。これは興味本位で、実際は警告も出るので指定はすると思いますが、これは仕様ですか? (11)この場合、xは可ですがiはダメでした。つまり、CやC++と違い、スコープがより狭い範囲に変わっても「それまでに、より広いスコープで宣言されていた名前」とかぶる変数名の変数は宣言できない、ということでしょうか? (12)C++的には、このcは参照(というよりポインタに近い)と考えて、この場合finalはc自体の変更を阻止していますが、参照先の内容は変更可能に思います。 CやC++的には const PrintIF* c = ~ ではなく PrintIF* const c = ~ と同じ意味 出来れば const PrintIF* c = ~ や const PrintIF* const c = ~ といったことも可能だといいのですが、Javaでは仕様上、それは無理、でしょうか? その他、コード以外で (13)アクセス修飾子の指定を書かないと、Javaでは同一パッケージ内で参照可能、ということですが、この「パッケージ内」というのは、これはC#でいうinternalのような意味あいになる、ということでしょうか? (14)Javaでは非staticなメソッドは全て、C++でいうvirtualに自動的になる、ということでしょうか?(逆に言うと明示的な、virtualに相当する修飾子がない?) (15)Eclipseで タブが> 改行が曲がった矢印 で、全部の行に表示されるのですが テキストの色や背景色(白)の変更や、これらを非表示にする といったことは可能ですか?

    • ベストアンサー
    • Java