内部設計はプログラムレベルの設計、プログラム設計はモジュールレベルの設計です。プログラムは分割して、モジュール単位で作成していきます。
含まれるという表現はちょっと違います。プログラム設計は独立した工程ですので。
たとえば受注のプログラムなら、それを入力、処理、出力などのモジュールに分割していきます。
プログラム設計は、内部設計に含まれるのですか?
miura
Posted in システム開発 |
No Comments »
排他制御のしくみのところをもう少しわかりやすくお願いします。
miura
・排他制御をしない場合
今、銀行口座Xに10万円入っていました。
1.Aさんは口座Xの残高を確認します。金額は10万円です。
2.同時期にBさんも口座Xの残高を確認します。金額は10万円です。
3.Aさんはそのまま口座Xに10万円入金しました。口座Xは20万円になりました。
4.Bさんもそのまま口座Xに20万円入金しました。口座Xは30万円になりました。
これは排他制御をしないために口座Xの金額が30万円になってしまいました。
・排他制御をした場合
今、銀行口座Xに10万円入っていました。
1.Aさんは口座Xの残高を確認します。10万円です。
2.同時期にBさんも口座Xの残高を確認しようとしますが、Aさんが使っているので待たされます。
3.Aさんはそのまま口座Xに10万円入金しました。口座Xは20万円になりました。
4.BさんはAさんの処理が終わったので、口座Xの残高を確認します。20万円です。
5.Bさんもそのまま口座Xに20万円入金しました。口座Xは40万円になりました。
これが正しい処理ですね。
Posted in システム開発 |
No Comments »
デッドロックはどうして発生するのか?
miura
デッドロックは、複数のトランザクション(処理)が複数の資源を利用するときに発生します。
例
1.トランザクション1が資源Aを利用するために占有ロックする。
2.トランザクション2が資源Bを利用するために占有ロックする。
3.トランザクション1が資源Bを利用したいが、トランザクション2が占有ロックしているので待ち状態になる。
4.トランザクション2が資源Aを利用したいが、トランザクション1が占有ロックしているので待ち状態になる。
トランザクション1とトランザクション2の両方で待ち状態になり、この先進めなく状態になります。これをデッドロックといっています。
Posted in システム開発 |
No Comments »
差分バックアップと増分バックアップのしくみがよくわからないです。
miura
・差分バックアップ
フルバックアップを取った時点から、変更されたデータのみをバックアップしていきます。
差分バックアップはバックアップの容量がだんだんと増えていきます。
ただし、復旧するときはフルバックアップと直前の差分バックアップの二つを使用すればデータを復旧できます。増分バックアップよりも復旧が早いです。
・増分バックアップ
前回バックアップを取ったところから、変更されたデータのみをバックアップしていきます。
増分バックアップは1回のバックアップ容量が差分バックアップよりも少なくてすみます。復旧するときは、フルバックアップと増分バックアップのすべてが必要なります。差分バックよりも復旧は遅いです。
Posted in システム開発 |
No Comments »
信頼度成長曲線でエラーが多発した場合はプログラムの品質が低いという説明でしたが、テストが厳しすぎるという可能性はないのですか?
miura
いいところに気がつきましたね。確かにテストが厳しすぎるという見方もできます。しかし、テストというものは厳しい方がいいのです。厳しければそれだけエラーを発見できるのですから、それだけ品質がよくなります。だから、テストは甘くなるよりは厳しくやった方がよいのです。
厳しいテストでエラーが多発するようであれば、それはやはり品質が悪いということになります。
Posted in システム開発 |
No Comments »
構造記述言語のところが難しくてよく理解できませんでした
miura
構造記述言語はマークアップ言語とも呼ばれており、いわゆるタグを使って文書やデータを記述していく方法です。HTMLのようにタイトル部分には<TITLE>タイトル</TITLE>というタグを記述していいきます。
SGMLは構造記述言語の元になっている言語です。そこからHTMLやXMLなどが派生していきました。HTMLは決められたタグしか使用することができませんが、SGMLやXMLは自分で独自のタグを作ることができます。<name>MIURA</name>などのタグを勝手に作れるのが特徴です。
Posted in システム開発 |
No Comments »
P154とP155のプログラム構造と木構造の仕組みがよくわからないんですけど
miura
これはC言語やJavaなどでプログラムを作成していくときに必要になる知識です。
現在のプログラムは構造化プログラミングと呼ばれていて、順次、選択、繰り返しの3つのパターンを組み合わせ作られています。順次=命令の実行 選択=条件によって分岐する 繰り返し=条件によって処理を繰り返す を組み合わせてプログラムを作成していきます。構造化プログラミングはGOTOレスとも言われており、GOTO文を書かないというのが特徴です。GOTO文を書かないことによってプログラムの保守性があがります。
木構造はデータの格納方法です。これはデータベースのインデックスに使われており、木構造によってデータをすばやく検索できるというメリットがあります。
Posted in システム開発 |
No Comments »
前に出てきたリポジトリと、今日出てきたリポジトリは同じ意味ですか?
miura
はい、そうです。システム開発で開発に関する情報を管理するデータベースをリポジトリといいます。
Posted in システム開発 |
No Comments »
問題集P69 4-8 問7がわかりません。
miura
以下に解説をしておきました。
1レコード
1 iの初期値は0なので、i+1→iを実行するとi=1になる。(ここはiの値が1つずつ増えていきます)
2 i=3じゃないので、実行されない
3 i=3じゃないので、実行されない
xxxx xxxx xxxx xxxx が印字される
2レコード
1 今iの値が1なので、i+1→iを実行するとi=2になる。
2 i=3じゃないので、実行されない
3 i=3じゃないので、実行されない
xxxx xxxx xxxx xxxx が印字される
3レコード
1 今iの値が2なので、i+1→iを実行するとi=3になる。
2 i=3なので、線を引く
———————- が印字される
3 i=3なので、iを1にする。
xxxx xxxx xxxx xxxx が印字される
4レコード
1 今iの値が1なので、i+1→iを実行するとi=2になる。
2 i=3じゃないので、実行されない
3 i=3じゃないので、実行されない
5レコード
1 今iの値が2なので、i+1→iを実行するとi=3になる。
2 i=3なので、線を引く
———————- が印字される
3 i=3なので、iを1にする。
xxxx xxxx xxxx xxxx が印字される
と繰り返していきます。
Posted in システム開発 |
No Comments »
ロックについて詳しく教えてください。
miura
ロックは、トランザクションがプログラム中にデータベースのデータを参照するときに排他制御を行うためのものです。
トランザクションがデータAを必要としたときは、データベースでデータのAにロックというのをかけます。ロックがかかると他のトランザクションはそのデータを参照することができなくなります。
そして、データAのロックが解除されると、他のトランザクションはデータAを参照することができるのです。
他のトランザクションでデータを使用している最中にデータを参照してしまうと、データの値に矛盾が起きてしまうので。これを防ぐためにロックを行います。
Posted in システム開発 |
No Comments »