マンガでよめる痔のこと・薬のこと

こんにちは。私は30代の男性です。
若干カテ違いかもしれませんが、こちらで質問させていただきます。

簡単なシステムの詳細設計書を書くように言われたのですが、初めてなのでどのように書けばいいのかわかりません。詳細設計書の書き方が載っているサイトを教えて頂けないでしょうか。もしくは「最低こういったことを書けばよい」という具合に教えて頂いても構いません。

上司から「とりあえず書くように。」とのことなので、下手でもいいので書ければと思います。

よきアドバイスをお待ちしております。
宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

手本もなく、いきなり書けと言われてもツライですよね。



社内に以前のものがあれば、見てみることをお勧めします。どうせ、一ラウンド経験しないと、何がいいのか、何が悪いのかは判断出来るようになりません。先輩の胸を借りましょう。

で、それだけだとあんまりなので、コツを一つ、、、

過不足なくやりたいと思ったときに、わたしがいつもやってる方法は「次の工程を試しにやってみる」です。

つまり、機能設計書 (があるなら) そこからいきなりプログラムを書いてみます。コーディングに慣れて居るなら、実際に書かなくても頭の中で「試してみる」だけでも構いません。そのときに決まってないと困ること、検討しないといけないこと、設計が必要なこと、調査が必要なことが出てくると思います。それを詳細設計書に書くのです。

逆に言うと、詳細設計書は、スムーズにコーディングするための前準備を書類として整えるという意味があります。

しかし、オブジェクト指向言語など、進んだ言語を使う場合は、オブジェクト定義は詳細設計の過程で完了してしまうと思います。そのことに気がついたなら、詳細設計書は、オブジェクト定義ソースをその一部としても構いません。もちろん、コーディング中にどんどんクラス定義は増えて行きますので、詳細設計時のヘッダーファイルに拘る必要はありませんし、そのことを理由として詳細設計しなおす必要もありません。ソースコードを読めば済むことは、他に書いても構成管理でミスするだけですので。

わたしならですが、、、オブジェクト指向言語を使うなら、コーディングしてから、ツールを使って詳細設計所を出力します。コーディング出来ないような設計をしてしまったら後々面倒ですからね、、、と、これは問題児の発言ですので初心者のあなたはまじめに命令をこなしてください。(^_^;
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
私はC言語を扱っています。参考にさせて頂きます。

お礼日時:2007/04/25 08:53

詳細設計書の基本はフローチャートやPDSチャートをきっちりと書く事です。


それで全てと言っても過言ではないと思います。

プログラマは詳細設計書のフローチャートを見ながらコーディングするはずなので、詳細設計書が間違っていればプログラムも間違ってしまうことになります。

では頑張って下さいね。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

>詳細設計書の基本はフローチャートやPDSチャートをきっちりと書く事です。
>それで全てと言っても過言ではないと思います。

なるほどぉ。参考にさせて頂きます。

お礼日時:2007/04/25 08:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qプログラム設計書の書き方

僕は新人SEです。
今、上司の方からあるシステムの基本設計書・システム設計書・プログラム設計書を作り、プログラミングまでしてから単体テスト・結合テストもやるように言われています。(全て1人で)

おそらく経験のある方ならすぐにできてしまうようなシステムで、上司の方も勉強のために全てやらせているようです。

今、基本設計書・システム設計書まではなんとかできて、プログラム設計書の作成に取り掛かりたいのですが、初めての経験で実際のプログラム設計書には何をどのように書いているものなのかも全く見当もつかずにいるので全く何も書けません。

上司さんは今週忙しいようで
「来週見てあげるから自分で調べたりしてやってみて」
と言っています。
ですが、全く何もできずにいるのもイヤなので何かそれらしいものでも書いてみたいのですが…プログラム設計書とは何をどう書いてあるものなのでしょうか?

日本語が書いてあるのかプログラムが書いてあるものなのか…
そういったところからわからないので少しでも何か教えていただきたいです。
宜しくお願いします。

Aベストアンサー

こんにちは。
No.1様のご回答通りなのですが会社によって異なります。
というのを踏まえた上で・・・うちではという回答になりますが

・日付 2009/10/10
・版 初版(その後バージョンアップで改定するため、改定ナンバー必須)
・タイトル 企業情報印刷(ここでは決定済み名称)
・発注仕様書ナンバー(正式にお客さまと契約で決めた発注番号を記載)
・作成者 boo_boo_suu
・使用言語 Visual C++
・使用データベース ORACLE
・使用帳票アプリケーション Crystal Reports
・フロー図(Visioで埋め込み図)
・概要説明 
メインメニューから呼び出され企業情報の印刷条件を入力し、クリスタルレポートの帳票情報から企業情報ファイル(KIGYOU_INFO)ファイルを呼び出し印字します。
・全企業情報が一覧で印字可能である。
・特定一企業(企業コード指定)での印字も可能である。
・一企業が指定された場合は企業情報を画面表示する。

-----------------------------------
で・・・・プログラム仕様書はこのくらい。
命令書ですからコードそのものは打ちません。
これみて作ってもらわないといけないので日本語メインです。

あとはDBの仕様書をみてもらったりしてプログラムのローカルルール、画面サイズ、文字サイズ プロシージャ定義やら定数や変数、フォーム、構造体定義書などプログラム書くときの決まりごとに添ってPGさんに打ってもらっています。
一応、図とかつけてみました。(^-^;;
全体の雰囲気はこんな感じだとご理解いただければ幸いです。
ではでは~。

こんにちは。
No.1様のご回答通りなのですが会社によって異なります。
というのを踏まえた上で・・・うちではという回答になりますが

・日付 2009/10/10
・版 初版(その後バージョンアップで改定するため、改定ナンバー必須)
・タイトル 企業情報印刷(ここでは決定済み名称)
・発注仕様書ナンバー(正式にお客さまと契約で決めた発注番号を記載)
・作成者 boo_boo_suu
・使用言語 Visual C++
・使用データベース ORACLE
・使用帳票アプリケーション Crystal Reports
・フロー図(Visioで...続きを読む

Q基本設計 詳細設計は何をするの?

職務経歴書のサンプルを見ると担当業務の欄などに、「基本設計」とか「詳細設計」と書かれていますが、基本設計や詳細設計はそもそも簡単にいうとどんな事を指しているのでしょうか?
どなたか、教えて下さい!

Aベストアンサー

http://www.thinkit.co.jp/free/project/4/3/1.html
こんなことや
http://www.thinkit.co.jp/free/project/4/4/1.html
こんな事です

上流工程の人がこういった知識が無いと、まともな設計書なんて無い状態でコーディングが進んでゆき、全体を把握している人がいなくなり、引継ぎ資料も無いまま後任の人が来て、こういったドキュメント類が無くて 結局直すに直せないような 動かないシステムがこの世の中には多いです。

Q仕様書?設計書?要件定義書?

仕様書・設計書・要件定義書、これらの違いがいまいちパっとしないのですが、どう言う違いがあるとかんがえたらよいのでしょうか?

要件定義書は顧客の要求をまとめたもので、それに基づき作成するものが仕様書と理解していますが、仕様書と設計書の違いとはどのような違いでしょうか?
境界の目安がわかればおしえていただけるでしょうか?
また、システム設計書と外部設計書の違いもいまいちわかりません。

教えてください。

よろしくお願いいたします。

Aベストアンサー

要件定義書は、顧客の要望をまとめたものです。ヒアリングをしながら開発側が作っていってあげるケースが多いですが、顧客が作る場合もあります。乱暴な言い方をすれば、できるかできないかはおいといて、とにかく顧客の「こうしてほしい、こういうのがほしい」をまとめたものです。
仕様書は、要件定義書に基づいて(他の情報や調査結果も使いますが)システムがどういう稼動環境下でどのような機能を具備するかを定義したものです。費用や時間、背反する要件などを詰めていって、結局、「こういうのを作ります」をまとめたものです。
設計書は、仕様書に記載されたものを、具体的にどう作るかを記述したものです。きちんとした顧客ならちゃんとチェックしますが、主に作り手が必要とするものです。
システム設計と外部設計は、開発するシステムの内と外ですね。外部設計書は、そのシステムが外部とどういう関係をもつかを記したものです。どのような業務の流れの中で、どのように使われ、他のどういったシステムと連携をとるのかということです。ここをきちんと詰めておかないと実業務で役に立たないシステムになってしまいかねません。
…と「読んで字の如く」的な説明をしてしまいましたが、お役にたてたでしょうか。
なお、shikakuhonpoさんのご指摘の通り、実際には会社によって定義が違うので、毎回、きちんと確認し、関係者間で定義を明確にしておかないとトラブルになりかねないので注意してください。

要件定義書は、顧客の要望をまとめたものです。ヒアリングをしながら開発側が作っていってあげるケースが多いですが、顧客が作る場合もあります。乱暴な言い方をすれば、できるかできないかはおいといて、とにかく顧客の「こうしてほしい、こういうのがほしい」をまとめたものです。
仕様書は、要件定義書に基づいて(他の情報や調査結果も使いますが)システムがどういう稼動環境下でどのような機能を具備するかを定義したものです。費用や時間、背反する要件などを詰めていって、結局、「こういうのを作ります...続きを読む

QDWORDの実際の型は何でしょうか

VC++.NETの環境です。
DOWRD dw1 = 1;
int i = 2; と定義し
ここで
if ( i > dw1 ){
何かの処理;
}
とコーディングすると
warning C4018: '>' : signed と unsigned の数値を比較しようとしました。
のワーニングがでます。
これは、DWORDがint型でなくunsigned int型のようにも見えます。
ある本によれば(VC++.V.NET逆引き大全500の極意)
DWORD はint型であると記述されています。
もし、int型ならこのワーニングはでないはずなのですが、
なぜでるのでしょうか。又、DWORDの実際の型は何なのでしょうか。ご存じのかたおりましたら、教えていただけませんでしょうか。

Aベストアンサー

型定義が知りたいのならば、宣言ファイルを見れば疑問を挟む余地もありません。
DWORD型はwindef.hで
"typedef unsigned long DWORD;"
と宣言されています。

Visual Studioを使っているのならば、知りたい型の上にマウスポインタを置いて右クリック、ポップアップメニューの「定義へ移動」または「宣言へ移動」で簡単に知ることが出来ます。

Q例外処理のフローチャートの記述方法

例外処理のフローチャートを記述したいのですが、良い記述方法はないでしょうか?
try、catch、throwの記述方法等教えていただければ幸いです。

#JISで決められている図でtry、catch、throwに該当する図はないと思います。
#わかりやすければ、独自の図などでも構いませんので、アドバイスお願いします。

Aベストアンサー

普通オブジェクト指向言語にフローは使わないんですけど、どうしてもフローで書く必要があるのならってことで。

tryブロックとctachブロックを「開いたサブルーチン」として捉えればブロックをサブルーチン記号で記述できます。
throwは「関数からの脱出」であることにかわりはありませんからreturnと同じ書き方でいいのではないでしょうか。

throwとcatchの関係はフローで書き表すことが困難(フローは関数ないロジックを記述するもので、関数間の関連を記述するのに向いていないため)ですからモジュール(関数)関連図などを別途要するべきでしょう。

Q戻り値の意味がわかりません…

戻り値とはどういう値なのか簡単な例文で教えて頂けますか?

Aベストアンサー

バカくさいかもしれませんが簡単な例えをだしてみます。
2人の子供がいて、名前をそれぞれ太郎・花子にしましょう。この2人の子にある役割を決めます。
・花子は飴をもらうと、それをチョコにする役割。(できるかは別として)
・太郎は花子を呼んで飴をあげる役割。

さてこの例では太郎の飴が引数(ひきすう)になり
花子のチョコが戻り値になります。

このイメージを元に次の文を読んでみてください。

「プログラム中の関数やサブルーチンが処理を終了し
呼び出し元に処理の結果として返す値。」

これが戻り値の正しい定義です。
そのほかにはNo1さんのような役割指すときも、それを「戻り値」と呼んだりします。

Qint型からchar型への変換

タイトル通り、int型からchar型への変換の仕方がわかりません!><
どうしたらいいのでしょうか?

Aベストアンサー

#include <stdio.h>


char buf[5];
int no;

no = 10;
sprintf(buf, "%d", no);

QC#にて別クラスの関数を使いたい

C#にて、別クラスの関数を使用する方法を教えてほしいです。

下記のような、構造体を受け取るメソッドを作りました。

*****************************
private struct MyPoint
{
public int x;
public int y;
}

private void proc1(MyPoint pt)
{
MessageBox.Show("座標:" ; pt.x + "," + pt.y + "実行結果");
}

private void button1_Click(object sender ,System.EventArgs e)
{

MyPoint pt;
pt.x = 10;
pt.y = 20;
proc(pt);
}
*****************************

別のフォームのクラスから、proc1を呼び出したいのですが、やり方がわかりません。
どうか、教えてください。

Aベストアンサー

同じ定義をしたとしても別の名前空間に書いた構造体は同一とはみなされません。

呼び出し先クラスでの構造体を private では無く、public で宣言して下さい。

呼び出し元では、

MyClass.MyPoint pt;

のようにして実体を作ります。

QC#「オブジェクト参照が必要です」(初心者)

Visual C# 2008を学習中なんですが、とりあえず何か作ってみようと思って、パラパラマンガに挑戦してみました。
Form1にpictureBox1を作り、waitを入れてイメージを書き換えるという単純なものです。
ところが実行しようと思ったら、「静的でないフィールド、メソッド、またはプロパティ’WindowsFormApplication1.Form1.pictureBox1’でオブジェクト参照が必要です」というエラーが出ます。その際のフォーカスは、main()内の
Form1.pictureBox1.image = Image.FromFile("motion1.png");
”Form1.pictureBox1”に当てられています。

何が原因と考えられるでしょうか。
もし情報不足であればご指摘いただくか、あるいはこの目的においてやらなければいけないこと、を大雑把に教えていただくだけでも幸いです。
よろしくお願いします。

Aベストアンサー

main()内に記述されているとのことですので、たぶん、
Form1.pictureBox1.Image=Image.FromFile("motion1.png");
Application.Run(new Form1());
と書いているのではないでしょうか?

連載 改訂版 C#入門 第3章 クラスとインスタンス
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_003/cs2_003_01.html#cs0302

ここであるように、オブジェクト指向にはクラスとインスタンスという概念があります。
今のコードでは、Form1クラスを操作しようとしているのでそのようなエラーが出ます。

具体的な解決方法としては、PictureBoxに初期画像を設定する処理をForm1のコンストラクタでやるのがいいと思います。
その際、redfox63さんがおっしゃられるように
this.pictureBox1
と記述することが必要です。(thisは自分自身のインスタンスを指します)

後は、Windowsフォームで一定間隔での処理をするための「Timerコンポーネント」について調べてみたらいいと思います。

タイマにより一定時間間隔で処理を行うには?(Windowsタイマ編)
http://www.atmarkit.co.jp/fdotnet/dotnettips/372formstimer/formstimer.html

MSDNライブラリ Timerクラス
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.timer.aspx

参考URL:http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/

main()内に記述されているとのことですので、たぶん、
Form1.pictureBox1.Image=Image.FromFile("motion1.png");
Application.Run(new Form1());
と書いているのではないでしょうか?

連載 改訂版 C#入門 第3章 クラスとインスタンス
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_003/cs2_003_01.html#cs0302

ここであるように、オブジェクト指向にはクラスとインスタンスという概念があります。
今のコードでは、Form1クラスを操作しようとしているのでそのようなエラーが出ます。

具...続きを読む

QC++ソースからUMLの設計書を作るには

C++ソースからUMLを使った設計書を起こしたいです。
設計書等は一切ありません。
総ステップ数12万超です。複数のcppファイルに分かれています。
オブジェクト指向に基づいて開発されているので、クラスからクラスへと更には別のcppファイルへと呼び出されていくので、どこから見ていったら良いか悩んでいます。
まずはクラス図から作った方が良いのでしょうか?
C++ソースから設計書を起こすには、どこから手を付けたら良いか、アドバイスお願いいたします。

Aベストアンサー

ANo.1の回答と同じく、Doxygenがお勧めです。フリーで使えます。
Doxygenでなくても、他にも静的コード解析ツールが沢山あります。
http://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E3%82%B3%E3%83%BC%E3%83%89%E8%A7%A3%E6%9E%90

業務でなさるのでしたら、QAC (http://www.toyo.co.jp/ss/qac/index.html)なんてのもありますが、かなりの予算が必要ですのであまりお勧めしません。

> まずはクラス図から作った方が良いのでしょうか?
> C++ソースから設計書を起こすには、どこから手を付けたら良いか

意外とこういうことについて体系立てて説明したものって無いんですよね。で、私はどうしているかというと、ツールを使っていません。次のような方針でコード解析しています。

--------------------------------------------
1.プログラムが提供する主要な機能を理解する。
(1) そのプログラムが提供する機能を大雑把にリストアップする。
(2) コンパイル、ビルドして動かしてみる。(使ってみる)

2.プログラムの論理構造を図示する。
(1) ディレクトリ構造やファイル名などから構造を推理する。
(2) 各ファイルのヘッダコメントからそのクラス(モジュール)の概要を書き出す。
(3) 集中して読み解くべき主要なクラス(モジュール)を絞り込む。
(4) 絞り込んだクラス(モジュール)について、呼び出し関係を図示する。

3.プログラムの処理構造を把握する。
(1) デバッガを使って、プログラム起動から待機状態にまるまでの初期化処理の流れを追いかける。
(2) 1.で最初にリストアップした主要な機能を実行して、処理の流れを追いかける。

4.自分で機能を追加してみる。
--------------------------------------------
私は、自分で機能を追加できるようになったら、もう充分そのプログラムを理解したといっていいんじゃないかと思っています。

それがどんな機能を提供するプログラムなのか知らないでコードを読み始める無謀な人はいないと思いますが念のため。仕様書があればベストですが、なくてもREADME.TXTみたいなファイルがどこかにあれば多少は推測できるかと思います。

今回kanakokanakoさんが飛び込もうとしているソースコードは12万行という大海なわけですが、本当にコード深くまで潜って読む価値のある部分は全体の1~2割程度の2~3万行ではないかと予想します。重要そうなクラス(モジュール)は、ファイル名やファイルサイズ(=1つのファイルの論理コード行数)から推測できます。そして、そういう重要な部分はそのドメインの専門知識が無いとソースコードを読んでも(仮に仕様書があってその仕様書を読んだとしても)意味がわからないから厄介なのですが・・・

今回何のためにソースから設計書を起こすことになったか存じませんが、誰が何のために読む仕様書なのか、狙いを外さない仕様書になることをお祈りします。

単にファイル名や関数の役割をだらだらと書き連ねた設計書はゴミです。労力の無駄。誰もそんなもの読みません。設計者の意図が、コンセプトがわかる仕様書を書いてくれ!と、言おうと思ったら私が仕様書を書く立場になっていました (^-^;A

ANo.1の回答と同じく、Doxygenがお勧めです。フリーで使えます。
Doxygenでなくても、他にも静的コード解析ツールが沢山あります。
http://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E3%82%B3%E3%83%BC%E3%83%89%E8%A7%A3%E6%9E%90

業務でなさるのでしたら、QAC (http://www.toyo.co.jp/ss/qac/index.html)なんてのもありますが、かなりの予算が必要ですのであまりお勧めしません。

> まずはクラス図から作った方が良いのでしょうか?
> C++ソースから設計書を起こすには、どこから手を付けたら良いか
...続きを読む


人気Q&Aランキング