TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
MFC相談室 mfc23d.dll
スレ立てるまでもない質問はここで 153匹目
くだすれPython(超初心者用) その47【Ruby禁止】
Visual Studio 2019
Pythonのお勉強 Part63
CoffeeScript
Python の宿題ここで答えます Part 2
将来的にPGになりたいんだが、やっぱCから?
【O3D】HTML5用 3D API WebGL 【Canvas:3D】
C++は難しすぎ 難易度:4

設計思想/ソフトウェア工学(UML, デザパタetc)


1 :2017/09/29 〜 最終レス :2019/04/04
・要求設計、概念設計、論理設計、物理設計までを扱う範囲とします。

2 :
%%%3%%%
000-DOK<NAZE-0.8112162>
001-3800%\73NMB/1,81,2,NB"IKKI"%
002-91.81%ML7"8.122231746668193,43@ML.4@"%^23.1444
003-1.33321444718%"YLD""SO"%{71.%{62.1339816{331.422231765%<<<NL6
004-LOOP%Go To"000"%

VCL

3 :
テーマが漠然としてる
良い設計はどういう設計かとか
なんか問題意識が欲しい

あと具体的な題材も欲しい
図書館やレンタルビデオの
貸出管理をどう設計するかとか

4 :
・じゃあお題を建てよう。

・みんな>>3 を基準にして色々と考えてくれ。
・このお題が気に入らない場合棄却してくれても構わないが、
 その場合代わりのお題はつくってくれよな。

・「Excelに記録されているデータを読み込んで特徴を分析し、
それを洗練して互換的に格納するDBを作成るSQL案を自動生成する。
  このシステムはデータをもとに推測を行って、テーブル作成から
  データ流し込みまでの全てのSQL案を生成してくれる。
DB名, テーブル名, カラム名, データ型, 各種制約も出来る限り
  頑張って設定してくれる。(わからない場合デフォルトの名前とか
  が入るようになる。)
推測のしかたについて、オプション指定機能が搭載されていて、
オプション次第で様々なDB格納法が自動生成できる。
  制約については何故その制約が必要と判断したのかの理由を
  レポートしてくれる。」

5 :
>>1
すみません、デザパタってなんですか?
まさかデザインパターンのことですか??

6 :
>>5
そうだよ、アナリシスパターンでもいいよ

7 :
>>4
設計思想について話したかったんじゃないの?

8 :
設計なんで実装の話は原則禁止

どの言語でも通用する話をするべき

9 :
>>4
設計の話なんで、ExcelとかSQLとか言う話はいらない。
抽象化して書いてくれ

10 :
いや俺が書いてあげよう。ExcelやSQLという言葉を消すだけだが


・「マイグレーションファイルに記述した定義から
いろんなデータベースにスキーマと初期データを自動生成する。
  このフレームワークは初期データファイルから
  データの流し込みを行ってくれる
スキーマや制約も出来る限り
  頑張って設定してくれる。(わからない場合デフォルトの名前とか
  が入るようになる。)
オプション指定機能が搭載されていて、
オプション次第で多くのDBMSに対応できる。
  ER図とかの自動生成機能も存在する」

つまりRailsのようなものだ。

Railsを設計してくれという話だ。

11 :
>>9
そこに出てくるExcel・SQL・DBは
みんな要件レベルの話で実装の話じゃないよ

12 :
つまりは>>4はActiveRecordの設計がどうなっているか?
ORMとはどのような設計になっているかという話がしたいということだろう。

ORMとはデータベースをオブジェクトにマッピングしてくれるものだ。
というのはよく言われる簡単な説明の一つだな。

まず二次元のデータベースっていうのは慣れると単純なので
ある意味楽ではあるが、現実世界は二次元のデータには収まらない

初心者が勘違いしてしまうのはORMは単なるSQL生成ツールだと
思ってしまうこと。まあそれは本当の初心者だろうが、
ORMは複数のテーブルがあってそれぞれがつながってる
データベース全体をオブジェクトの形で表現するもの。

テーブル=モデルと考えてしまうと、ある地点で行き詰まってしまう。
データベース=モデル群と考えるのが正解。

データベースに入っているデータをいろんな視点(=モデル)から
見ることができるようにするのがORM

だからORMを使う時にモデルとモデルのつながりの定義を書くのは必須なのである
(もちろんログや設定のようなつながりを持たないモデルもあるにはあるが)

13 :
>>11
設計の話なんで要件の話はいらない。

設計の話をしましょう。
ActiveRecordとかね

14 :
ActiveRecordはRailsが有名になったせいで
Rails特有のライブラリや概念だと勘違いしている人も
いるかもしれないがそれは違う。

ぐぐればすぐに分かることだが

http://www.techscore.com/tech/Ruby/Rails/other/designpattern/1/

> 1. Active Recordパターンとは?
>
> Martin Fowler氏の Patterns of Enterprise Application Architecture (邦訳)で
> 解説されているデザインパターンのひとつで、以下のように解説されています。
>
> データベーステーブルまたはビューの行をラップし、データベースアクセスを
> カプセル化してデータにドメインロジックを追加するオブジェクト

日本語訳は残念との噂が高いが、この本のこと

エンタープライズアプリケーションアーキテクチャパターン
https://www.amazon.co.jp/dp/B01B5MX2O2

なのでActiveRecordパターンの話は
あきらかに設計思想の話であると明確にしておこう

15 :
>>10
いいやそれは違う。
マイグレーションファイル書かないとだめじゃん。
SQLという文言は排除してもいいがExcelは排除したくない。

「IT全然知らない人がつくった.xlsxファイルを、データベースに入れたい」
「それと同時にデータベースをつくってくれる呪文」も手に入れたい。


RailsとかORMとか ActiveRecordとかもっと詳細化された概念じゃん。

16 :
ActiveRecordパターン等のパーシステンス層アーキテクチャパターン
には次のようなものが有る

http://otndnld.oracle.co.jp/columns/arai-semi/data_access/2/

> Table Data Gateway
> Row Data Gateway
> Active Record
> Data Mapper

17 :
>>15
> Excelは排除したくない。

お前の都合は知らん。

一番シンプルでわかりやすく強力な手段を選ぶべき

例えば、booleanと書けばいいのに真偽値と日本語で書くようなもの。
not null と書けばいいのに必須と日本語で書くようなことに意味はない
その考えで行くとExcelは排除すべきという結論になる

そのことを説明してもいいが、そもそも設計の話とは無関係なので
Excelの話はここでもう終わり

お前風言うのであれば

「Excelは排除したい」だ。このスレから

18 :
仕様が確定してれば設計なんて猿でもできる
仕様が不確定な問題を設計までもってくる馬鹿がいるとその開発は失敗と思っていい

19 :
一人で設計とは関係ないエクセルがーって
話をしたいならどうぞご勝手にとしか言うつもりはない。

ただ設計思想とは全く関係ないということだ。
だから設計思想の話をしたいと思ってる人は
俺を始め、エクセルの話は誰もしないということは受け入れろ。

20 :
>>18
> 仕様が確定してれば設計なんて猿でもできる

それができる猿は見たこと無いので
説得力ゼロだよ。

21 :
設計思想の話に戻ろう

といっても俺が何やら言うよりもまずはコピペでいいあろう。
設計思想の話について、何か意見があればどうぞということだ。

Active Record
3つ目はActive Recordです。一言で言うと「データベースのテーブル/ビューの
1つの行をラップしたオブジェクトで、データアクセスロジックやドメインロジックを
カプセル化したオブジェクトとして実装」といえるかと思います。

Active Recordは、それ自身にドメインロジックを含むという点でドメイン層の
Domain Modelパターンとデータベースのテーブルのレコードを表すという点で
パーシステンス層のRow Data Gatewayパターンに良く似ています。

まず、Domain Modelと似ているという点ですが、Active Record自体が
Domain Objectと成り得るのですが、本当?のDomain Objectと異なる点は、
Active Recordはテーブルの構造を元にして基本的にテーブルの列の表現として設計される点です。
一方、Domain Objectは、テーブルの構造に関係なく、オブジェクト指向のドメイン分析の結果抽出されます。

例えば、前編で説明したDomain Modelでは、Strategyパターンを利用しているものの、
BIDテーブルに対応したBidクラス、Itemテーブルに対応したItemクラス、
SALEテーブルに対応したSaleクラスとテーブルとクラスがほぼ一対一になっていますが、
ドメインオブジェクトの設計によっては同じテーブル構造のまま、Itemを抽象クラスとして用意して、
そのItemを継承したBookやComputerなどの具象クラスを作成する様な継承関係を実装するかもしれません。
その場合、それら継承関係をItemテーブルという1つのテーブルに格納しなければならないかも知れません。
つまり、Domain Modelが複雑になればなるほど、両者の違いは明確になってきます。
そもそもドメイン層とパーシステンス層という全く役割の異なった層のパターンですので違うのが当たり前ですが・・・
あと、Row Data Gatewayと似ているという点ですが、これは単純にActive Recordがドメインロジックを含むという点かと思われます。


Active Recordパターンのコードは、Row Data Gatewayとほぼ同じです。異なる点は、
それ自身にドメインロジックが含まれるという点ですので今回は省略します。

22 :
パーシステンス層アーキテクチャパターンの選択
それでは、どのパーシステンス層のアーキテクチャパターンを選択すべきでしょうか?
これは、ドメイン層のアーキテクチャパターンの選択に大きく依存します。PoEAAでは、以下の様な組み合が考えられるとしています。

ドメイン層アーキテクチャパターン パーシステンス層アーキテクチャパターン
Transaction Scriptパターン Row Data Gatewayパターン
Table Data Gatewayパターン
Domain Modelパターン Active Recordパターン
Data Mapperパターン
Table Moduleパターン Table Data Gatewayパターン

ドメイン層とパーシステンス層はどの様な組み合わせでもかまいませんが、
より合わせやすいパターンは上記の様な組み合わせといっています。
また、少し視点を変えて各アーキテクチャパターンとシステムの論理的な階層の依存関係を表すと以下のように成るかと思われます。

【図】パーシステンス層/ドメイン層アーキテクチャパターンの依存関係

かなり抽象的かつ感覚的な図ですので、大体の感触をつかんでいただければ良いのですが、
1つ言えることは、システムの論理的な階層である、ドメイン層とパーシステンス層は、
其々異なる役割を持った層ですので、お互いに依存が少ないほうが好ましいと思われます。
その点で言うとDomain ModelとData Mapperがお互いの層で依存関係が少なく済みます。

23 :
>>22に自己レス

パターンはぶっちゃけどれもまともに使っていれば悪くないんだろうけど
結局は使うフレームワークによるよな。

ウェブのシステムは単純なのが多いから
トランザクションスクリプトパターン使って
テーブルデータゲートウェイかな?
SQLを生成してくれるライブラリで十分だと思っているけど、

Rails使ってみるとアクティブレコードパターンよく出来てるんだよな。
これぐらい作り込まれていれば、ドメインモデルパターンもやる気になる
(流石に貧弱なフレームワークでドメインモデルは大変すぎた)

24 :
わかった、Excelはゴリ押しするのはやめよう。
ただ、なんでExcelがいいかっていうと、
既存でExcelで格納されたデータってたくさんあるだろ、
この「既存の表を情報処理できるように整理したい」と
いうのが目的。
スプレッドシートでざっと「DBのテーブルっぽい表」を
つくって、今回開発するシステムにその「表」を見て推測させて
それっぽい構造をつくってもらいたい。
あとはそっからSQLが分かる人なら、DBいじって手直しできればいいな~と
そういう話です。Excelも固有名詞だからゴリ押ししたのは済まなかった。

25 :
>>14
Active Recordで「パターン」なの!?
そりゃ知らなかったぜ。

26 :
>>24
エクセルはただファイルフォーマットにすぎない。
設計思想とは何の関係もない。

ファイルフォーマットとしてみれば
無駄に重く二次元に縛られてるから柔軟性がない。

YAML形式のほうが遥かに可読性が高くて
柔軟性が有るファイルフォーマット

ってかファイルフォーマットの話はいらない。

27 :
>>25

Martin Fowler氏の Patterns of Enterprise Application Architecture(通称PoEAA)で
紹介されているデザインパターンの一つのアクティブレコードパターンを
実装したのがRailsのActiveRecord

時系列的に見ればパターンとして紹介された後にRailsがつくられてる

28 :
なるほど。
>>26
.csvに書き出せばいけるやん?
最初からそう言わなかった俺が悪いが。

このお題は良くないかな、きっと構文解析必要だよね、
それって設計はあまり関係なくなってくるよな。

29 :
設計って何?
業務?
プログラム?
なんの設計を考えるの?

30 :
こまったwwwww代わりの要求を考えたが出て来ないわwww
だれか要求出せる人お題考えてくれwwwww

31 :
>>28
> .csvに書き出せばいけるやん?
だからファイルフォーマットの話はどうでもいいの
設計とは無関係

無関係だが言っておくとYAMLの方が見やすい
CSVなんてインデントすらまともにできないだろ
階層構造のデータも作れない

32 :
>>30
設計思想の話で要求とか関係ないと言ってる。

設計思想の話をするならば、なぜあのフレームワークは
こういう設計になってるのか、その思想が知りたい
とかそういう話

33 :
>>31
そうだな。
それを「データから」推測して構造再構築できないかな。
たとえば、"太郎"が見つかったら -> 「漢字が使われている(Unicode)」である
->「東アジアらへんの人名っぽい」とか
(少なくととも"ASSDFEWHE"のようなランダムなトークンではなさそうとか)

-"2017/09/30"を読んだら->「日付だ」とか。
型が特定できたら、開発するシステムがある程度自分なりの考え方で
整理整頓して正規化して、再構築してくれる。

あと、重要な前提として元データの「完全再現移植」は目指さない。
っていうの後付だけどつけるわ。

34 :
ずっと実装の話になってる
実装だと分かるから言いたくなる
いかに設計が難しいか分かるな

35 :
>> 34
まさにそれ、ほんとすみません。
こうしよう。

>>40 以降に書かれた最初に「お題」として投稿されたものに対して
議論しよう。

36 :
どういう方針で実装するか考えことが設計だろうに。
実装とも言語とも切り離して考えることが何の役に立つのだ。

37 :
この状態を取りまとめてくれる
有能なプロマネ兄貴が来るのを待つしか無いな。

38 :
>>4の要件そう悪くなかったのに変なのに流されるからだよ

39 :
>>10がクソ「いろんな」←はぁ?
社会人ですか?w
お里が知れるな

40 :
パーシステンス層アーキテクチャパターンについて自分の考えを述べよ


パーシステンス層アーキテクチャパターンの選択
それでは、どのパーシステンス層のアーキテクチャパターンを選択すべきでしょうか?
これは、ドメイン層のアーキテクチャパターンの選択に大きく依存します。PoEAAでは、以下の様な組み合が考えられるとしています。

ドメイン層アーキテクチャパターン パーシステンス層アーキテクチャパターン
Transaction Scriptパターン Row Data Gatewayパターン
Table Data Gatewayパターン
Domain Modelパターン Active Recordパターン
Data Mapperパターン
Table Moduleパターン Table Data Gatewayパターン

ドメイン層とパーシステンス層はどの様な組み合わせでもかまいませんが、
より合わせやすいパターンは上記の様な組み合わせといっています。
また、少し視点を変えて各アーキテクチャパターンとシステムの論理的な階層の依存関係を表すと以下のように成るかと思われます。

【図】パーシステンス層/ドメイン層アーキテクチャパターンの依存関係

かなり抽象的かつ感覚的な図ですので、大体の感触をつかんでいただければ良いのですが、
1つ言えることは、システムの論理的な階層である、ドメイン層とパーシステンス層は、
其々異なる役割を持った層ですので、お互いに依存が少ないほうが好ましいと思われます。
その点で言うとDomain ModelとData Mapperがお互いの層で依存関係が少なく済みます。

41 :
なんか最初から予備知識が
必要な話になってるけど
それだとレスがつけにくいと思う

>>3
>図書館やレンタルビデオの
>貸出管理をどう設計するか

くらいの話から始めればいいんじゃないの?

42 :
レンタルビデオをドメインモデリングでやるとしたら
ドメイン層にはまず
会員クラスがあってビデオクラスがある

貸出管理クラスで両者の情報を参照して貸出処理する
そのほか料金クラスや期日クラスも要るだろう

ここら辺はそんなに極端な差は出ないと思う

43 :
要件定義しろよ

44 :
>>42
>貸出管理クラスで両者の情報を参照して貸出処理する
おっと思いつきで書いちゃったけど
貸出の操作をするのはアプリ層か

ドメイン層では貸出の整合性を取るが
やり方はいろいろあると思う

45 :
>要件定義
・ビデオ(DVD/CD)の貸出を処理できる
 → 料金や期日ももちろん提示する
・ビデオが貸出中や貸出可能かどうか検索できる
・貸出期限を過ぎた会員を検索できる

必要最低限の要件はざっくりこんな感じ

もちろん実務だと会員が何百万人いて
DBの性能要件とかあるだろうが
お題であまり複雑にしても仕様がない

46 :
あ、会員やビデオの登録や更新
(CRUD)はもちろん必要

穴だらけだけどそこら辺は
みんなでつついてくれ

47 :
図が描けないのが辛いな

48 :
ユースケース


  CD/DVDを借りる
  CD/DVDを返す
  CD/DVDを借りパクする
店員
  店員登録
  店員削除
  ログイン
  ログアウト
  会員登録手続きをする
  会員退会手続きをする
  CD/DVDを借りる手続きをする
  CD/DVDを返す手続きをする
  CD/DVDを期限切れても返さない客に催促する

49 :
店員
  CD/DVDの状態取得
  CD/DVDの新規登録
  CD/DVDの削除

が無いと現在の状況がわからんのと
新しい商品の登録ができん

50 :
もっとユーザー要求に近いところから整理したほうがいいのでは?
システム構想ありきでユースケース書いてるように見えるが

51 :
期限や料金は貸出案件オブジェクトの属性にしたくなるな

52 :
>>50
お題は叩き台だから
具体的に要求を出してくれれば

現実にありそうな要求としてはたとえば
DVDの貸出回数を記録して
月間トップ10を出すとかね

53 :
>>51
その場合たとえば
期日クラスに問い合わせると
インスタンスを返してそれを
貸出側の属性に持たせるとか

54 :
データとしては

店員
会員
CD/DVD状態
貸出記録
返却記録

ぐらい?

55 :
>>3
このレスって10年ぐらい前に見た気がする
デジャヴュなのかありきたりすぎる話題なのか本当に過去にもあったものなのか
狐につままれてるみたいだ

56 :
新機軸も何もなくただ建てられただけで>>3-4みたいな
流れのままだとありきたりなクソスレに終わる


毎年春に新入社員が受ける教育のようなくだらなさ

57 :
実際ハロワとかの職業訓練ではjavaでレンタルビデオ店のシステムを作ろう
みたいのを一年かけてやる
で、書いたコードを手元に持ってて面接で見せるらしい

58 :
>>55
レンタルビデオの例は
リファクタリングの本に載ってるから
モデリングの題材として定番なんだよ

>>56
じゃあ新しい話題を振ればいいじゃん
ないなら定番になるのは仕様がない

59 :
設計思想とはいうものの
実際は実装に引っ張られるので漠然と語ることなんてなかなかない

余程大規模じゃない限り会社の特性がありそれによって実装に制約が生じる
その点を考慮しての要求設計がなければまともなものはできない

60 :
お題をもとに設計について議論しようとしてるスレ?
設計思想はあんまり関係ない?

もしそうなら
議論の対象を「CD/DVDの貸出」のユースケースに絞って
もう少し深く要件考えるといいんじゃないかな

貸せるかどうかの判定ルールだったり
レンタル価格の算定ルールだったり

61 :
>>60
>設計思想はあんまり関係ない?
1じゃないけど
別に好きな話題振ればいんじゃね?

>>40
でもこれに誰もレスしてないから
いきなり深い設計思想を語っても
言うほどみんな乗ってこないじゃん

62 :
設計思想なのにデザパタって書いてあるスレタイが悪い

63 :
>>54
顧客(特化: 会員/非会員)
店員
作品(属性: 保有数, 返却期限, 単価) (特化: CD/DVD)
→導出: 現在貸出中の数 & 貸出可能数
単品(属性: 識別子, 状態: 未貸出/未返却)
取引

64 :
個人的には>>40兄貴の講義にも興味があるけどな。
具体例を上げて解説して欲しいところではあるが。

65 :
>>61
そっか
「お題に沿って設計してみた」的なスレになれば有意義だと思うが
設計思想云々は設計思想って言葉を理解せずに使う人しかいないからゴミスレになる予感

66 :
>>62
少なくともデザパタと略す奴はクソ

67 :
機能一覧
  店員登録
  店員削除
  ログイン
  ログアウト
  会員登録
  会員退会
  CD/DVD貸出
  CD/DVD返却
  CD/DVD期限切れ
  CD/DVDの状態取得
  CD/DVDの新規登録
  CD/DVDの登録削除

こんなもんかな?

68 :
あ、データの編集ができないな

  店員編集
  会員編集
  CD/DVD編集

追加で

69 :
機能一覧
  店員登録
  店員編集
  店員削除
  ログイン
  ログアウト
  会員登録
  会員編集
  会員退会
  CD/DVD貸出
  CD/DVD返却
  CD/DVD期限切れ
  CD/DVDの状態取得
  CD/DVDの新規登録
  CD/DVDの編集
  CD/DVDの登録削除

こんなもんかな?

70 :
よく考えたらログインログアウトいらんね
削除ね

機能概要
 店員登録
  店員情報を店員Tblに登録する
 店員編集
  店員情報を編集する
 店員削除
  店員情報を削除(休眠)する
 会員登録
  会員情報を会員Tblに登録する
 会員編集
  会員情報を編集する
 会員削除
  会員情報を削除(休眠)する
 

71 :
機能概要
 CD/DVD貸出
  貸出情報を貸出tblに登録する
 CD/DVD返却
  返却情報を返却tblに登録する
 CD/DVD期限切れ
  期限切れの貸出情報を表示する
 CD/DVDの状態取得
  CD/DVD情報を表示する
 CD/DVDの新規登録
  CD/DVD情報をCD/DVDtblに登録する
 CD/DVDの編集
  CD/DVD情報を編集する
 CD/DVDの登録削除
  CD/DVD情報を削除(休眠)する

できた

72 :
俺はここまでで組めちゃうかも
オブジェクト指向設計とかいらね

73 :
>>72
成果物見せてくれよな~頼むよ~

74 :
>>73
これ、それぞれ設定画面作って
OKボタンの処理でDB操作するだけだわ
これ作ってもらわなわからんって言うなら
掲示板で設計の話は無理なのかもしれん

ちなみに俺もテキトーに考えたので抜けやらなんやらあってもわからん

75 :
機能概要
 CD/DVD紛失
  CD/DVD紛失情報をCD/DVD紛失tblに登録する

もいるかも

76 :
・要求設計や上流工程の本読んでるといつもそうだが、
実際に自分とは関係ない具体例出されると集中力が保てなくてすぐに
 眠くなってしまう。
・いや、実際に自分が手がけている案件だって同じだ、議論領域に対して
 正直な所興味が持てない。
・つまりプログラミングやアーキテクチャには興味があるが、
 ドメイン領域に対して学習意欲がわかないというかなんというか。

77 :
>>76
周りが見えてないから

なんで後から追加・変更するの?
とか起きないためには
受け取った要件定義書や設計書を
自分がその資料をデバッグできなければならない

ここで漏れがあったらこれで作成できますと言った自分にもある程度の責任はついてくる

俺が出した機能概要で君はソフトウェアを作れるの?
作れないなら足りないところを言って
後からアレがないコレがない騒がないでよ
これで見積りを出すから

って状況なら嫌でも興味が湧くだろ?

78 :
・次のクライアントへのインタビューを読み、
 設問に解答してください。

やったぜ。 者:変態糞土方 (8月16日(水)07時14分22秒)

昨日の8月15日にいつもの浮浪者のおっさん(60歳)と先日メールくれた汚れ好きの土方のにいちゃん
(45歳)とわし(53歳)の3人で県北にある川の土手の下で盛りあったぜ。
今日は明日が休みなんでコンビニで酒とつまみを買ってから滅多に人が来ない所なんで、
そこでしこたま酒を飲んでからやりはじめたんや。
3人でR舐めあいながら地下足袋だけになり持って来たいちぢく浣腸を3本ずつ入れあった。
しばらくしたら、けつの穴がひくひくして来るし、糞が出口を求めて腹の中でぐるぐるしている。
浮浪者のおっさんにけつの穴をなめさせながら、兄ちゃんのけつの穴を舐めてたら、
先に兄ちゃんがわしの口に糞をドバーっと出して来た。
それと同時におっさんもわしも糞を出したんや。もう顔中、糞まみれや、
3人で出した糞を手で掬いながらお互いの体にぬりあったり、
糞まみれのRを舐めあって小便で浣腸したりした。ああ〜〜たまらねえぜ。
しばらくやりまくってから又浣腸をしあうともう気が狂う程気持ちええんじゃ。
浮浪者のおっさんのけつの穴にわしのRを突うずるっ込んでやると
けつの穴が糞と小便でずるずるして気持ちが良い。
にいちゃんもおっさんの口にR突っ込んで腰をつかって居る。
糞まみれのおっさんのRを掻きながら、思い切り射精したんや。
それからは、もうめちゃくちゃにおっさんと兄ちゃんの糞Rを舐めあい、
糞を塗りあい、二回も男汁を出した。もう一度やりたいぜ。
やはり大勢で糞まみれになると最高やで。こんな、変態親父と糞あそびしないか。
ああ〜〜早く糞まみれになろうぜ。
岡山の県北であえる奴なら最高や。わしは163*90*53,おっさんは165*75*60、や
糞まみれでやりたいやつ、至急、メールくれや。
土方姿のまま浣腸して、糞だらけでやろうや。

79 :
↑上記「とうこう」者 : 変態糞土方の部分の
 「とうこう」がNGワードになっていたので削除しています。

<補足>
・クライアントの変態糞土方さんは、この経験を元に、
 「糞遊びの会」のサイトを新たに立ち上げたいと考えました。
・このサイトでは会員登録を行い、会員については年齢、身長、体重
 それから住所、性癖、空いている時間帯などを管理したいと考えています。
・このサイトでは会員/非会員などの間で掲示板でコミュニケーションを
 とるソーシャルメディアとして活用したいようです。
・また、会員同士ではメッセージをやり取りし、オフ会を開くきっかけ
 を作りたいそうです。

<設問>
・1: この記述を元に、クラス図、業務フロー図、アクティビティ図、
 ユースケース図/記述などを作成しなさい。

・2: 実装段階において活用できそうなデザインパターンについて
  解答しなさい。

・3: このシステムの問題点はどのようなところにあるか考え、
  実運用開始にあたって発生することが懸念されるインシデント
  及びその対応策について述べなさい。

80 :
あぁ^~速く回答まみれになろうぜ。
回答したいやつ。至急レスくれや。

81 :
まずは言い出しっぺがやれと

82 :
バージョンアップ時の設計について質問

今回バージョン1.0.0のアプリをバージョン1..0.1にしようとしています。
その時に1.0.0ではなかったソフトを1.0.1では導入しようと思っています

 ・1.0.0:アプリAのみ
 ・1.0.1:アプリA+別アプリB+テキストファイル

 ※ファイル通信を行っていたものがもともとアプリA
  バージョンアップでアプリAからファイル通信機能を無くし
  別アプリBにファイル通信機能を持たすことになっています

バージョンアップするときはアプリAの上書+アプリBの導入で良いのですが、
バージョンダウンする時アプリBとテキストファイルが1.0.0では不必要なので削除しないといけないです。

このようなとき、ファイルを削除するのであればバージョンを判断して削除したり削除しなかったりを
決める以外に判断材料はないでしょうか?
バージョンで判断して削除するような設計しようとしていたのですがバージョン自体はアプリAに埋め込まれているため
インストールをしたアプリのバージョン取得をできません
また、次回起動時に削除してしまえばいいのかと思っていたのですが、バージョンが古いアプリAだと別アプリBの存在を知らないため削除できません

インストール時に何かしら判断する方法をアドバイスほしいです
テキストファイルにはアプリBの処理の分岐処理に使うようなキーを書く予定で
これを上手く使えないかなと考えています

83 :
>>82
デスクトップアプリの話?

1つのアプリの中のコンポーネントとして
AとBとテキストファイルがあるという理解でいい?
スイート製品でアプリBのみのアンインストールや
アプリAのみのアンインストールやバージョンアップができるの?

内容からして前者だと思うけど
その場合AやBはアプリとは呼ばない気がする

84 :
>>82
一般的にバージョンダウン時は
インストール済みバージョンのアンインストーラを使ってアンインストールしてから
旧バージョンをインストールしてもらう

アンインストールせずに旧バージョンをインストールしようとしたら
新バージョンがインストールされてることを検知して
アンインストールするかどうかをユーザーに確認する

アンインストーラをキックして
アンインストール後に旧バージョンのインストーラに制御を戻すことも可能

85 :
>>83
デスクトップアプリです
前提:PC1の持つデータをPC2にインストールする
    バージョン変更のボタン1つのみ(バージョンアップ・バージョンダウンの個別ボタン無し)
     ※PC1が持つデータがただ古いか新しいかの違いのみ    

1つのアプリのコンポーネントとして〜というよりは
システム全体でAの実行ファイルとBの実行ファイルとテキストがあるって感じです

システムって言うと抽象化なのかな・・・?
あるシステムには今までは実行ファイルAしかなく、今度のアップデートからからは
実行ファイルAと実行ファイルBとテキストファイルになる

単体でのアップデートなどはできず
アップデートってすると前提にある様にPC1にあるデータを全てPC2に書き込む流れです

86 :
>>85
おーん、、、何やら変わったアプリだね….

それはいいとしてアップデート=バージョンアップだよね?
でアップデートする場合はPC1にあるデータをPC2に書き込むのはわかったけど
バージョンダウンする場合はPC2の実行ファイルAを古いバージョンにして
かつ不要な実行ファイルBとテキストファイルを削除したいってことでいい?

だとすれば実行ファイルAを古いバージョンにする時に
実行ファイルBとテキストファイルを削除すればいいと思うんだけど?
質問を理解できてないのかもしれんが
それが出来ない理由がいまいち分からん

87 :
>>86
アップデート=バージョンアップで問題なしです
やりたいことも、削除したいってことでOKです

あー今気づきました
ファイルAを古いバージョンにする時にこいつが古いバージョンだ!って判断するのが
どうやってすれば良いんだろうと悩んでるところです。。。

88 :
>>87
インストーラとかアンインストーラとかはあるんだよね??

1.0.1のAがインストール済みの環境で
1) 1.0.0のインストーラ/アンインストーラが起動された場合
対応バージョンより新しいのが入ってるのを検知して新バージョンのインストーラ/アンインストーラを使うように促す
(バージョンダウン時は新バージョンのアンインストールをしてから再度旧バージョンのインストーラを使ってもらう)

2) 1.0.1のインストーラ/アンインストーラが起動された場合
Bやテキストファイルの存在を知ってるので削除可能だよね?
バージョンダウンに直接対応したアンインストーラ兼インストーラを用意する場合も同じ

世の中一般のパッケージソフトはおおよそ上の仕組み使ってる
旧バージョンのインストーラが使えない状況で
バージョンアップ時に旧バージョンのAを退避しておく必要があるとかそういうことなのかな?

89 :
>>82
バージョニングが複雑になるときは

1. バージョンの記述を設定ファイルに外出しする
2. AとBと実行ファイルごとにバージョンを振る
3. バージョン変更するためのバッチや専用アプリを書く

上のどれかでだいたい行けるはず
番号が小さいほど導入の手間が少ない

90 :
>>82
とりあえずセマンティックバージョニングでググってこい

91 :
          ______
       ,;i|||||||||||||||||||||||||||||||ii;、         _/
     /||||||||||||||||||||||||||||||||||||||ii;、        \
  / ̄ ̄\||||||||||||||||||||||||||||||||||||ii;゙ヽ,      /
'" ̄ヽ     ヽ!!||||||||||||||||  ||||||||||!!"ヘ     < セマンティックageるよ
ヽ          ゙!!!||||||||||||  |||||||!!   iヽ── /
|||l            ゙゙ヽ、ll,,‐''''""     | ヽ||||||||| セマンティックageるよ
|||l     ____   ゙l   __   \|||||||||
||!'    /ヽ、     o゙>┴<"o   /\   |'" ̄| ホントの勇気 見せてくれたら
\  /  |ミミヽ──‐'"ノ≡- ゙'──''彡| |、 |   |
   ̄|    |ミミミ/" ̄ 、,,/|l ̄"'''ヽ彡|| |、/   / セマンティックageるよ
 ヽ、l|    |ミミミ|  |、────フヽ |彡l| |/  /_
  \/|l    |ミミミ| \_/ ̄ ̄フ_/  |彡|l/    ̄/ セマンティックageるよ
  \ ノ   l|ミミミ|  \二二、_/  |彡|      フ
    ̄\  l|ミミミ|    ̄ ̄ ̄  |メ/       \ トキメク胸に キラキラ光った
    | \ ヽ\ミヽ    ̄ ̄"'  |/        /
    /  \ヽ、ヾ''''ヽ、_____//       /_ バージョンをageるよ
  /  ヽ ゙ヽ─、──────'/|         ̄/
. /       ゙\ \     / / \__
   ───'''" ̄ ̄ ゙゙̄ヽ、__,,/,-'''" ̄   ゙''─

92 :
>>90
リファクタリングしただけかもしれんぞ
まあそうじゃなくてもその会社で決めたバージョニングスキームに従えばいいでしょ

93 :
>>92
「会社で決めた決めたバージョニングスキーム」が読みとれたのかい?
どっちにしても質問者はセマンティックバージョニング知らなそうだから、プラスになると思うよ

94 :
アナリシスパターンとデザインパターンの関連性
って対応表みたいなのあるかな?

95 :
>>94
どういう目的で関連や対応を知りたいの?

アナリシスパターンはデータモデルのパターンだから
デザインパターンとは基本的に関係ないよ

96 :
フリーでUMLデザインツールといえば、なにがおすすめですか?

97 :
astah

98 :
設計のご相談

あるソフトのバージョンアップをしたいと考えている
んでもってそのバージョンアップに伴い既存ファイルに新しいキーが追加される
その状況で考えて欲しいです

そのファイルは現在インストーラーが上書きすることになっているため新バージョンがリリースされる度に上書きされます
そのためキーの値を保持し続けることができません
(キーは書き換える可能性があるものです)

インストーラを変更させずにキーを保持し続ける方法無いでしょうか
キー変更をするためのバッチファイルを準備しようとは思っていますがそれを使ってなんとかならないものだろうか


1.0が現在のキーなし
1.1が新しくキー追加
1.2がキー追加などなくバージョンアップのとき
1.1でキー追加→バッチファイルを実行しキー値を変更する→1.2のバージョン上げるとキーがデフォルトに戻る

99 :
インストーラーを変更しない理由が見当たらないけど
インストーラーの仕様漏れをなんとかリカバリできないかと苦労してるって話なのかな?

100 :
>>99
そうです
普通に考えたらインストーラを上書きしないようにすることで解決すべきことなんでしょうが
それが今回何故かNGでそれをどうにか回避できないかと


100〜のスレッドの続きを読む
C++相談室 part148
ATL/WTL Part7
[RPA]PC自動化技術総合スレ[効率化] Part.6
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
Jenkins
構造化プログラミングはまだ必要ではないのか?
delphiで作った有名ソフトって何があるの?
オブジェクト指向ってクソかよPart5
シェルスクリプト総合 その31
Lisp Scheme Part40
--------------------
福岡のバス釣りショップ
ストフリ山積みWWWWWwwwwwwww
探偵!ナイトスクープ 2019/10/18
名古屋駅西口 牛たん焼 絆  旨すぎる!
オードリー・ヘップバーンって可愛いか?
ピアノ売って頂戴〜♪
鯖水煮缶スレ part28
結城友奈は勇者である-鷲尾須美の章-/-勇者の章-617ワッチョイIPなし
嫌儲民の条件決まった。年収200万以下、資産5万以下、MARCH未満、友達無、彼女(嫁)無、ハゲ、童貞。コレ全部満たさないカスは消えろ [682111245]
【はるたん】たなかけいを愛でるスレ【へーたん】part89
民進党ってゴミだよな!自分達で蓮舫を代表に決めたのに
【NRT】成田国際空港 65タミ【RJAA】
BCLワールドタムタムを語るスレ
【尚村透】失楽園 Part1【ガンガンJOKER】
【海で】京商 RCサーファー【波乗り】
◆◆◆スレッド作成依頼スレ★1291◆◆◆
天皇陛下がアニメをお見になるとしたら
【盛岡】コロナに伴う市税納付の猶予申請、記入例に「滞納太郎」 希望の事業者へ送付→不適切でしたとお詫び [ガーディス★]
【婦人部】学会青年部の性欲処理【ババア】
◆ 自毛植毛スレ21株目(国内クリニック専用) ◆
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼