相互リンクディレクトリ ジャック
 

 

このカテゴリにサイト申請 | New | アクセス順 |   | 相互リンクディレクトリ » エンターテイメント » 音楽 »

ソフトウェア

★ソフトウェアに関するページ 

ソフトウェア登録ページ

未登録

ソフトウェア
ソフトウェアには、ワープロソフトのように生産的な仕事を行うためのアプリケーションソフトウェア、アプリケーションソフトウェアに必要なサービスを提供するハードウェアとのインタフェースとなるオペレーティングシステムのようなシステムソフトウェア、分散システムを制御・管理するミドルウェアなどがある。
日本では、ハードウェアと対比する用法が転じ、映像や音楽等のコンテンツ(映画、ドラマなどの作品をビデオテープやDVDなどのメディア (媒体) 記録メディアに収録したもの)もソフトウェアと呼ぶ。類似の用法は欧米にもあるsoftware..(n.d.). ”Dictionary.com Unabridged (v 1.1)”. 2007年4月13日閲覧, from Dictionary.com website: http://dictionary.reference.com/browse/software。
ソフトウェア特許
ソフトウェア特許(- とっきょ)とは、コンピュータを利用する発明に関する特許である。
1990年代終わり頃からコンピュータ利用発明に関する特許出願が急増したが、これらの発明は従来の特許制度では取り扱うことが困難な問題を含んでいた。このため、各国特許庁では制度や運用の整備を行ってきたが、依然として、ソフトウェア特許を認めるべきか、認める場合にはどの範囲まで認めるべきかということが問題となっている。
本項では、ソフトウェア特許のうち、その概要と現在の制度・運用等について述べる。ソフトウェア特許が抱える問題の詳細については、「ソフトウェア特許論争」参照。
ソフトウェア利用発明
『ソフトウェア特許』より : ソフトウェア特許(- とっきょ)とは、コンピュータを利用する発明に関する特許である。
1990年代終わり頃からコンピュータ利用発明に関する特許出願が急増したが、これらの発明は従来の特許制度では取り扱うことが困難な問題を含んでいた。このため、各国特許庁では制度や運用の整備を行ってきたが、依然として、ソフトウェア特許を認めるべきか、認める場合にはどの範囲まで認めるべきかということが問題となっている。
本項では、ソフトウェア特許のうち、その概要と現在の制度・運用等について述べる。ソフトウェア特許が抱える問題の詳細については、「ソフトウェア特許論争」参照。
ソフトウェア関連発明
『ソフトウェア特許』より : ソフトウェア特許(- とっきょ)とは、コンピュータを利用する発明に関する特許である。
1990年代終わり頃からコンピュータ利用発明に関する特許出願が急増したが、これらの発明は従来の特許制度では取り扱うことが困難な問題を含んでいた。このため、各国特許庁では制度や運用の整備を行ってきたが、依然として、ソフトウェア特許を認めるべきか、認める場合にはどの範囲まで認めるべきかということが問題となっている。
本項では、ソフトウェア特許のうち、その概要と現在の制度・運用等について述べる。ソフトウェア特許が抱える問題の詳細については、「ソフトウェア特許論争」参照。
ソフトウェアプロトタイピング
1960年代や1970年代の固定的な開発サイクルでは、完全なプログラムをまず製作し、それから設計と実装の不整合に対処したりしていた。この方式は開発費用の増大を招き、費用や期間の予測も難しかった。プロトタイピングは多大な出費を防ぎ、完成したプログラム修正という困難な作業を低減する。
プロトタイピングはフレデリック・ブルックスの1975年の著書『人月の神話』の主要テーマの1つでもあった。
プロトタイピングは以下のようなステップで行われる:
要求分析をまず行う
: 基本要求を見定め、必要とされる情報の入出力を確定する。セキュリティなどの詳細はここでは無視する。
最初のプロトタイプを開発する
: ユーザインタフェースのみからなる最初のプロトタイプを開発する。
ソフトウェア開発工程
ソフトウェア開発工程(Software Development Process)とは、ソフトウェア製品の開発の構造を意味する。ソフトウェアライフサイクル、ソフトウェア開発プロセス、ソフトウェアプロセスもほぼ同義語である。開発工程にはいくつかのモデルがあり、開発工程内の各種タスク・活動のための手法を提案している。
ソフトウェア開発組織の巨大化とともに開発工程に関する方法論が提案されるようになってきた。アメリカでは軍需での契約を獲得する条件としてプロセスモデルに基づいた評価が行われるため、それが方法論の発達を促したとも言える。ISO 12207 はプロジェクトのライフサイクルを選択・実装・監視する手法に関する標準規格である。
能力成熟度モデル統合 能力成熟度モデル(CMM) は主要なモデルの1つである。独自のアセスメントにより組織が自身で定義したプロセスにどれだけ忠実に従っているかを測る。このとき、そのプロセスの品質そのものやソフトウェア製品の品質は関与しない。CMM は徐々に拡張され能力成熟度モデル統合(CMMI) となった。ISO 9000 は形式的に構成されたプロセスとその文書に関する標準規格である。
ソフトウェアエージェント
ソフトウェアエージェント(Software Agent)とは、ユーザーや他のソフトウェアとの仲介(Agency)的関係語源はラテン語の ”agere”(~の代行をする協定)から。において動作するソフトウェアを説明する計算機科学上の抽象概念であり、論理的モデルである。そのような代行的行動は行動の適切さの判断や時期の判断の権限を暗示している。すなわち、エージェントの動作はタスクとして厳密に管理されないが、自分自身が勝手に起動することはない。
関連する派生概念として、知的エージェント(人工知能的要素である学習や推論を取り入れたもの)、自律エージェント(目的を達成するための方法を自律的に更新できるもの)、マルチエージェントシステム(単体では目的を達成できず、互いに通信する分散エージェント群)、モバイルエージェント(ネットワーク上で自身を実行するプロセッサを乗り換えていくことができるエージェント)などがある。
ソフトウェアDEP
『NXビット』より : NXは No eXecute を意味する。一般的に、プロセッサ命令(またはコード)もしくはデータの記憶のために使用されるメモリを隔離する為にCPUで使用されている技術である。NX属性が指定されているメモリのいずれの区画もデータのみによって使用されるという意味であるからして、プロセッサ命令はここに位置することはできず、またそうすべきでない。ある種類の悪意のあるソフトウェアがそれ自身を他のプログラムのデータ領域に挿入しその領域から挿入したコードを実行することによって行われる、コンピュータの乗っ取りを防ぐためによく用いられる手段である。これはバッファオーバーラン バッファーオーバーフロー攻撃と呼ばれ、多数の場合NXはこれを防ぐことができる。
ソフトウェアテスト
ホワイトボックステストとは、プログラム (コンピュータ) プログラムの構造に着目したソフトウェアテストのことである。着目する構造には命令や分岐などがあり、注目した構造に対してどれだけの割合の部分を実行できたかをコード網羅率 網羅率で表す。
1: int abs(int x){
2: if(x<0){
3: x=-x;
5: return x;
命令網羅基準を用いてテストを行う場合は、すべての命令を実行すればよい。上記のabs関数では、x -1 を用いてテストすれば命令網羅基準に従ってテストできたことになるかも。
分岐網羅基準を用いてテストを行う場合は、すべての分岐において、すべての分岐の方向を実行すればよい。上記のabs関数では、x=-1、x=0を用いてそれぞれテストすれば、分岐網羅基準にしたがってテストできたことになる。
ソフトウェアアーキテクチャ
ソフトウェアアーキテクチャ(Software Architecture)は、ソフトウェアコンポーネント、それらの外部特性、またそれらの相互関係から構成される。また、この用語はシステムのソフトウェアアーキテクチャの文書化を意味することもある。ソフトウェアアーキテクチャの文書は開発依頼主とのコミュニケーションを容易にするもので、概要レベルの設計に関する早期の決定を促し、プロジェクト間でのコンポーネントとパターンの設計を再利用することを可能にする
”IEEE 1471 ANSI/IEEE 1471-2000: Recommended Practice for Architecture Description of Software-Intensive Systems”(ソフトウェアシステムのアーキテクチャ記述のための指針)は、ソフトウェアアーキテクチャの領域での世界初の標準であり、最近 ISO によって ”IEEE 1471 ISO/IEC DIS 25961” として採用された。
ソフトウェアドキュメンテーション
ソフトウェアドキュメンテーションとは、コンピュータのソフトウェアに付随する文書、またはそのような文書を作成することを意味する。類似の用語としてソースコードドキュメンテーションがある。
プログラム仕様 仕様書とは異なる。仕様書は設計/実装のために事前に作成される文書だが、ここでいうドキュメンテーションは開発中あるいは既に完成したソフトウェアに付随する文書である。
ドキュメンテーションはソフトウェア開発の重要な部分を占めているが、見過ごされることが多い。ドキュメンテーションは以下のように分類される:
アーキテクチャ/設計 - ソフトウェアの概要。外部環境との関係、設計原則などが記述される文書。
技術 - コード、アルゴリズム、インタフェース、Application Programming Interface APIなどの文書。
ソフトウェアコンポーネント
ソフトウェアコンポーネント(Software Componentry)は、ソフトウェア工学の一分野である。ソフトウェアオブジェクト、ソフトウェアアーキテクチャ、ソフトウェアフレームワーク、デザインパターン (ソフトウェア) デザインパターンなどに基づいた分野であり、オブジェクト指向プログラミングおよび設計の理論を活用している。ソフトウェアコンポーネントとは、ハードウェアの電子部品(electronic component)からの発想であり、モジュールの互換性と信頼性を重視していることを意味する。
ソフトウェアコンポーネントは、事前に定義されたサービスを提供するシステム構成要素であり、コンポーネント間で通信することができる。Clemens Szyperski と David Messerschmitt は、ソフトウェアコンポーネントが備えるべき5つの基準を以下のように定義した:
ソフトウェア特許論争
コンピュータとは、計算をする機械であり、現在ではパソコンや、制御用のマイコンなどにみられるように、社会で広く用いられているものである。コンピュータは、データを受け入れると、あらかじめ指定された処理操作に従って、記憶装置とプロセッサを用いた算術演算や論理演算を含む計算を行い、計算の結果を出力するように構成されている。
このデータ処理を実現するための「一連の動作を命令語群により記述したもの」が、機械語(オブジェクトコード)である。この機械語からなるソフトウエアを記述するためには、プログラミング言語等により一連の動作を記述し、バイトコード方式やコンパイラ方式、あるいはインタプリタ方式等により機械語へ変換することがなされる。
ソフトウェア割り込み
『割り込み』より : 割り込み(わりこみ)
行列などの途中に強引に押し入ること。 割り込み (運転) 割り込み運転など。
劇場などで、同伴者でない人と桝席に相席になること、またはその席。
コンピュータ用語。(後述)
割り込みとは、コンピュータがその周辺機器などから受け取る要求の一種である。コンピュータは割り込みに応じて現在の処理を中断して、別の処理(割り込み処理)を行う。現在のCPUは、全て割り込みを処理するための機能を備えている。
割り込みの主な目的は周辺機器からの情報を、他の作業をしながらも取り落とすことなく受け取ることであり、具体的な効果として次のようなものがある
CPU資源の有効利用 - 周辺機器の速度はCPUの処理速度より格段に遅いため、周辺機器が処理を行っている間、CPUが他の処理を行ったほうが効率がよい。その場合、周辺機器の処理の終了をCPU側から定期的にチェックする(ポーリングと呼ぶ)のは、他の処理の効率を落とすため望ましくない。このため、周辺機器の側から割り込みによって処理の終了を通知する方法がとられる。しかしながら、近年のCPUの高速化に伴い、GHz クラスのCPUを利用した場合は、1msec単位程度の周期的なポーリングを行う方式も研究されている。
ソフトウェアファクトリー
標準化されたコンポーネント、特殊化されたスキルセット、並行プロセス、予測可能でスケーラブルな一貫した品質といった製造業的基盤にならって、ソフトウェア開発のレベルを高度化することがソフトウェアファクトリーの目的である。自動車製造の工業化によって生産性が向上して低価格で高品質の製品ができるようになったように、ソフトウェア開発工程の工業化でも同様の利点が期待されている。ソフトウェアファクトリーはソフトウェア開発工数を削減する手法として注目されている。概念的には、ソフトウェアファクトリーは、ドメインごとに事前に作られた標準機能を探し出す方法論である。
ソフトウェアファクトリーは Software Manufacturing(ソフトウェア製造)プロセスとそれを支える生産性ツールから構成される。
ソフトウェア保守
ソフトウェア保守またはソフトウェアメンテナンス(Software maintenance)とは、ソフトウェア工学において既存のソフトウェアを改良・最適化していくと共にバグを修正していくプロセスを意味する。ソフトウェア保守はソフトウェア製品ライフサイクルにおける主要なプロセスの一部であり、ソフトウェアデプロイメント ソフトウェアの実際の現場への投入後に行われる。ソフトウェア保守工程では、実際の使用で発見された問題点やバグを修正すると共に、そのソフトウェアのユーザビリティや可用性を改善するための機能追加も行う。
ソフトウェア保守プロセスは、日本工業規格 JIS規格 日本工業規格 JIS X 0160(ソフトウェア・ライフサイクル・プロセス)で規定されたプロセスで、日本工業規格 JIS X 0161:2008(ソフトウェアライフサイクルプロセス-保守)で詳細が規定されている。
ソフトウェア危機
ソフトウェア危機(Software Crisis)とは、ソフトウェア工学がまだ十分に確立していなかった頃、よく使われた言葉である。この言葉は、コンピュータの急激な高性能化によってコンピュータ上のシステムが扱う問題が益々複雑化することによる影響を表したものである。基本的にソフトウェア危機は、正しく、可読性が高く、形式的検証 検証可能なコンピュータプログラムを書くことの困難さから発した考え方である。ソフトウェア危機の根本は、複雑性と予測と変化である。
相反する要求は常にソフトウェアの開発過程を妨げてきた。例えば、ユーザーは多大な機能を要求するが、顧客はソフトウェアに支払う対価と開発期間をなるべく最小にしたがることが多い。
ソフトウェア工学
ソフトウェア工学(ソフトウェアこうがく、Software engineering)は、コンピュータのソフトウェアの開発方法を研究対象とする情報工学の一分野である。
具体的には、高度かつ安全なコンピュータのソフトウェアを短期間で設計するための研究などを行なう。難易度の高い大規模ソフトウェアの開発に焦点を当てることが多い。
ソフトウェア工学では、通常、開発対象となるソフトウェアの開発を思いついた時点から、実際に動くソフトウェアが完成し、使用されるまでを、いくつかのフェーズに分けて考察する。これらフェーズごとに典型的な課題が存在し、課題に立ち向かう方法を明確にしようとする。
ソフトウェアサイエンス学
『ソフトウェア工学』より : ソフトウェア工学(ソフトウェアこうがく、Software engineering)は、コンピュータのソフトウェアの開発方法を研究対象とする情報工学の一分野である。
具体的には、高度かつ安全なコンピュータのソフトウェアを短期間で設計するための研究などを行なう。難易度の高い大規模ソフトウェアの開発に焦点を当てることが多い。
ソフトウェア工学では、通常、開発対象となるソフトウェアの開発を思いついた時点から、実際に動くソフトウェアが完成し、使用されるまでを、いくつかのフェーズに分けて考察する。これらフェーズごとに典型的な課題が存在し、課題に立ち向かう方法を明確にしようとする。
ソフトウェア構成管理
ソフトウェア構成管理(Software Configuration Management、SCM)とはソフトウェア開発プロジェクトをその成果物を通して制御・管理する方法論である。ソースコードやソフトウェアドキュメンテーション 文書などの成果物の変更履歴を管理し、製品のバージョンやリビジョンに個々の成果物のどのバージョンが対応しているかを識別し、任意のバージョンの製品を再現可能とする。
バージョン管理システムは SCM のためのツールであるが、バージョン管理システムそのものを SCM と呼ぶこともある。しかし、一般にソフトウェア構成管理はバージョン管理とは等価ではなく、バージョン管理を制御するマネジメント的要素が含まれる。
当初、ソフトウェア構成管理(SCM)は単に ”CM”(構成管理)と呼ばれており、本来はハードウェア開発と製造制御のためのものだった。以下では主にSCMツールの登場を時系列に並べる。
ソフトウェア開発
マーケティングとの関わりは要求分析 ソフトウェア要求分析としても知られているWon Kim: “On Assuring Software Quality and Curbing Software Development Cost”, in Journal of Object Technology, vol. 5, no. 6, July-August 2006, pp. 35-42 http://www.jot.fm/issues/issue_2006_07/column5。ソフトウェア開発はクライアントが必要とするもの以上の機能を開発しようとしたり、逆に妥協しようとしたりする。そのため、ソフトウェア開発は通常の工学/技術とは関連付けられていなかった各種プロセス(市場調査、人材登用、リスクマネジメント、知的財産権、予算、危機管理など)まで取り込もうとする場合がある。その場合、ソフトウェア開発は Business Development と呼ばれる領域ともオーバーラップすることになる。
Alan M. Davis は著書 ”"Great Software Debates"” の章 ”"Requirements"” の節 ”"The Missing Piece of Software Development"” で次のように述べている:

PR 賃貸の大阪home
Copyright 2010 ジャック All Right Reserved.