No.6
- 回答日時:
>>私がリーダとなり他のメンバーにプログラム(各関数やメソッドなど)の使用を支持(指示)するときに用いる設計書を書くと考えてもらってもいいです。
そこからそのソースコードを公開して誰でも拡張、改造できるようにするためのリファレンスのようなものを作れればなおよいです。
感覚的には、質問者さんの望まれるようなものは現状では、「無いものねだり」「存在しない」と思えます。
No.4
- 回答日時:
#2です。
業務でもない限り昨今「そんな詳細な仕様書を予め書くか?」と思うだけで、回答自体は設計一般の話として書いてます。
結局、相手には判断材料のない部品の作成を依頼するならほぼソースコードと同等な日本語資料を提示する以外になく、
そうでないならば、システムの概要から理解させて誤解を少しでも排除するしかない、ということはよろしいですか。
「明示的に示していないことが同じ理解になるとは限りませんし、 複数の意味に取れることはどちらに取られるか分かりません」
仕様書とはつまり、「その規定範囲で」一意に何かを規定する文書ですので、
仕様漏れや曖昧なもの、また誤解させやすいものはその時点で作り手に依存します。
「完全」を目指すならば当然「全て」を記載するしかないわけです。
但し、普通はそこまでは不要、むしろ「ブラックボックス」にして気にしなくていいようにします。
よくできた仕様は「必要十分の約束事」だけが規定されています。
> どのダイアグラムをどの場合に使用すべきかというのが今ひとつわかりません。
補足を拝見する限り、あまりシステム設計とかには力をおいていないような印象を受けていますが、どの次元を求められているのかよくわかりません。
あなたが逆の立場で依頼されるなら、どんな情報が必要ですか。
システムを仕様化して、ソフトウェアを仕様化して、部品を仕様化して…と下っていくわけですが、全部ですか?
もしそうであれば、(タイミングチャート以外?は)ほぼ全部の図が必要かと。
> 実際はクラス図+αがあればコーディングだけはできるでしょうが、
全体像を多角的に表現して初めて一意に伝わるのであって、実装レベルでも局所的な静的構造だけでおなじになるとは限りません。
書き手の理解によって動作が合わないことも実際ありますので、目的に合致するには、振る舞いや状態も規定するなど+α部分が重要です。
> 私がリーダとなり他のメンバーにプログラム(各関数やメソッドなど)の
> 使用を支持するときに用いる設計書を書くと考えてもらってもいいです。
誰が書いても同じように「使い方を直接指示する」のであれば、「プログラム詳細仕様書」を書いてください。
日本語でソースをそのまま書くようなイメージです。もしくは、擬似ソースコードでサンプル提示してもいいです。
「誰が書いても同じように使われるようなプログラムを提供したい」なら、
まず「他の使い方ができないように設計する」のが設計のセオリーです。
その上で、「インタフェース仕様」として「制約」や「契約」等を明記してください。サンプルコードを提示するとなお効果的です。
(Doxygen等で生成できるようにヘッダ/インタフェースを実装するのもいいと思います)
> そこからそのソースコードを公開して誰でも拡張、
> 改造できるようにするためのリファレンスのようなものを作れればなおよいです。
また、使うだけなら仕様書(インタフェースを一意に規定)でいいのですが、
ソースの改造などまでしたいということであれば、ちゃんと設計書を用意してください。
利用するだけの人間には通常不要でも直そうとした時に影響範囲などを特定するにたる情報、
それを設計するに際して検討した代案や外部制約、要件などの追跡性を確保する必要があります。
また、ユニットテストなど検査項目も予め用意しておくといいでしょう。
■手持ち書籍より
設計書の一般的な分類、書式などは以下を紹介しておきます。
http://www.amazon.co.jp/組込みソフトウェア向け開発プロセスガイド-BOOKS-独立行政法人-情報処理推進機構-ソフトウェア・エンジニアリング・センター/dp/4798115630/ref=sr_1_1?ie=UTF8&s=books&qid=1241553856&sr=1-1
UMLで設計よりの本だと、例えばこのあたりとか。
http://www.amazon.co.jp/実践UML―パターンによるオブジェクト指向開発ガイド-クレーグ-ラーマン/dp/4894710773/ref=tag_dpp_lp_edpp_img_ex
http://www.amazon.co.jp/UMLコンポーネント設計―コンポーネントベースソフトウェアのための開発プロセス-コンポーネントソフトウェアシリーズ-ジョン-チーズマン/dp/489471387X
No.3
- 回答日時:
たまにある、設計する会社で詳細設計まで書いて
コーダの会社に、コーディングと内結までをお願い(委託)するようなケースなのですかね?
その場合、#2 の方がいうように、
すべてを日本語でコーディングしてあげないとだめです。
逆に言えば、コーダの人は、書かれたとおりにしか記述しませんので、
詳細設計を記述する段階ですべてを検討しておかなければなりません。
# たとえば、関数とか、分岐とか、同期部分とか
# その設計書は「業務指示書」にあたるので書いてないことは
# 不都合に気がついても普通に無視されます。
きっと本はないんじゃないかな?
普通は、概要や機能詳細まで書いて、以降はよろしく~というパターンが多いと思うので。。。
一般論でいえば、
設計書の書式に従って、自分で日本語のコーディングをしてくださいで
FAではないでしょうか。
この回答への補足
>たまにある、設計する会社で詳細設計まで書いて
>コーダの会社に、コーディングと内結までをお願い(委託)するようなケースなのですかね?
#2の補足でも書きましたが違います。
仮に私が友人数人と趣味でゲームを作るとして、私がリーダとなり他のメンバーにプログラム(各関数やメソッドなど)の使用を支持するときに用いる設計書を書くと考えてもらってもいいです。そこからそのソースコードを公開して誰でも拡張、改造できるようにするためのリファレンスのようなものを作れればなおよいです。
本がなければWEBページでもかまいません。よろしくお願いします。
No.2
- 回答日時:
まず、まともなプログラマ=製造の専門家に対して作成を依頼するのであれば、
製造の詳細については専門家に任せて要求する仕様だけを決めた方が大抵よいものができます。餅は餅屋です。
(「専門家」でない人/会社に依頼すると大抵痛い目を見ますのでそもそもお勧めしません)
故に、書籍は要件定義等の「お願いするための情報整理」に焦点が当たります。
つまり、「外観上の動作」について仕様を決めて、後は任せるわけです(任せられる人に頼むわけです)。
# データ構造が素人考えではないか?最適解か?などは専門家の方が精通しているのが普通です。
そういったレベルを逸脱して、本当にソースレベル等の詳細まで
「その設計書があれば誰がコーディングしても同様のものができるような設計書」を作る時間を掛けると、
結局「製図用紙に製品全体の精密図面が引く作業を全部やる」ということですから、
プログラム製造の場合、(試験等は別にして)自分で製造できてしまったりすることもままあります。
# 業務保守等を考えなくていいものなら、自分で書いた方が多分早いです。
これがお望みであれば、日本語でソースコード全部書いてるのと大差ない詳細な処理動作を全て記述してください。
それで、誰が「翻訳」してもほぼ同様なソースになります。
# 「プログラム詳細仕様」の作成は実質プログラミング(の一部)ですので、
# 自分でもソース自体を書こうと思えば書ける人しかまともなものは作れません。プログラミングの本で学んでください。
もしくは、例えば「(MDAを視野に)UMLで書く」のはいかがでしょうか。
http://www.amazon.co.jp/MDA-モデル駆動アーキテクチャ-David-S-Frankel/dp/4434038133
とりあえず「機械でもソースに翻訳できる」くらい詳細に仕様を表現すれば、
おそらく(UMLが読めるプログラマなら)誰に頼んでもほぼ同様なものができます。
そこまででなくてもよく、本当にデータ構造やGUIなどだけに限って口を出したいなら、
「データ構造定義図」や「画面仕様書」等を調べて見てください。
但し、「設計に部分的に口を出す」とそこがシステムのネックにもなりやすいので、
実装上で調整の余地を残しておく方がよいかもしれず。
設計者自身にそれなりの実装経験等がないと
「誰がコーディングしても同様に」するのは難しいかと思います。
この回答への補足
回答ありがとうございます
回答を拝見したところ、業務内容をIT化する依頼を私がベンダやソリューション提供会社にしようとしている、ビジネスシーンを想定されているのではないでしょうか?
しかし、質問の際にも言いましたように一般論での回答をお願いしたいです。
また、UMLについて言及されていますが、UMLの個々のダイアグラムはだいたい理解しています。しかし、実際にそれらを使用したことがないので、どのダイアグラムをどの場合に使用すべきかというのが今ひとつわかりません。前述したように個々のダイアグラムについてはそれなりにわかるので、逆に完成したソースコードからクラス図を作ったり、利用シーンを想定してユースケース図を作成するといった学校の課題みたいなものはできるでしょう。
ともかくUMLに限らず、当初の質問のように「誰がコーディングしても同様に」を実現できる文書作成術が学べる書籍なり資料を教えてください。実際はクラス図+αがあればコーディングだけはできるでしょうが、それ以上の、ビジネススキルとして役立つ知識が身につくなどあればなおよいです。例えばコーディングとは直接関係のないソフトウェアの運用手順書なんかですね。
どうぞよろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 建設業・製造業 建設 施工計画書、共通仕様書、特記仕様書、標準示方書、 それぞれの役割がよくわかりません。 発注者が 2 2022/10/27 20:33
- 会社・職場 2年目の土木公務員です。 地方整備局、または土木公務員の方に相談です。 仕事ができず、針のむしろです 1 2023/05/11 22:53
- その他(教育・科学・学問) 相関関係があるアンケートを作りたいです。 設問1と設問2が何か関係性を持つように作りたいので案が欲し 3 2023/05/24 15:30
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- その他(パソコン・スマホ・電化製品) 腕時計の設定の仕方について 5 2022/08/21 13:40
- リフォーム・リノベーション 一般家庭の外壁・屋根塗装工事について 3 2023/01/05 14:51
- その他(データベース) Excel VBA 転記について 1 2022/04/20 16:55
- 固定資産税・不動産取得税 土地の譲渡の確定申告に添付する書類(優良住宅) 2 2023/03/31 17:24
- その他(ビジネス・キャリア) 「俺は黙々と図面を書く設計の仕事するのが好きだから社交性とかに欠けるのは仕方無い」は理由にならない? 3 2023/04/24 12:44
- 公認会計士・税理士 申告書等の税理士欄について 5 2022/09/14 17:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で複数マッチ条件で悩...
-
RTKPOSTのファイル生成について
-
プログラミング
-
プログラミング ソースコード
-
windowsでテキストファイルの各...
-
Pythonって何を意識した言語な...
-
vba クリップボードクリアにつ...
-
Webサイト内に埋め込んだmp4動...
-
Arduinoに関する質問
-
chatGPTで次々と質問をしていく...
-
REGZAに接続できない(パソコン)
-
【IT導入補助金は個人事業主や...
-
そのまま使っただけなのに・・...
-
パイソンのプログラミングにつ...
-
I2C接続のLCDディスプレイを使う
-
昔のパソコン少年の武勇伝「店...
-
Pythonのスクレイピングの質問...
-
Pythonのライブラリをダウンロ...
-
P2P地震速報のEEW APIの仕様書...
-
フォルダを自動作成・移動を複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テストケース数
-
システム連絡表とは?
-
詳細設計・プログラム設計について
-
詳細設計書の書き方
-
結合テストの精査について教え...
-
UMLによるシステム設計について
-
Matlab ハイパスフィルタ
-
基本設計 詳細設計は何をするの?
-
みずほのプログラムを組んだSE...
-
12種のペントミノのうちm 個を...
-
設計書の書き方 業務の流れ
-
オブジェクト指向で開発されたP...
-
vncとultravncとrealvncの3つ...
-
データサイエンティストはITの...
-
Web開発の仕事について。 Web開...
-
Accessでナビゲーションウィン...
-
SQL ServerでDBを構築。これは...
-
AI尿検査のススメ
-
ペロブスカイト太陽電池につい...
-
北朝鮮のハッカーには、SWIFTと...
おすすめ情報