���͂���݌v�ւ̃��f���ϊ��Ȃǂɂ‚����F�I�u�W�F�N�g�w���̐��E�i8�j

» 2005�N02��16�� 12��00�� ���J
[�͍����j�C�i�L�j�I�u�W�F�N�g�f�U�C��������]

�@���z�ƃA���O�U���_�[�iChristopher Alexander�j�͖��O�̂Ȃ��i���iQWAN�j�����z�Ŏ��H���邽�߂̋Z�@�Ƃ��āu�p�^�[������v��񏥂��܂����B��6��u���O�̂Ȃ��i���ƃp�^�[�������v�ł͂���QWAN�ɂ‚��āA��7��́u�p�^�[���ƃp�^�[����������v�Ƒ肵�āA�p�^�[������̏Љ�Ƃ��ꂪ�\�t�g�E�F�A�̐��E��2�咪���������N���������Ƃ����b�����܂����B�f�U�C���p�^�[���Ȃǂ́u�\�t�g�E�F�A�p�^�[���v�ƃP���g�E�x�b�N�������񏥂���XP�ieXtreme Programming�j���͂��߂Ƃ���u�A�W���C���J���v�̃��[�c�́A���͂��̃A���O�U���_�[�̃p�^�[�����ꂾ�����̂ł��B

�@����͘b���ς��āu���͂Ɛ݌v�v�ɂ‚��čl���Ă݂����Ǝv���܂��B�I�u�W�F�N�g�w�����́E�݌v�ƌĂ΂��悤�ɃV�X�e���J���ł͕��͂Ɛ݌v�ׂ͗荇�킹�ł����A�u���́ianalysis�j�v�Ɓu�݌v�idesign�j�v�͖{���܂������ʂ̊T�O�ł���A���̊Ԃɖ����̃M���b�v�������Ă��܂��c�c�B

�\�����[�V�����Ƃ͖��̉�����

�@�V�X�e���J���̐��E�ł̓\�����[�V�����Ƃ������t���悭�g���܂��BSIer�̎d���͌ڋq�Ƀ\�����[�V������񋟂��邱�Ƃł��B�Ƃ���ł��́gsolution�h�Ƃ������t�̖{���̈Ӗ��́u���ɑ΂��������A�𓚁v�ł��B�ڋq�̃r�W�l�X���H��̖�������������̂��\�����[�V�����ł��B�ڋq�̃r�W�l�X��̖��F�����Ȃ��\�����[�V�����p�b�P�[�W���Ă��邱�Ƃ͌ڋq�ɂƂ��Ė��Ӗ��ł��B

�@�u�r�W�l�X�Ƃ͌ڋq�̑n���ł���v�Ƃ̓s�[�^�[�E�h���b�J�[�̗L���Ȍ��t�ł��B�r�W�l�X�̖ړI�͗����ɑ剻�ł͂Ȃ��A�����͌ڋq�����̌��ʂƂ��Čォ��t���Ă�����̂ł��B�]���ăr�W�l�X�̖{���̖ړI���ڋq�����ɂ���Ȃ�A���V�X�e���͓�����̃r�W�l�X�ΏۂƂȂ�ڋq�i�Ԑڌڋq�j����������T�|�[�g������̂łȂ���΂Ȃ�܂���B���̊Ԑڌڋq��SIer����͌ڋq�i���ڌڋq�j�̂���Ȃ�ڋq�ł����Ē��ڌ����܂��񂪁A�\�����[�V�������l���邤���ōł��d�v�ȗv�f�ł��B�‚܂�Ԑڌڋq�̖��������ڌڋq�̖����ɂ‚Ȃ���킯�ł��B

ALT �}1 �ڋq�̌ڋq������ڎw��

�@�ڋq�������������邽�߂Ƀr�W�l�X�̌����E�i������̂��߂̉�����͂��낢��l�����܂��B���V�X�e���ɂ�����������i�Ƃ��ċ��͂ł��肢�܂�s�Œ��ł��B�]���ď��V�X�e���\�z�̑O�ɂ܂��r�W�l�X�����̂��߂ɉ������ׂ����͉��ł��邩�iwhat�j����X�^�[�g����K�v������܂��B���𕪐͂���΂��̉�����͂����‚��l���邱�Ƃ��ł��܂��B�����������邽�߂̃\�����[�V�����ƂȂ���V�X�e����݌v����ihow�j�̂���v�ȑI������1�‚ł��B

ALT �}2 �\�����[�V�����͖��̉�����

�I�u�W�F�N�g�w�����́E�݌v

�@�I�u�W�F�N�g�w���ɂ��J���v���Z�X�𑍏̂���OOAD�iObject Oriented Analysis & Design�j�ƌĂт܂��B����͂��̂܂܃I�u�W�F�N�g�w�����́E�݌v�Ɩ󂳂�Ă��܂��BOOAD�̋�̓I�ȃv���Z�X�͕W��������Ă͂��܂��񂪁A���ʕ���UML�ŕ\�L����̂���ʓI�ł��B�I�u�W�F�N�g�w���ɂ���ʓI�ȊJ���v���Z�X�����Ɏ����܂��B

�v����`

�@���̈�E�Ɩ��𕪐͂��A�V�X�e�������ׂ��͈͂𒊏o���ėv����`�܂��͗v���d�l�Ƃ��Ă܂Ƃ߂�B�v���ɂ͋@�\�v���ƃp�t�H�[�}���X��M�����Ȃǂ̔�@�\�v��������A�@�\�v���̓��[�X�P�[�X���f���ŕ\���B��@�\�v���͈�ʓI�ɂ�UML�ŕ\�����Ƃ��ł����A�ʏ�̕��͂ŕ\���B

����

�@���[�X�P�[�X���ƂɁA������I�u�W�F�N�g�̐��E�Ŏ������邽�߂̃I�u�W�F�N�g�𒊏o���AUML�̃N���X�}�A���ݍ�p�}�Ȃǂŕ��̓��f�����쐬���܂��B���̓��f���͗v���̗������ړI�ŁA�����̂��Ƃ͂܂��l���܂���B

�݌v

�@���̓��f�����C���v�b�g�Ƃ��A�J���‹��Ǝ��s�‹��̐���̉��ɂǂ̂悤�ɃV�X�e���Ƃ��Ď������邩��݌v���f���Ƃ��ĕ\�����܂��B�݌v���f�������̓��f���Ɠ�����UML�̃N���X�}�A���ݍ�p�}���ŕ\�����܂��B���̓��f����UML�̃_�C���O�����͓����ł����A�݌v�ł͎������@��\�����܂��B

����

�@�݌v���f�����J���‹��̐���̉��Ƀv���O���~���O���A���s�‹��ʼnғ��”\�ȃv���O�������쐬���܂��B

��ƍH�� �v����` ���� �݌v ����
��ƖړI
�i�쐬���f���j
�v�����f�� ���̓��f�� �݌v���f�� �������f��
��v���ʕ�
�i��̗�j
���[�X�P�[�X�} �N���X�}
���ݍ�p�}
�N���X�}
���ݍ�p�}
�\�[�X�R�[�h
�v���O�����@
�I�u�W�F�N�g�w���ɂ��J���H���T�v

���f���ϊ���what-how�A��

�@�J���v���Z�X�̓��f���ϊ���Ƃ̘A���ł��B�J���̊e�H���ŃC���v�b�g�ƂȂ郂�f����ϊ����Đ��ʕ��ƂȂ郂�f�����쐬���܂��B���̐��ʕ��͎��̊J���H���̃C���v�b�g�ƂȂ�킯�ł��B���f���Ƃ͗^����ꂽ����P�������ĕ\��������̂ł��B�H���ɓn����郂�f���͉����������̂������̎��_�̔F�����x���ŕ\��������̂ł��B�]���āA�e�H���̍�Ƃ͑O�H���ł̔F�������H���ŗ����ł��郂�f���ɕϊ����邱�Ƃł��B�^����ꂽwhat��how�ɕϊ����邱�Ƃł��B���ʕ��ł���how�͎��H����what�ƂȂ�A�J���H����what�|how���f���ϊ��̘A���ł���Ƃ������Ƃ��ł��܂��B

ALT �}3 ���f���ϊ���what�|how�A��

�u���́v�Ɓu�݌v�v�̌��t�̈Ӗ�

�@�����ň�x�u���́v�Ɓu�݌v�v�Ƃ������t�̖{���̈Ӗ����l���Ă݂܂��傤�B���͂Ƃ������t�̈Ӗ��́A�L�����i��4�Łj�ɂ���

�@���́ianalysis�j���i1�j���镨���𕪉����āA����𐬗������Ă��鐬���E�v�f�E���ʂ𖾂炩�ɂ��邱�ƁB

�Ƃ���܂��B���Ƃ��Ɖp��́ganalysis�h�̖��ł����p�a���T�i�v���O���b�V�u�p�a�����T�i��3�Łj�����v�ȈӖ����E���o���Ɓu���́A�����A��́v�Ƃ���܂�

�@���ɁA�݌v�Ƃ������t�̈Ӗ��́A�L�����ɂ���

�@�݌v�iplan;design�j���i1�j����ړI����̉������ƁB����E�H���Ȃǂɓ���A�H��E�~�n�E�ޗ�����э\����̏��_�Ȃǂ̌v��𗧂Đ}�ʂ��̑��̕����Ŗ������邱��

�Ƃ���܂��B���Ƃ��Ɖp��́gdesign�h�̖��ł��Banalysis�͖����ł���design�͖����Ɠ����������P��ł��B�p�a���T�����v�Ȗ����̈Ӗ����E���o���Ɓu�i1�j�݌v�}�A�i2�j�}�āA�i3�j�v��v�Ƃ���܂��B

�Ȋw�ƍH�w

�@���͂͑Ώۂ𕪉����ĒP�������{�������ɂ߂邱�Ƃł���A�݌v�͐l�H�����������邽�߂Ƀ��f������邱�Ƃł��B�u���͂Ɛ݌v�v���u�Ȋw�ƍH�w�v�Ƃ������_�ōl���Ă݂܂��傤�B

�@�Ȋw�iscience�j�͑傫���͎��R�Ȋw�n�Ɛl���E�Љ�Ȋw�n�ɕ����邱�Ƃ��ł��܂��B�Ȋw�̊�{�I���@�͕��G�ŗ���������ȑΏۂ�P���ȍ\���v�f�ɕ������A�������ꂽ�ꕔ�������o���Đ����𒲂ׂđS�̂����̏W�ςƂ��ė������邱�Ƃł��B�����̐؂蕪�����@�ɂ�藝���͈قȂ�܂��B

�@�v���g���́u�p�C�h���X�v�i����ߕv��A��g���Ɂj�̒��ŁA��l���ł���\�N���e�X�͂��̖̂{����l�ɘb������l�����肷��̂Ɂu�����Ƒ����v�Ƃ���2�‚̕��@�̗L����������Ă��܂��B�u�����v�Ƃ́u���l�ɂ���΂��Ă�����̂𑎊ς��āA���������1�‚̖{���I�ȑ��ւ܂Ƃ߂邱�Ɓv�ŁA����Ƃ͋t�Ɂu�����v�Ƃ́u���R�{���̕��߂ɏ]���Đ؂蕪����\�͂������A�����Ȃ镔�������A����ȓ����̂悤�Ȃ����ł��킵�Ă��܂����Ǝ��݂邱�ƂȂ��v���܂��������₷�������ɐ؂蕪���邱�Ƃł��B



�@���̕��@�͕��͂̊�{�I�ȕ��@�A���邢�͉Ȋw�̊�{�I�ȕ��@�Ƒ��ʂ�����̂ł��B�‚܂蕪�͂Ƃ͂��̖̂{���𑨂��邱�Ƃ��ړI�ł���A���̂��߂ɂ͑Ώۂ��A���R�ɋt��킸�����ɂ��܂��P���ȍ\���v�f�ɐ؂蕪���邩���d�v�ł��B

�@����A�H�w �iengineering�j �͕����ł��B�l�H������邱�Ƃł��B������x���G�ȕ�����邽�߂ɂ͐݌v���K�v�ł��B�‚܂�A���͂͑Ώۂ𕪉����邱�Ƃɂ��P�������Ă��̖{���𗝉����邱�Ƃ��ړI�ł���A�݌v�͐l�H������������̂��ړI�ł��B���͂̑Ώۂ͎��R���ۂł��Љ�ۂł����邢�͐l�H���ł��\���܂���B���͑Ώۂ����R���ۂȂ番�͎͂��R�Ȋw�̔��e�i�͂񂿂イ�j�ŁA�Љ�ۂȂ�Љ�Ȋw�̔��e�ł��B���͂��Ȋw�iscience�j�̔��e�ł���̂ɑ΂��āA�݌v�͍H�w�iengineering�j�̔��e�ƍl���邱�Ƃ��ł��܂��B

ALT �}4 �Ȋw�ƍH�w

�@�\�t�g�E�F�A�J���ɘb��߂��Ȃ�A�傫���͕��͂̑Ώۂ��r�W�l�X�ł���A�݌v�̑Ώۂ͍������ׂ��l�H���ł�����V�X�e���ł��B�r�W�l�X�̕��͎͂��R�Ȋw�ł͂Ȃ��Љ�Ȋw�̔��e�ɓ�����̂ł���A�V�X�e���J���ɂ����ėv����`���s�����߂̕��͍�Ƃ͕��Ȍn�̐l�A�v����`�����Ƃɍs���݌v��Ƃ͍H�w�n�̐l�����ӂƂ��镪�삩������܂���ˁB


�@����̓V�X�e���J���v���Z�X�Łu���́E�݌v�v�Ɨׂ荇�킹�Ŏg���邪�A�{���܂������قȂ�T�O�ł���u���́ianalysis�j�v�Ɓu�݌v�idesign�j�v�ɂ‚��čl���Ă݂܂����B���͕͂��G�ŗ�������ȑΏۂ�P���ȍ\���v�f�ɕ������Ė{�������ɂ߂�Ȋw�iscience�j�̔��e�ŁA�݌v�͐l�H������������H�w�iengineering�j�̔��e�ł��B�V�X�e���J���ŕ��͂Ɛ݌v�̊Ԃɂ͑傫�ȃM���b�v������A���ۂ��̃��f���ϊ��͑�ςȍ�ƂŁA�P���ɋ@�B�I�ɂł�����̂ł͂���܂���B��w�̊w���ł����Ε��͂͑Ώۂ����R���ۂȂ痝�w���A�Ώۂ��Љ�ۂȂ�Љ�Ȋw�n�̊w���A�݌v�͍H�w�����炢�̍�������ł��傤���B���H�w���Ƃ����Ȋw�ƍH�w�̋��n���I�Ȋw��������܂����A���͂���݌v�ւ̕ϊ���Ƃ͂��̔��e�ɓ�����̂ł��B

�@����́u���ނƕ����v�Ƃ����e�[�}�ōl���Ă݂����ƍl���Ă��܂��B���퐶���ł��A���邢�̓V�X�e���J���ōs�����f�����O��Ƃɂ����̗ގ�����2�‚̊T�O���\�ꍬ�����邱�Ƃ�����܂��ˁB�ǂ̂悤�ɈႤ�̂ł��傤���H

�@�Ȃ��A���݁A�M�Ҏ�ẪI�u�W�F�N�g�w������I�[�v���R�[�X���J�Â��Ă��܂��B�ڍׂ��L����ЃI�u�W�F�N�g�f�U�C���������̃z�[���y�[�W�����Q�Ƃ��������B�F���܂Ƃ���ł��邱�Ƃ��y���݂ɂ��Ă��܂��B

�v���t�B�[��

�͍����j�i���킢�������j

�@����w���w�����w�ȑ��ƁA���{���j�V�X������Ђɂă��C���t���[����OS�ێ�A���\�]���̌�APC��GUI�n��{�\�t�g�J���A�N���C�A���g�^�T�[�o�V�X�e���J����ʂ��ăI�u�W�F�N�g�w�����́E�݌v�Ɍg���B

�@�I�u�W�F�N�g�w���̖{����Nj����ׂ�1998�N�ɓƗ���A�L����ЃI�u�W�F�N�g�f�U�C���������ݗ��A���_�Ǝ��H��ڎw�����݂Ɏ���B�r�W�l�X���f�����O�A�p�^�[������̊w�K�ƕ��y���s���R�~���j�e�B�����ɎQ��B�z�[���y�[�W�u�I�u�W�F�N�g�w���ƓN�w�v �B

�@�wJava�f�x���b�p�[�̂��߂�UML����x�i�ďC�j�B�����́w�܂邲�Ɛ}�� �ŐV�I�u�W�F�N�g�w�����킩��x�w�܂邲�Ɛ}�� �ŐVUML���킩��x�i���ɋZ�p�]�_�Ёj�A�w����UML�|�I�u�W�F�N�g�w�������f�����O����x�i�G�a�V�X�e���j�B



�u�I�u�W�F�N�g�w���̐��E�v�o�b�N�i���o�[

Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);

���ڂ̃e�[�}

���Ȃ��ɂ������߂̋L��PR