ソフトウェア工学に関する記事の目次

ソフトウェア工学の記事に関する目次を作成したよ。


【ソフトウェア工学をつつくシリーズ(初心者用)】

テーマ : 情報処理技術
ジャンル : コンピュータ

ソフトウェア工学をつつく6ー1970年代までの成果。やったね!

1970年代はソフトウェア工学にとって大豊作の年代だったピヨ。1960年代後半のダイクストラ達が提唱した構造化プログラミングを発展する形でどんどん色々なものが考えられたんだ。1960年代後半から1980年までの成果は次の通りだピヨォッ


【方法論】
  • トップダウンアプローチ
  • データ指向アプローチ
  • 抽象化とデータ隠蔽
  • 抽象データ型
  • 段階的詳細化
  • 構造化
  • プログラムの分割と統合
  • プログラムのモジュール化

【設計技法】
  • 形式的仕様技術
  • 部分機能分割法
  • 構造化分析
  • 構造化設計
  • 複合設計
  • ダイクストラ法
  • ジャクソン法
  • ワーニエ法
    【プログラミング技法】
    • 構造化プログラミング
    • 構造化コーディング
    • トップダウンプログラミング

    【テスト技法】
    • モジュール集積テスト
    • ブラックボックステスト
    • ホワイトボックステスト
    • 動的/静的テスト

    【管理技法】
    • 品質管理技法
    • 工程管理技法


    うーん凄い成果だ!次回からは個々につついていくピヨ。楽しみにしてね。

    テーマ : 情報処理技術
    ジャンル : コンピュータ

中の人の徒然草60

今日は仕事が休みだったので一日中プログラミングに浸りました。その中で感じたのですがやっぱりC++/CLIは不遇ですね。まず日本語の資料がないし、聞くところによるとLINQに関する言語機能が今のところなく、対応する予定もないそうです。それならば.NET系言語の意味が薄れます。もちろん、ライブラリを無理やり使うことも可能ですが、それならばF#、IfronRuby、IronPythonでもよいわけです。MSはもっとC++/CLIに力を入れて欲しいと願わずには居られません。
明日はわんくま同盟開催のC#Dayなのでこのブログは基本的にお休みします。また、明後日会いましょう。

テーマ : 裏事情
ジャンル :

C++/CLIを咥えてLINQをつつく0−まずは簡単なところから。本当に簡単?

今回はLINQをつつくピヨ。この記事はLINQをつつく1−IEnumerableから始まるLINQ♪の記事と連動しているから詳しい説明はそっちを見てね。
じゃあ早速シンプルなコードご覧あれ!


#pragma once

using namespace System;
using namespace System::Collections::Generic;
//System.Core.dllへの参照を自分で追加する必要あり(泣き
using namespace System::Linq;

ref class Wankuma {
public:
    static bool Where(String^ name) {
        return name->Length > 5;
    }

    static String^ Order(String^ name) {
         return name;
    }

    static String^ Select(String^ name) {
        return name;
    }
};

int main(array< System::String ^> ^args) { 
    array< String^>^ wankumas = gcnew array< String^> {
        "中博俊さん",  	"じゃんぬねっとさん",
        "夏椰さん", "なおこ(・∀・)さん",
        "まゆりんさん", "はなおか じったさん"
    };

    //WHERE句を実行
    IEnumerable < String^ > ^ iwankuma = 
        (IEnumerable< String^ > ^)wankumas;
    Func< String^, Boolean > ^ func = gcnew 
        Func< String^ ,Boolean > (Wankuma::Where);
    IEnumerable< String^ > ^ wresult = 
        Enumerable::Where< String^ > (iwankuma, func);

    //ORDER句を実行
    Func< String^, String^ > ^ func1 = gcnew 
        Func< String^, String^ > (Wankuma::Order);
    IEnumerable< String^ > ^ oresult = 
        Enumerable::OrderBy< String^, String^ > (wresult, func1);

    //SELECT句を実行
    Func< String^, String^ > ^ func2 = 
        gcnew Func <  String^, String^ > (Wankuma::Select);
    IEnumerable <  String^ > ^ result = 
        Enumerable::Select <  String^, String^ > (oresult, func2);

    //結果を出力
    Console::WriteLine(L"名前が五文字以上のわんくま同盟の方は・・・");
    for each (String^ str in result) Console::WriteLine(str);
    return 0;
}


正直言っていい?HTMLではこんな大量のC++/CLIプログラムは辛い・・・
それはさておき、このコードはね・・・おっと、詳しい説明は
LINQをつつく1−IEnumerableから始まるLINQ♪
を見てね。疲れた・・・

テーマ : プログラミング
ジャンル : コンピュータ

VB.NETを咥えてLINQをつつく0−まずは簡単なところから。

今回はLINQをつつくピヨ。この記事はLINQをつつく1−IEnumerableから始まるLINQ♪の記事と連動しているから詳しい説明はそっちを見てね。
じゃあ早速シンプルなコードご覧あれ!


Imports System
Imports System.Linq
Imports System.Collections.Generic

Class LinqSample

    Shared Sub Main()
        Dim wankumas() As String = New String() { _
                "中博俊さん", "じゃんぬねっとさん", _
                "夏椰さん", "なおこ(・∀・)さん", _
                "まゆりんさん", "はなおか じったさん"}
        Dim result As IEnumerable(Of String) = From name In wankumas _
                                            Where name.Length > 5 _
                                            Order By name _
                                            Select name
        Console.WriteLine("名前が五文字以上のわんくま同盟の方は・・・")
        For Each Str As String In result
            Console.WriteLine(Str)
        Next
    End Sub

End Class


このコードはね・・・おっと、詳しい説明は LINQをつつく1−IEnumerableから始まるLINQ♪ を見てね。

テーマ : プログラミング
ジャンル : コンピュータ

C#を咥えてLINQをつつく0−まずは簡単なところから。

今回はLINQをつつくピヨ。この記事はLINQをつつく1−IEnumerableから始まるLINQ♪の記事と連動しているから詳しい説明はそっちを見てね。
じゃあ早速シンプルなコードご覧あれ!


using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args) {
        string[] wankumas = new string[] {
                "中博俊さん",  	"じゃんぬねっとさん",
                "夏椰さん", "なおこ(・∀・)さん",
                "まゆりんさん", "はなおか じったさん"
            };
        IEnumerable result = from name in wankumas
                                     where name.Length > 5
                                     orderby name
                                     select name;
        Console.WriteLine("名前が五文字以上のわんくま同盟の方は・・・");
        foreach (string str in result)
            Console.WriteLine(str);
    }
}


このコードはね・・・おっと、詳しい説明は LINQをつつく1−IEnumerableから始まるLINQ♪ を見てね。

テーマ : プログラミング
ジャンル : コンピュータ

LINQをつつく1−IEnumerableから始まるLINQ♪

前回 概要を見たから今回はもっとつついていくピヨ♪ LINQの一番簡単な例はIEnumerableインタフェースを使ったLINQ to Objectのサンプルだピヨォッ。じゃあ、各言語の○○を咥えてLINQをつつくシリーズで書くピヨ。書き終わったらここにリンクを張るからちょっと待ってね。


お好きな言語でどうぞ♪


リンク先のサンプルプログラムの内容は、5文字以上の名前を整列して出力しているピヨ。
C#、VB.NETでは言語が新しいキーワードを用意しているのが一目瞭然ピヨ。 selectfromwhereorderby といったSQL丸出しのキーワードがあるよね。C#とVB.NETはね。 このようなキーワードを標準クエリ演算子と呼ぶピヨ。 そして標準クエリ演算子を使用した式の事をクエリ式 と呼ぶピヨ。C#とC++/CLI言語でLINQのサポートをしている事が大事だとわかるよピヨね。 これが何を意味するとかとか、どうやって実現しているかなどの深い話しは難しいから後でするピヨ。楽しみにしてね♪

テーマ : プログラミング
ジャンル : コンピュータ

C++/CLIをつつく28−Null許容型。白黒つけられない時もある。

今回はNull許容型をつつくピヨ。Null許容型というのは、その名の通りNullを許す値型の事なんだ。値型というのは、System.Int32、System.Int16、System.Booleanなどのシステム型(組み込み型)の事なんだ。じゃあなんでこんなのが必要なのかというと、主な理由はDataBaseでNull値を結構使うからなんだ(トラブルの元だけどね)Null値を使うことの意義について分かりにくいと思うので、例を挙げて説明するピヨ。
例えば、付き合っている異性からいきなり「私と結婚する?YesかNoで答えなさいぃ!」と言われたら慌てるよね?そりゃ、好きだから付き合っているんだけど、いきなり結婚といわれてもYesと言えないし、かといって、将来結婚するかもしれないからNoと断言できないし・・・こんな白黒つけられないSystem.Boolean型な時は、現状ではどちらとも言えない(Null)と答えよう♪それがNull許容型なんだ。 こんな時はこう宣言するといいピヨ。


//結婚するかまだわからない
Nullable< System::Boolean >^ marry = nullptr;


Nullable< 値型名 >^ で宣言するピヨ。
これでゆっくりと結婚について考えられるピヨ♪そして時が経てば・・・


//時が経って
Console::WriteLine( "私の答えは・・・{0}だ。", marryFlag->Value );
if ( marryFlag->HasValue == true ) {
    Console::WriteLine( "さあどっち?" );
    Console::WriteLine( "私の答えは・・・{0}だ。", marryFlag->Value );
}
else {
    Console::WriteLine( "優柔不断な人ね!" );
}


この二人のプログラムをつつこう♪まずNullかどうかを判定するのは HasValueピヨ。このプロパティの値がTrueならばnullでなくて、Falseならばまだnullなんだ。 Null許容型を扱う際にはHasValueをチェックしよう。 まだ決断していないかもしれないからね。チェックしないと・・・

InvalidOperationException
Null 許容のオブジェクトには値を指定しなければなりません。

って言われるよ。二人の仲は破談だね。最初に言ったけどbool型以外の値型もNull許容型が使えるピヨ。この場合はまだ決定してない値と考えるといいピヨ。 例えば、給与の手取り額がまだわからない時がある。そんな時はNull許容型を使用しよう。 他にもNull許容型を使用する理由として、指定されたのか判定するためという事もあるんだ。もし、0とかだと、0と指定したのか、そもそも指定していないのかがわからないピヨ。そんな時はNull許容型の出番だピヨ。
ただし、Null許容型はパフォーマンスが劣化 する事に注意してね。だから多用せずに絶対に必要なときだけ使用しよう。インドリからのお願いだよ。

テーマ : プログラミング
ジャンル : コンピュータ

C#をつつく28−Null許容型。白黒つけられない時もある。

今回はNull許容型をつつくピヨ。Null許容型というのは、その名の通りNullを許す値型の事なんだ。値型というのは、int、short、boolなどのシステム型(組み込み型)の事なんだ。じゃあなんでこんなのが必要なのかというと、主な理由はDataBaseでNull値を結構使うからなんだ(トラブルの元だけどね)Null値を使うことの意義について分かりにくいと思うので、例を挙げて説明するピヨ。
例えば、付き合っている異性からいきなり「私と結婚する?YesかNoで答えなさいぃ!」と言われたら慌てるよね?そりゃ、好きだから付き合っているんだけど、いきなり結婚といわれてもYesと言えないし、かといって、将来結婚するかもしれないからNoと断言できないし・・・こんな白黒つけられないbool型な時は、現状ではどちらとも言えない(Null)と答えよう♪それがNull許容型なんだ。 こんな時はこう宣言するといいピヨ。


'結婚するかまだわからない
bool? marryFlag = null;


値型名? 変数名で宣言するピヨ。
これでゆっくりと結婚について考えられるピヨ♪そして時が経てば・・・


//時が経って
Console.WriteLine( "私の答えは・・・{0}だ。", marryFlag.Value );
if ( marryFlag.HasValue == true ) {
    Console.WriteLine( "さあどっち?" );
    Console.WriteLine( "私の答えは・・・{0}だ。", marryFlag.Value );
}
else {
    Console.WriteLine( "優柔不断な人ね!" );
}


この二人のプログラムをつつこう♪まずNullかどうかを判定するのは HasValueピヨ。このプロパティの値がTrueならばnullでなくて、Falseならばまだnullなんだ。 Null許容型を扱う際にはHasValueをチェックしよう。 まだ決断していないかもしれないからね。チェックしないと・・・

InvalidOperationException
Null 許容のオブジェクトには値を指定しなければなりません。

って言われるよ。二人の仲は破談だね。最初に言ったけどbool型以外の値型もNull許容型が使えるピヨ。この場合はまだ決定してない値と考えるといいピヨ。 例えば、給与の手取り額がまだわからない時がある。そんな時はNull許容型を使用しよう。 他にもNull許容型を使用する理由として、指定されたのか判定するためという事もあるんだ。もし、0とかだと、0と指定したのか、そもそも指定していないのかがわからないピヨ。そんな時はNull許容型の出番だピヨ。
ただし、Null許容型はパフォーマンスが劣化 する事に注意してね。だから多用せずに絶対に必要なときだけ使用しよう。インドリからのお願いだよ。

テーマ : プログラミング
ジャンル : コンピュータ

VB.NETをつつく28−Null許容型。白黒つけられない時もある。

今回はNull許容型をつつくピヨ。Null許容型というのは、その名の通りNullを許す値型の事なんだ。値型というのは、Integer、Short、Booleanなどのシステム型(組み込み型)の事なんだ。じゃあなんでこんなのが必要なのかというと、主な理由はDataBaseでNull値を結構使うからなんだ(トラブルの元だけどね)Null値を使うことの意義について分かりにくいと思うので、例を挙げて説明するピヨ。
例えば、付き合っている異性からいきなり「私と結婚する?YesかNoで答えなさいぃ!」と言われたら慌てるよね?そりゃ、好きだから付き合っているんだけど、いきなり結婚といわれてもYesと言えないし、かといって、将来結婚するかもしれないからNoと断言できないし・・・こんな白黒つけられないBoolean型な時は、現状ではどちらとも言えない(Null)と答えよう♪それがNull許容型なんだ。 こんな時はこう宣言するといいピヨ。


'結婚するかまだわからない
Dim marryFlag As Nullable(Of Boolean) = Nothing


Nullable(Of 値型名)で宣言するピヨ。
これでゆっくりと結婚について考えられるピヨ♪そして時が経てば・・・


'時が経って
If marryFlag.HasValue = True Then
    Console.WriteLine("さあどっち?")
    Console.WriteLine("私の答えは・・・{0}だ。", marryFlag.Value)
Else
    Console.WriteLine("優柔不断な人ね!")
End If


この二人のプログラムをつつこう♪まずNullかどうかを判定するのは HasValueピヨ。このプロパティの値がTrueならばNullでなくて、FalseならばまだNullなんだ。 Null許容型を扱う際にはHasValueをチェックしよう。 まだ決断していないかもしれないからね。チェックしないと・・・

InvalidOperationException
Null 許容のオブジェクトには値を指定しなければなりません。

って言われるよ。二人の仲は破談だね。最初に言ったけどBoolean型以外の値型もNull許容型が使えるピヨ。この場合はまだ決定してない値と考えるといいピヨ。 例えば、給与の手取り額がまだわからない時がある。そんな時はNull許容型を使用しよう。 他にもNull許容型を使用する理由として、指定されたのか判定するためという事もあるんだ。もし、0とかだと、0と指定したのか、そもそも指定していないのかがわからないピヨ。そんな時はNull許容型の出番だピヨ。
ただし、Null許容型はパフォーマンスが劣化 する事に注意してね。だから多用せずに絶対に必要なときだけ使用しよう。インドリからのお願いだよ。

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人が多いので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (6)
C++ (10)
C# (36)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (10)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (1)
WPF (0)
WF (0)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター