• ベストアンサー

[ソフトウェア設計]処理の流れは、アクティビティ図?フローチャート?どちらで書くべきか。

VCですでに組まれているソフトの設計を設計書として文書にする作業をしています。 (現状あるソフト設計を別のソフトの設計に継承するため、このような作業が発生しました。すでに組まれているソフトには設計書がありませんので、参照はできません。) この場合、ソースコードに記載されている処理の流れは、UMLのアクティビティ図で書けるのでしょうか? 参考書でアクティブ図を勉強しましたが、プログラムの処理の流れ(基本情報技術者試験の擬似言語で記載されているような処理)をそのまま書いたような図は見つかりませんでした。一般的には、プログラムの処理の流れは、アクティブティ図では、書かないのでしょうか? そのような処理は、フローチャートで書くべきなのでしょうか? シーケンス図も一緒に書いていますので、できたらUMLで統一し、アクティブティ図で書きたいのです。 設計書は、今まで記載していなかったので、ノウハウがありません。 知識がおありの方がおられましたら、ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.2

そのレベルの処理フローは、UML的にはシーケンス図で表現するものだとは思いますが、それはもう書かれているのですよね。 普通、アクティビティ図で書くのは、普通もう少し上流のフローかと。アクティビティ図でも書けなくはないと思いますが、書きにくいと思います。 あえてUMLで書くなら、コミュニケーション図(UML1.xだとコラボレーション図)が近いでしょうか。 でも、設計がオブジェクト指向的じゃないものをこれにまとめると、分かりにくいんですよね。 いずれにしろ、UMLはオブジェクトが単位にあるので、既存VCのアプリがオブジェクト設計としてダメダメだったりすると、UMLにすること自体がすごい大変かも。 # VC(特にMFC)のアプリはそういうところが目立たなかったりしてたので、似非オブジェクト指向なものも多いのが現実。 # UMLの図と対応できない/しにくいということは、大体はOO的に設計が汚いってことなんですけどね。 そういう場合は、割り切ってフローチャートもやむなしかも。(個人的には不要と思いますが) そんなものの設計を継承すると、新規の部分もダメ設計になることは見えてるので、根本的に流用元として使うという構想自体が廃案になるのかもしれませんが。 あと、基本情報処理の擬似フローみたいな図って、多分書いてもあんまり意味ないですよ。 それみて分かるような人はソース見ても大体分かりますし、ソースにコメント追加したほうが早いかも…(苦笑 (ソース自体ではなく)設計を流用するということは、もっと大局的な/抽象的なフローが欲しいのでは? シーケンス図(+ステートチャート図とか)で十分(にならないといけない)気がします。

tosi_sd
質問者

補足

いろいろ有用な情報をありがとうございます。 シーケンス図には、大局的なオブジェクトの関係とおおまかな処理のフローを書いています。 加えて、納入先から大局的な設計だけでなくて、処理がややこしいと思われる箇所はプログラマーがどのような処理を書けばいいかもわかるような設計をしてほしいという要求がでているので、大局的な設計に加え、細かな処理フォローも必要となっています。 しかも、納入元が設計方針として、「納期短縮最優先。現状ソフトの処理で使える箇所があり、それを使った方が納期短縮できるなら、設計がよろしくなくとも使うこと」となっています。(今度作成するソフトはバージョンアップはしないので、再利用できる設計に変更などには特に時間をかける必要はないらしいです。) シーケンス図は、あまり細かな処理フローを書くには適していないですよね? 今回書きたいフローは、オブジェクト間の関係ではなく、オブジェクトの中身の一部の処理に関してなので、いろいろ聞いてると、フォローチャートがいいのかなって感じました。 いろいろな有用な情報、ありがとうございました。

その他の回答 (2)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.3

設計書の納入先に、どういう図式がよいか問い合わせるのが善くはないですか? えり好み(社内規定)のある会社も存在しますし。

tosi_sd
質問者

お礼

納入先は、どうのような図式で書くかということを含めて弊社に任せています。 社内でも今まで設計書なるものを書いている例がほどんどなく、ノウハウがない状態なんです。 納入先にもソフト担当者はいるのですが、設計書のノウハウはなく、いろいろ調べて書いてくださいって感じです。 アドバイスありがとうございます。

  • tadys
  • ベストアンサー率40% (856/2135)
回答No.1

フローチャートは諸悪の根源です。 相手によっては笑いものにされたり馬鹿にされたりします。 私は出来上がったソフトをソフトを知らない素人に説明するときにフローチャートを書くことはありますが、設計の為にフローチャートを書くことはしません。 ただし、フローチャートを元に製作されたソフトはフローチャートで無いと表現できない場合もありえます。 その場合はしょうがないですね。

参考URL:
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.3.3.html
tosi_sd
質問者

お礼

オブジェクト間の関係ではなく、オブジェクト内の一部の処理に関してのフローを書かなくてはならないのです。 今回できあがったソフトの処理を文書として書くだけの作業ですので、フローチャートがいいのかなと思いました。 フローチャートはあまりよくないんですね。知らなかったです。今後はそのようなことを踏まえて、設計書を記載していきます。 有用な情報をありがとうございました。

関連するQ&A

  • ER図とデータの流れ

    ER図を使って設計したことが無いのですが、 ER図を使ってもデータの流れはわかりません。 ER図を使用して設計する場合はデータフローなども併用して設計するのでしょうか? 例えば トランザクションファイルをどう編集してどう出力するか等はER図ではわからないですよね。 今までバッチ処理(COBOL,VBA等)ばかりやっていたもので どうもデータの流れを中心に考えてしまいます。 ER図でデータの構造はわかっても結局はデータフローをかかなければいけないのですかね。 ※そもそもこの質問は VBAでやっていたCSVフォーマット変換のバッチ処理を ファイルメーカーでやろうとした際に 「DB設計ってどうやんだ?」から発しました。 トランザクションを扱う際にトランザクション用のテーブルを作るべきか・・とかも分からないし・・

  • 紙メディア上の、図(フローチャート)などのデジタル化と利用について

    よろしければご教示ください。 紙メディア上にある、図(フローチャートなど)、表、文章などを、PCに取り込み、PC上で編集作業のようなことをしたいと思っています。 おススメの方法、ご使用のソフト、どのファイル形式で取り込むのが一番いいのか、ご教示願えますでしょうか? よろしくお願いします。

  • シーケンス図について

    シーケンス図について学んでいたのですが、なんだかよく分からなくなってしまったので質問します。 「シーケンス図を使ってモデリングを行なうことによって,オブジェクトとその間でやりとりされるメッセージを明確に定義する」ということは分かったのですが、UMLを用いたソフトウェアの設計において、どのような場面に使われるものなのでしょうか?

  • UMLでの例外処理

    UML(特にシーケンス図)の作成時に 例外処理をどのように記述すればよいかわかりません。 try-catchをシーケンス図上でどのように記述すればよろしいでしょうか? よろしくお願いします。

  • UMLによる分析・設計

    これからコンピュータシミュレーターの開発を行うのですが、 まずはUMLによる分析・設計を行わなければなりません。 でもいまいちどうUMLを書いていけばいいのかわかりません。 ユースケース、クラス、シーケンス図のどれを使っていいのか、 どこなで細かく書くのかなどです。 例えば、COMETIIの構造などでもかまいません、 なにかアドバイスをお願いいたします。 なにか参考になる書籍を紹介していただくだけでもかまいません。

  • プログラムの流れを図を使って表現したいのですが

    プログラムの流れを図を使って表現したいのですが、簡単に矢印やアイコンなどを使って画像を作ることのできるソフトを探しています。 初めからパソコンなどのアイコンが付属しているものなどがあれば最高です。

  • [UML]UMLについて詳細に記載したホームページはないでしょうか?特にシーケンス図について

    UMLについて詳細に記載したホームページはないでしょうか? 特にシーケンス図で、活性区間のつけ方がよくわからないので、具体例を述べて詳細に記載されているページはなでしょうか? よろしくお願いいたします。

  • VBの実行時の処理の流れ(仕組み)について教えて下さい

    WindowsXp-Pro上でVB.NET2003を使用しています。VB.NET初心者です。 VB.NETはコーディング後デバッグを行いエラーがなければ実行される訳ですが、実行時の処理の流れと言うか、仕組みについてご伝授頂きたいと思います。 VB.NETにおいてはオブジェクト指向が進んでおりコーディング作業時は全体の流れを考えなくても、クラス内でのインスタンスやサブルーチン・関数ルーチン、フォームロード時の処理、モジュール内での処理等のコーディングのみを考えていれば実行できるようになっています(少なくとも今まで私が作成したプログラムはそうでした)。しかし、色々なサンプルプログラムを作っているとこれはクラスで指定した方が良い処理とかモジュールで指定した方が良いのではと思うことが多々あります。 プロジェクトやフォーム、クラス、モジュール、コンポーネントクラス、ユーザーコントロール、データフォームウィザード、継承コントロール (これらはVisualStudioの「プロジェクト」メニューをクリックした時の項目です) 等の処理の順序が判っていればもっと効率的な処理を適材適所に配置できるのではないかと思います。 これらをコーディングレベルで結構ですので機械内での処理の順序をご説明頂ければ幸いに思います。現在のところコンピュータは並列処理はできないので必ず優先順位がつくと思うのですが、未熟な為VBの全体像がつかめず処理の流れも判らずにいます。 よろしくお願い致します。

  • UML図を描くソフト、その自動化ソフトについて

    1.UML図を描くソフトについて教えてください。 2.UML図を自動で生成したり、逆にUML図からプログラムを自動で生成するソフトについて教えてください。 ユーザ数が多いものは何でしょうか?無料・有料なのでしょうか? Webアプリは、以下のソフトで開発しています。 java tomcat mysql eclipse このプログラミング環境に適したソフトがどれなのかも知りたいです。 UML図を描くソフトは、EclipseUMLプラグインが妥当でしょうか? よろしくお願い致します。

    • ベストアンサー
    • Java
  • フローチャート

    VisualBasicの勉強を始めて1ヶ月ちょっと経ちます。 今、勉強中でいろいろなプログラムを作っているのですが まだ初心者のせいか前に作ったプログラムの処理の流れを忘れてしまいます。 そのたびにいちいちプログラムを見るのが面倒なので N88Basicの頃に書いていたフローチャートの様な物を書いて残しておきたいと思っています。 どなたかVisualBasicの処理の流れをうまくフローチャート化(?)する方法を知っている人教えてください。 よろしくお願いいたします。