コンピュータ ウィンドウズ インターネット

コンピュータソフトウェアとは何を意味しますか? ソフトウェア製品とその特徴 ソフトウェア製品の対象となるのは、

ソフトウェアは、次の 3 つの主要なタイプを組み合わせた広範な概念です。

コンピュータのパフォーマンスを向上させるシステム ソフトウェア。

アプリケーション ソフトウェア パッケージの形式で、あらゆる主題分野の問題を解決するためのアプリケーション ソフトウェア。

プログラミング技術ツールキット(番組制作分野のソフトウェア)

プログラムは通常、問題を解決するためのコンピューター コマンド (命令) の順序付けされたシーケンスと呼ばれます。 ソフトウェア- データ処理プログラムとその操作に必要な文書のセット。

プログラムは、タスクを機械で実装するために設計されています。 「タスク」と「アプリケーション」という用語は、コンピューター サイエンスとソフトウェアの分野で非常に広く使用されており、次のように定義されています。タスク - 解決すべき問題。 アプリケーション - 問題を解決するためのコンピューター上のソフトウェア実装。

したがって、タスクは情報技術ツールを使用して実装される問題を意味し、アプリケーションはコンピュータ上で実装される問題の解決策を意味します。 「アプリケーション」は「プログラム」という言葉の同義語であり、より適切な用語と考えられており、コンピューター サイエンスで広く使用されています。

問題の定式化- これは、入力情報と出力情報の説明を伴う、コンピューター上の問題の解決策の正確な定式化です。 問題文は以下に関連しています 基本パラメータの決定その実装、情報源の特定、および 入出力情報の構造、ユーザーによって指定されます。

出力情報タスクは、ドキュメント (リストやマシングラムなど)、生成されたフレーム (モニター画面上のビデオグラム、データベース ファイル、制御装置への出力信号) の形式で提示できます。

入力情報タスクの は、タスクの入力に入力されるデータとして定義され、タスクを解決するために使用されます。 入力情報は、手動で完成した文書の一次データ、データベース ファイルに保存された情報 (他の問題の解決結果、規範情報および参照情報 - 分類子、コード化子、参考書)、センサーからの入力信号です。

アルゴリズムは、有限のステップで許容可能な初期データ (入力情報) を望ましい結果 (出力情報) に変換するプロセスを定義する、正確に定式化されたルールのシステムです。

プログラミングは非常に幅広い概念であり、科学と芸術の両方と考えることができます。 プログラムは知的作業の結果であり、創造性を特徴とし、ご存知のとおり、明確な境界はありません。 どのプログラムにも開発者の個性があり、プログラマーのスキルがある程度反映されます。 同時に、プログラミングには日常的な作業も含まれており、実行には厳格な規制が必要であり、標準に準拠する必要があります。

プログラミングは、プログラム開発のための方法とツール (プログラムを作成するための特殊なツール) の継承、開発、および適用を目的とした一連の科学分野に基づいています。 プログラムを開発する際には、リソース集約的かつ知識集約的なテクノロジーと高度な知的作業が使用されます。

プログラミングは、材料、労働力、財源に多大なコストがかかる経済活動の発展した分野です。 外国の情報源によると、21 世紀初頭、世界の労働人口の最大 2% がプログラミングに従事していました。 ソフトウェア作成分野の総売上高は年間数千億ドルに達します。

プログラム開発に関わる専門家の主なカテゴリーはプログラマーです。 プログラマーは、資格のレベルや活動の性質においてさまざまです。 ほとんどの場合、プログラマーはシステム プログラマーとアプリケーション プログラマーに分かれます。

システムプログラマーコンピュータの動作をサポートし、機能的なタスクを確実に実行するためのプログラムを実行する環境を構築するシステム ソフトウェアの開発、運用、保守に従事しています。

アプリケーションプログラマー機能的な問題を解決するためのプログラムの開発とデバッグを実行します。

大規模なプログラムや処理機能を作成するという文脈において、新たな資格が登場します。 プログラマーアナリスト、主題領域の機能を実装するために相互に関連する一連のプログラムを分析および設計します。

作業の初期段階でプログラムを作成するプロセスには、専門家も参加します - 問題設定者.

ほとんどの情報システムはデータベース (DB) の操作に基づいています。 データベースが統合され、多くのアプリケーションからのデータを処理できるようになると、実行されるデータベースに対する組織的なサポートの問題が発生します。 データベース管理者.

プログラムの主な消費者は次のとおりです。 エンドユーザー、これは、原則として、非プログラマ ユーザーのカテゴリーに分類されます。 エンド ユーザーはプログラミングの専門家ではありませんが、基本的なコンピューターの知識とスキルを持っています。 ソフトウェアユーザーのこの資格特性は、作成されたプログラム、インターフェイス、機械文書の形式、およびコンピューター上で問題を解決するための技術に対する要件の仕様に大きな影響を与えます。

資格のあるプログラマーまたは特別な訓練を受けた技術者、つまりコンピューターオペレーターがプログラムを操作することが可能です。

すべてのプログラムは、その使用の性質とユーザーのカテゴリーに応じて、実用的なプログラムとソフトウェア製品(製品)の 2 つのクラスに分類できます。

功利主義的なプログラム(「自分用のプログラム」) は、開発者のニーズを満たすように設計されています。 ほとんどの場合、実用的なプログラムは、データ処理テクノロジにおけるサービスの役割を果たしたり、広範囲に配布することを目的としていない機能的な問題を解決するためのプログラムです。

ソフトウェア製品(製品は)ユーザーのニーズを満たすように設計され、広く配布され、販売されます。

現在、グローバルまたは地域の電気通信を使用して登場したソフトウェア製品を合法的に配布するための他のオプションがあります。

    フリーウェア - 自由に配布され、必要な変更を加える権限を与えられたユーザー自身によってサポートされる無料プログラム。

    シェアウェアとは、原則として無料で使用できる非営利(シェアウェア)プログラムです。 このような製品を定期的に使用するには、一定の金額の支払いが必要です。

多くの製造業者は、OEM プログラム (Original Equipment Manufactured)、つまりコンピュータにインストールされる、またはコンピュータ機器に付属する組み込みプログラムを使用しています。

ソフトウェア製品は、あらゆる種類の工業製品と同様に、大量需要の特定の問題 (タスク) を解決するために相互に関連するプログラムのセットであり、販売用に準備されています。

ソフトウェア製品は、動作のために適切に準備され、必要な技術文書があり、サービスを提供し、プログラムの信頼性の高い動作を保証し、メーカーの商標があり、できれば州の登録コードが必要です。 このような条件下でのみ、作成されたソフトウェア複合体を「ソフトウェア製品」と呼ぶことができます。

ソフトウェア製品は、個別の受注開発として作成することも、ユーザー間で大量配布するための開発として作成することもできます。

個別開発では、特定の顧客向けのデータ処理内容を考慮したオリジナルのソフトウェア製品を開発会社が作成します。

大量配布向けに開発を行う場合、開発会社は一方で、 多用途性一方、実行されるデータ処理機能は柔軟性と カスタマイズ性特定のアプリケーション条件に対応したソフトウェア製品。 ソフトウェア製品の作成には、労働力、資材、財務など、多大なリソースが費やされます。 高度な資格を持つ開発者が必要です。

原則として、ソフトウェア製品にはメンテナンスが必要です。メンテナンスはプログラムを配布する専門会社 (ディストリビュータ) によって行われますが、開発会社によって行われることはあまりありません。 大量使用のためにプログラムを維持するには、検出されたエラーの修正、プログラムの新しいバージョンの作成など、多大な労力がかかります。

ソフトウェア製品のサポートこれには、ソフトウェア製品の機能の維持、新しいバージョンへの移行、変更、検出されたエラーの修正などが含まれます。

主要 特徴プログラムは次のとおりです。 1) アルゴリズムの複雑さ (情報処理アルゴリズムのロジック)。 2) プログラムファイルの量。 3) オペレーティング システムおよびソフトウェアを処理するための技術的手段の要件。 4) ディスクメモリ容量。 5) プログラムを実行するための RAM のサイズ。 6) プロセッサの種類。 7) オペレーティングシステムのバージョンなど

ソフトウェア製品にはさまざまな種類があります を反映した品質指標以下の側面。

    ソフトウェア製品のモビリティとは、オペレーティング環境、ネットワーク データ処理テクノロジ、対象領域の特性などから独立していることを意味します。モバイル (マルチプラットフォーム) ソフトウェア製品は、さまざまなモデルのコンピュータやオペレーティング システムに制限なくインストールできます。コンピュータネットワーク内での動作について。

    ソフトウェア製品の信頼性は、プログラムのスムーズさと安定性、所定の処理機能の実行の正確さ、プログラムの動作中に発生するエラーの診断能力によって決まります。

    ソフトウェア製品の有効性は、その直接の目的であるユーザー要件の観点と、その動作に必要なコンピューティング リソースの消費という観点の両方から評価されます。 コンピューティング リソースの消費量は、プログラムを保存するための外部メモリの量とプログラムを実行するための RAM の量によって評価されます。

    人的要因を考慮する提供を意味します ユーザーフレンドリーなインターフェースエンドユーザーにとって、可用性 状況依存のツールチップまたは 研修制度ソフトウェアの一部として、 良いドキュメントソフトウェア固有の機能の習得と使用、発生したエラーの分析と診断など。

    変更可能性ソフトウェア製品とは、処理機能の拡張、別の技術処理ベースへの移行など、変更を加える能力を意味します。

    コミュニケーションスキルソフトウェア製品は、他のプログラムとの可能な限りの統合に基づいており、共通の表示形式でのデータ交換 (データベースのエクスポート/インポート、処理オブジェクトの実装またはリンクなど) を保証します。

あらゆる種類のプログラムには特徴があります ライフサイクル、個別のステージで構成されます。

    1. ソフトウェア市場のマーケティング、ソフトウェア製品の要件の仕様。

    2. ソフトウェア製品の構造の設計。

    3. プログラミング (プログラム コードの作成)、テスト、プログラムのデバッグ (エラーの修正、コードの改善、信頼性の向上など)。

    4. ソフトウェア製品の文書化、運用および技術文書の作成。

    5. ソフトウェア市場への参入、ソフトウェア製品の配布。

    6. ユーザーによるソフトウェア製品の操作。

    7. ソフトウェア製品の保守。

    8. ソフトウェア製品の販売中止、サポートの拒否。

    9. ライフサイクルの個々の段階の内容を考えてみましょう。

ソフトウェア製品のマーケティングと仕様は、作成されたソフトウェア製品の要件を検討することを目的としています。つまり、1) ソフトウェア製品のデータ処理機能の構成と目的を決定します。 2) ソフトウェア製品との対話の性質、ユーザー インターフェイスの種類に関するユーザー要件を確立する。 3) ソフトウェア製品等を動作させるためのハードウェアとソフトウェアのセットの要件

次に、競合するソフトウェア製品と類似製品を調査し、ソフトウェア製品に対するユーザーの要件を要約し、潜在的な販売市場能力を確立し、販売量の予測を行います。 さらに、ソフトウェア製品の開発に必要な資材、労働力、財源、およびソフトウェア製品のライフサイクルの主要段階のおおよその期間を見積もることも重要です。

構造設計ソフトウェア製品が関連付けられている アルゴリズム化データ処理プロセス、処理機能の詳細、ソフトウェア製品の構造(ソフトウェアモジュールのアーキテクチャ)の開発、タスクの情報ベース(データベース)の構造、プログラムを作成するための方法とツールの選択、つまりプログラミング技術。

プログラミング、テストプログラムのデバッグは、設計ソリューションの技術的な実装であり、選択された開発者ツール (アルゴリズム言語とプログラミング システム、開発者ツール環境など) を使用して実行されます。

このプロセスで使用されるプログラミング ツールとデバッグ ツールは、作業の複雑さ、コスト、作成されたプログラムの品質に影響を与えるため、重要な役割を果たします。

ソフトウェア製品の文書化原則として、開発者自身によって実行されるのではなく、必須のタイプの作業ですが、 テクニカルライター、一定の文学的スキルを持ち、ソフトウェア製品の配布と実装に関連する経験豊富なプログラマー。 ドキュメントには、ソフトウェア製品のインストールと信頼性の高い動作の確保、処理機能を実行する際のユーザーのサポート、およびソフトウェア製品を他のプログラムとパッケージ化する順序の決定に関して必要な情報が含まれている必要があります。

原則として、ソフトウェア製品には次のものが含まれます。1) 自動状況依存ヘルプ (HELP)。 2) 教育システム (電子教科書) またはパッシブ モード (ビデオ、漫画) と同様のアクティブ モードで動作するデモ バージョン - ソフトウェア製品の機能とその使用における情報技術をデモンストレーションするため。

ソフトウェア製品をソフトウェア市場にリリースする大衆ユーザーへの販売の組織化に関連しています。 ソフトウェア製品の販売促進には、標準的なマーケティング手法が使用されます。広告、販売チャネルの数の増加、ディーラーと流通ネットワークの構築、価格設定政策 (割引販売、アフターサービスなど) です。

各ソフトウェア製品には需要を反映した独自の販売曲線がありますが、一般的なパターンもあります。 当初、ソフトウェア製品の売上は増加します (曲線の増加部分)。 次に、ソフトウェア製品の売上の安定化です。 開発会社は、高水準の安定した売上期間を最大限継続するよう努めます。 次に、販売量の減少は、このソフトウェア製品に関する会社のマーケティング方針の変更の兆候であり、この製品の修正が必要になったり、価格が変更されたり、販売から撤退したりする必要があります。

ソフトウェア製品の操作はメンテナンスと並行して行われ、メンテナンスが行われていない場合でもプログラムの運用を開始したり、メンテナンスが一定期間終了してもプログラムの運用を継続したりできます。 ソフトウェア製品の動作中に、検出されたエラーは除去されます。

ソフトウェア製品の販売停止およびサポートの拒否一般に、開発会社の技術方針の変更、ソフトウェア製品の非効率な運用、致命的なエラーの存在、または需要の欠如が発生した場合に発生します。

異なるソフトウェア製品のライフサイクルの長さは同じではありません。 最新のソフトウェア製品の平均寿命は 2 ~ 3 年です。 コンピューター上には、長い間製造中止になったソフトウェア製品がよく見られます。

システムソフトウェア:

    1. 他のプログラムが機能するための動作環境を作成します。

    2. コンピュータ自体とコンピュータ ネットワークの信頼性が高く効率的な動作を保証します。

    3. コンピュータ機器およびコンピュータネットワークの診断と予防保守を実施します。

    4. 補助的な技術プロセス (プログラム ファイルやデータベースのコピー、アーカイブ、復元など) を実行します。

このクラスのソフトウェア製品は、コンピュータの種類と密接に関連しています。 それの不可欠な部分です。 ソフトウェア製品は主に、資格のあるユーザー、つまりシステム プログラマ、ネットワーク管理者、アプリケーション プログラマ、オペレータなどのコンピュータ分野の専門家を対象としています。 ただし、このクラスのソフトウェア製品を操作するための基本テクノロジーの知識は、プログラムを操作するだけでなく、コンピューター、プログラム、およびデータのメンテナンスも独自に行うパーソナル コンピューターのエンド ユーザーにも必要です。

このクラスのソフトウェア製品は、主題領域の詳細に関係なく、一般的な性質のアプリケーションです。 これらには、信頼性と製造性、利便性と使用効率に対する高い要求が課せられます。

PPP は機能上の問題を解決するためのソフトウェア ツールとして機能し、ソフトウェア製品の中で最大のクラスです。 このクラスには、さまざまな主題分野の情報を処理するソフトウェア製品が含まれます。

コンピュータへのソフトウェア製品のインストールは資格のあるユーザーによって実行され、その直接の操作は通常、エンド ユーザー、つまり情報の消費者によって実行されますが、多くの場合、その活動はコンピュータ分野からは非常に遠いものです。 このクラスのソフトウェア製品は、個々の主題分野に非常に特化している場合があります。

このクラスは、作成されたソフトウェア製品の開発、デバッグ、実装のためのテクノロジを提供する一連のプログラムおよびソフトウェア パッケージとして定義できます。 プログラミング テクノロジ ツールはプログラム開発プロセスをサポートし、開発者ツールである特殊なソフトウェア製品が含まれています。 このクラスのソフトウェア製品は、作成されたプログラムの設計、プログラミング (コーディング)、デバッグ、テストのプロセスのすべての技術段階をサポートします。 プログラミング テクノロジのユーザーは、システム プログラマおよびアプリケーション プログラマです。

8.1. ソフトウェア製品とその主な特徴

ソフトウェアの基本概念

基本概念

データ処理システムの技術的基盤としてのコンピュータの機能は、使用されるソフトウェア (プログラム) に関連しています。

プログラム( プログラムルーティーン)- 問題を解決するためのコンピューター コマンド (命令) の順序付けられたシーケンス。

ソフトウェア ( ソフトウェア)- データ処理プログラムとその操作に必要な文書のセット。

プログラムは、タスクを機械で実装するために設計されています。 条項 タスクそして 応用コンピュータサイエンスとソフトウェアの文脈で非常に広く使用されています。

タスク( 問題タスク)- 解決すべき問題。 応用( 応用)- 問題を解決するためのコンピュータ上でのソフトウェアの実装。

したがって、タスクは情報技術ツールを使用して実装される問題を意味し、アプリケーションはコンピュータ上で実装される問題の解決策を意味します。 「プログラム」という言葉の同義語であるアプリケーションは、より良い用語とみなされており、コンピューター サイエンスで広く使用されています。

学期 タスクまた、プログラミングの分野でも、特にマルチプログラミングおよびマルチプロセッシング モードで、コンピューティング リソース (プロセッサ時間、メイン メモリなど) の割り当てを必要とするコンピュータ システムの動作単位として使用されます。 この章では、この用語は最初の定義の意味で使用されます。

問題には多数の異なる分類があります。 開発の詳細とソフトウェアの種類の観点から、技術的なタスクと機能的なタスクの 2 つのクラスを区別します。

技術的な課題 問題は、コンピュータ上の情報処理の技術的プロセスを整理するときに設定され、解決されます。 技術目標は開発の基礎です ソフトウェアサービスツールとして ユーティリティ、サービス プログラム、プロシージャ ライブラリコンピュータの動作を保証したり、他のプログラムを開発したり、機能タスクからのデータを処理したりするために使用されます。

機能的なタスク 対象領域の情報システム内に管理機能を実装する際には、ソリューションが必要です。 例えば、商社の活動管理、企画生産、管理など

商品の輸送など 機能的なタスクが集まって主題領域を形成し、その特異性を完全に決定します。

主題(アプリケーション)領域 ( 応用ドメイン)- 相互に接続された一連の機能と管理タスクの助けを借りて、設定された目標を達成します。

プログラムを作成するプロセスは、図に示す一連のアクションとして表すことができます。 8.1.

米。 8.1.プログラム作成プロセスの図

問題の定式化 ( 問題意味)- これは、入力情報と出力情報の説明を伴う、コンピューター上の問題の解決策の正確な定式化です。

プロブレムステートメントとは、データ処理の内容の具体性を意味する一般化された用語です。 問題の定式化は、その実装の主なパラメータの仕様、ソースの特定、およびユーザーが必要とする入出力情報の構造に関連付けられています。

機能的タスクの正式な定式化の過程で明らかになった機能的タスクの主な特徴は次のとおりです。

タスクの目的や目的、その場所や他のタスクとのつながり。

コンピュータ技術を使用して問題を解決するための条件。

問題解決の頻度に関する要件。

出力情報のタイミングと精度に対する制限。

出力情報の構成と表示形式。

問題を解決するための入力情報のソース。

問題のユーザー (問題を解決し、その結果を使用する人)。

出力情報 タスクは、文書(リストやマシングラムなど)、生成されたフレーム(モニター画面上のビデオグラム、データベースファイル、制御装置への出力信号)の形式で提示できます(図8.2)。

入力情報 タスクの は、タスクの入力に入力されるデータとして定義され、タスクを解決するために使用されます。 入力情報は、手動で完成した文書の一次データ、データベースファイルに保存された情報(他の問題の解決結果、規範情報および参照情報 - 分類子、コード化子、参考書)、送信機の入力信号です。 (cm。米。 8.2)。

通常、設定タスクは、マシン内データベースの構造の作成、ドキュメントの移動のためのフォームとルートの設計、対象領域内の管理組織の変更という一連の作業で実行されます。

アルゴリズム- 有限のステップで許容可能な初期データ (入力情報) を望ましい結果 (出力情報) に変換するプロセスを定義する、正確に定式化されたルールのシステム。

米。8.2. 問題解決のための入力情報と出力情報の関係図

問題を解決するためのアルゴリズムには、いくつかの必須プロパティがあります。

離散性 - 情報処理プロセスをより単純な段階 (実行ステップ) に分割し、コンピューターまたは人間による実装に問題が生じないようにします。

アルゴリズムの確実性 - 情報変換の個々のステップの明確な実行。

実現可能性 - 問題解決アルゴリズムのアクションの有限性。これにより、有限数のステップで許容可能な初期データを使用して望ましい結果を得ることができます。

質量特性 - 特定のクラスの問題を解決するためのアルゴリズムの適合性。

アルゴリズムは、ソリューション結果を生成するロジックと方法を反映し、出力結果の信頼性を監視するために必要な計算式、論理条件、関係を示します。 アルゴリズムは、一連の問題を解決する過程で発生する可能性のあるすべての状況に対応する必要があります。

一連の問題を解決するためのアルゴリズムとそのソフトウェア実装は密接に関係しています。 使用されるアルゴリズム設計方法および使用されるプログラム開発ツールの詳細は、データ処理アルゴリズムのプレゼンテーションの形式および内容に影響を与える可能性があります。

注記。 問題を解決するには、既製のソフトウェア製品、つまり機能目的のアプリケーション ソフトウェア パッケージ (APP) に組み込まれたアルゴリズムを使用できます (下記を参照)。 メソッド指向 PPP で提示される問題を解決するための標準モデルと手法も使用できます。 この場合、PPP は特定のアプリケーションの条件に適合しますが、それ以外の場合は、一連のタスクを実行するための独自のアルゴリズムとプログラムが開発されます。

プログラミング ( プログラミング)- プログラムの作成に関連する理論的および実践的な活動。

プログラミングは集合的な概念であり、科学と芸術の両方であると考えることができ、プログラム開発への科学的かつ実践的なアプローチはこれに基づいています。

プログラムは知的作業の結果であり、創造性を特徴とし、ご存知のとおり、明確な境界はありません。 どのようなプログラムにも開発者の個性があり、プログラムにはある程度の芸術性が反映されます。

プログラマー 同時に、プログラミングには日常的な作業も含まれており、この作業には厳格な規制があり、標準に準拠する必要があります。

プログラミングは、プログラム開発のための方法とツール (プログラムを作成するための特殊なツール) の研究、開発、および応用を目的とした一連の科学分野に基づいています。 プログラムを開発する際には、リソース集約的かつ知識集約的なテクノロジーと高度な知的作業が使用されます。

プログラミングは、材料、労働力、財源に多大なコストがかかる経済活動の発展した分野です。 外国の情報源によると、90 年代半ばには、世界の労働人口の最大 2% がプログラミングに従事していました。 ソフトウェア作成分野の総売上高は年間数千億ドルに達します。

さまざまなデータ処理プログラムのニーズの高まりに関連して、効果的なプログラミング技術の使用とその産業基盤への移転という問題が非常に重要です。 その意味は:

さまざまな開発者によるプログラミング手法の標準化、複製可能性、再現。

高度なソフトウェア開発ツールの導入。

プログラム開発の作業を組織するための特別な方法とテクニックの使用。

プログラム開発に携わる専門家の主なカテゴリーは次のとおりです。 プログラマー(プログラマー )。 プログラマーは、資格のレベルや活動の性質においてさまざまです。 ほとんどの場合、プログラマーはシステム プログラマーとアプリケーション プログラマーに分かれます。

システムプログラマー ( システム/ソフトウェアプログラマー、道具屋)開発・運用・保守を行っております 全身的なコンピューターの操作をサポートし、機能タスクの実装を保証するプログラムを実行する環境を作成するソフトウェア。

アプリケーションプログラマー ( アプリケーションプログラマー)機能的な問題を解決するためのプログラムの開発とデバッグを実行します。

大規模なプログラムや処理機能を作成するという文脈において、新たな資格が登場します。 プログラマーアナリスト ( プログラマー -アナリスト)、これは、主題領域の機能を実装するために相互に関連する一連のプログラムを分析および設計します。

初期段階のプログラム作成には専門家も参加 タスク設定者。

ほとんどの情報システムはデータベース (DB) の操作に基づいています。 データベースが統合され、多くのアプリケーションからのデータを処理できるようになると、実行されるデータベースに対する組織的なサポートの問題が発生します。 データベース管理者。

プログラムの主な消費者は次のとおりです。 エンドユーザー ( 終わりユーザー)、これは、原則として、プログラマ以外のユーザーのカテゴリーに分類されます。 エンドユーザーはプログラミング分野の専門家ではありません。つまり、プログラムを設計および作成する方法や技術を所有していませんが、コンピューター技術を扱うための基本的な知識とスキルを持っています。 ソフトウェアユーザーのこの資格特性は、作成されたプログラム、インターフェイス、機械文書の形式、およびコンピューター上で問題を解決するための技術に対する要件の仕様に大きな影響を与えます。

米。 8.3.プログラムの作成と運用に関わる専門家間の交流の仕組み

プログラムの開発と運用に関わるさまざまな専門家のやりとりを図に示します。 8.3. 場合によっては、1 人の専門家が複数の種類の活動を組み合わせることもあります。 データベース管理者とシステム プログラマーは、プログラムを実行するための情報、ソフトウェア、および技術的条件を準備します。 点線は専門家がコンサルタントとして参加していることを示しています。

ソフトウェア製品の特徴

すべてのプログラムは、使用の性質とユーザーのカテゴリーに応じて、実用的なプログラムとソフトウェア製品(製品)の 2 つのクラスに分類できます (図 8.4)。

功利主義的なプログラム (「自分用のソフトウェア」)は、開発者のニーズを満たすように設計されています。 ほとんどの場合、実用的なプログラムは、データ処理テクノロジにおけるサービスの役割を果たしたり、広範囲に配布することを目的としていない機能的な問題を解決するためのプログラムです。

ソフトウェア製品 (製品は)ユーザーのニーズを満たすように設計され、広く配布され、販売されます。


現在、グローバルまたは地域の電気通信を使用して登場したソフトウェア製品を合法的に配布するための他のオプションがあります。

米。 8.4. ユーザーカテゴリーによるプログラムの分類

フリーウェア - 自由に配布される無料プログラムは、必要な変更を加える権限を与えられたユーザー自身によってサポートされます。

シェアウェア - 原則として無料で使用できる非商用 (シェアウェア) プログラム。 このような製品を定期的に使用するには、一定の金額の支払いが必要です。

多くのメーカーが使用しているOEM プログラム(相手先ブランド供給メーカー )、つまり コンピュータにインストールされている、またはコンピュータ機器に付属している組み込みプログラム。

ソフトウェア製品は、動作のために適切に準備され、必要な技術文書があり、サービスを提供し、プログラムの信頼性の高い動作を保証し、メーカーの商標があり、できれば州の登録コードが必要です。 このような条件下でのみ、作成されたソフトウェア複合体をソフトウェア製品と呼ぶことができます。

ソフトウェア - あらゆる種類の工業製品と同様に販売用に準備された、大量需要の特定の問題 (タスク) を解決するための相互に関連する一連のプログラム。

「自分用のプログラム」からソフトウェア製品までの道のりは非常に長く、プログラムの開発と運用のための技術的およびソフトウェア環境の変化と、独立した産業である情報ビジネスの出現と発展に関連しています。ソフトウェア開発会社の分業、さらなる専門化、ソフトウェアおよび情報サービス市場の形成が特徴です。

ソフトウェア製品は次のように作成できます。

注文に応じた個別の開発。

ユーザー間での大量配布を目的とした開発。

個別開発では、特定の顧客向けのデータ処理内容を考慮したオリジナルのソフトウェア製品を開発会社が作成します。

大量配布向けに開発を行う場合、開発会社は一方では実行されるデータ処理機能の汎用性を確保し、他方では特定のアプリケーションの条件に合わせたソフトウェア製品の柔軟性とカスタマイズを確保する必要があります。 ソフトウェア製品の際立った特徴は、その体系的な性質、つまり機能の完全性と、一緒に使用される実装された処理機能の完全性である必要があります。

このソフトウェア製品は、最新のプログラミング ツールを使用して設計作業を実行するための産業技術に基づいて開発されています。 特異性は、情報処理の性質と使用されるツールに応じた、アルゴリズムとプログラムの開発プロセスの独自性にあります。 ソフトウェア製品の作成には、労働力、資材、財務など、多大なリソースが費やされます。 高度な資格を持つ開発者が必要です。

原則として、ソフトウェア製品にはメンテナンスが必要です。メンテナンスは専門会社であるソフトウェア販売会社(ディストリビュータ)によって行われますが、開発会社によって行われることはあまりありません。 大量使用のためにプログラムを維持するには、検出されたエラーの修正、プログラムの新しいバージョンの作成など、多大な労力がかかります。

ソフトウェア製品のサポート - ソフトウェア製品の機能の維持、新しいバージョンへの移行、変更、検出されたエラーの修正など。

従来のソフトウェア製品とは異なり、ソフトウェア製品には、プログラム作成時に指定される一連の厳密に規制された品質特性がありません。また、ソフトウェアによって提供される同じ処理機能でも精緻さが異なる場合があるため、これらの特性を正確に指定したり、事前に評価したりすることができません。 。 ソフトウェア製品の開発にかかる時間とコストですら、事前に高い精度で決定することはできません。

プログラムの主な特徴は次のとおりです。

アルゴリズムの複雑さ(情報処理アルゴリズムのロジック)。

実装された処理機能の構成と詳細度。

処理機能の完全性と一貫性。

プログラムファイルの量。

オペレーティング システムの要件と外部からの処理の技術的手段

ソフトウェアツール。

ディスクメモリボリューム。

プログラムを実行するための RAM のサイズ。

プロセッサのタイプ。

オペレーティング システムのバージョン。

コンピュータネットワークの利用可能性など。

ソフトウェア製品にはさまざまな種類があります 品質指標、これは次の側面を反映しています。

ソフトウェア製品がどの程度(シンプル、信頼性、効果的)に使用できるか。

ソフトウェア製品の使いやすさ。

ソフトウェア製品の使用条件等が変更になった場合、使用することはできますか?

ソフトウェア製品の品質特性のツリーを図に示します。 8.5。


米。 8.5。 ソフトウェア製品の品質特性のツリー


可動性ソフトウェア製品とは、データ処理システム、動作環境、ネットワーク データ処理テクノロジ、対象領域の詳細などの技術的複雑さから独立していることを意味します。 モバイル (マルチプラットフォーム)

ソフトウェア製品は、コンピュータ ネットワークでの動作に制限を受けることなく、さまざまなモデルのコンピュータやオペレーティング システムにインストールできます。 このようなソフトウェア製品の処理機能は、そのまま大量利用に適しています。

信頼性ソフトウェア製品の動作は、プログラムのスムーズさと安定性、所定の処理機能の実行の正確さ、プログラムの動作中に発生するエラーの診断能力によって決まります。

効率ソフトウェア製品は、その直接の目的であるユーザー要件の観点と、その動作に必要なコンピューティング リソースの消費という観点の両方から評価されます。

コンピューティング リソースの消費量は、プログラムを保存するための外部メモリの量とプログラムを実行するための RAM の量によって評価されます。

人的要因を考慮する これは、エンド ユーザーにフレンドリーなインターフェイスを提供すること、ソフトウェアの一部として状況依存のヒントまたはトレーニング システムが存在すること、ソフトウェアに組み込まれた機能を習得および使用するための適切なドキュメント、エラーの分析と診断などを提供することを意味します。

変更可能性 ソフトウェア製品とは、処理機能の拡張、別の技術処理ベースへの移行など、変更を加える能力を意味します。

コミュニケーションスキル ソフトウェア製品は、他のプログラムとの可能な限りの統合に基づいており、共通の表示形式でのデータ交換 (データベースのエクスポート/インポート、処理オブジェクトの実装またはリンクなど) を保証します。

ソフトウェア市場の存在に関して、重要な特徴は次のとおりです。

価格;

販売数。

市場で費やした時間(販売期間)。

開発会社とプログラムの人気。

同様の目的のソフトウェア製品の可用性。

大量配布されたソフトウェア製品は、需要と市場状況 (競合プログラムの入手可能性と価格) を考慮した価格で販売されます。 企業が実施するマーケティングは非常に重要であり、それには以下が含まれます。

市場を征服するための価格政策の形成。

ソフトウェア製品を販売するための取引ネットワーク(いわゆるディーラーおよび配送センター)の構築。

ソフトウェア製品ユーザーへのサポートおよび保証サービスの提供、ホットライン(ソフトウェア製品の操作中に発生した質問への迅速な対応)の作成。

ソフトウェア製品ユーザーのトレーニング。

ソフトウェア製品の特有の特徴は (ほとんどの工業製品とは異なります)、その操作が法的根拠、つまりソフトウェア製品開発者の著作権に準拠した開発者とユーザー間のライセンス契約に基づいて実行されなければならないことです。

ソフトウェア製品のライフサイクル

あらゆる種類のプログラムには特徴があります ライフサイクル、個別のステージで構成されます。

a) ソフトウェア市場のマーケティング、ソフトウェア製品の要件の仕様。

b) ソフトウェア製品の構造を設計する。

c) プログラミング (プログラム コードの作成)、テスト、プログラムの自律的かつ複雑なデバッグ。

d) ソフトウェア製品の文書化、運用および技術文書の作成。

e) ソフトウェア市場に参入し、ソフトウェア製品を配布する。

f) ユーザーによるソフトウェア製品の操作。

g) ソフトウェア製品のサポート。

h ) ソフトウェア製品の販売中止、サポートの拒否。 図では、 8.6 はライフサイクルの各段階を示し、それらの相互の時間的対応を示します。 ライフサイクルの個々の段階の内容を考えてみましょう。

米。 8.6.ソフトウェア製品のライフサイクルの段階

マーケティングそして 仕様ソフトウェア製品は、作成されたソフトウェア製品の要件を検討するように設計されています。つまり、次のとおりです。

ソフトウェア製品のデータ処理機能の構成と目的を決定する。

ソフトウェア製品との対話の性質、ユーザー インターフェイスの種類 (メニュー システム、マウスの使用、プロンプトの種類、画面上のドキュメントの種類など) に関するユーザー要件を確立する。

ソフトウェア製品を動作させるためのハードウェアとソフトウェアのセットの要件など。

この段階では、問題を形式的に説明する必要があります。

ソフトウェア製品が受注生産ではなく、ソフトウェア市場への参入を目的としている場合、マーケティングが全面的に実行されます。競合するソフトウェア製品と類似製品が調査され、ソフトウェア製品に対するユーザーの要件が要約され、販売市場の潜在的な能力が調査されます。を設定し、価格と販売数量の予測を示します。 さらに、ソフトウェア製品の開発に必要な資材、労働力、財源、およびソフトウェア製品のライフサイクルの主要段階のおおよその期間を見積もることも重要です。

ソフトウェア製品が特定の顧客向けのカスタム ソフトウェア製品として作成される場合、この段階で、その開発タスクを正しく策定し、文書化することも重要です。 ソフトウェア製品の要件を誤解すると、その動作中に望ましくない結果が生じる可能性があります。

構造設計 ソフトウェア製品が関連付けられている アルゴリズム化データ処理プロセス、処理機能の詳細、ソフトウェア製品の構造(ソフトウェアモジュールのアーキテクチャ)の開発、タスクの情報ベース(データベース)の構造、プログラムを作成するための方法とツールの選択、つまりプログラミング技術。

プログラミング、テスト そして デバッグプログラムは設計ソリューションの技術的な実装であり、選択された開発者ツール (アルゴリズム言語とプログラミング システム、開発者ツール環境など) を使用して実行されます。

モジュール構造が開発された大規模で複雑なソフトウェア システムの場合、この段階の個々の作業を並行して実行できるため、ソフトウェア製品全体の開発時間が短縮されます。 このプロセスで使用されるプログラミング ツールとデバッグ ツールは、作業の複雑さ、コスト、作成されたプログラムの品質に影響を与えるため、重要な役割を果たします。

ソフトウェア製品の文書化 これは、原則として開発者自身によってではなく、ソフトウェア製品の配布および実装に関係する人によって実行される必須のタイプの作業です。 ドキュメントには、ソフトウェア製品のインストールと信頼性の高い動作の確保、処理機能を実行する際のユーザーのサポート、およびソフトウェア製品を他のプログラムと統合するための手順を決定するために必要な情報が含まれている必要があります。 ソフトウェア製品の配布と運用が成功するかどうかは、ドキュメントの品質に大きく依存します。

ソフトウェア製品のマシン レベルでは、原則として次のものが作成されます。

自動化された状況依存ヘルプ (ヘルプ);

教育システム (電子教科書) またはパッシブ モード (ビデオ、漫画) と同様のアクティブ モードで動作するデモ バージョン - ソフトウェア製品の機能とその使用における情報テクノロジをデモンストレーションします。

ソフトウェア製品をソフトウェア市場にリリースする 大衆ユーザーへの販売の組織化に関連しています。 この段階はできるだけ短くする必要があり、ソフトウェア製品の販売促進には、広告、販売チャネルの数の増加、ディーラーと流通ネットワークの構築、価格設定政策 (割引販売、アフターサービスなど) などの標準的なマーケティング手法が使用されます。

マーケティング活動とソフトウェア製品サポートの継続的なプログラムが必要です。 一般に、各ソフトウェア製品には需要を反映した独自の販売曲線の形状があります (図 8.7)。

当初、ソフトウェア製品の売上は増加します (曲線の増加部分)。 次に、ソフトウェア製品の売上の安定化です。 開発会社は、高水準の安定した売上期間を最大限継続するよう努めます。 次に、販売量の減少は、このソフトウェア製品に関する会社のマーケティング方針の変更の兆候であり、この製品の修正が必要になったり、価格が変更されたり、販売から撤退したりする必要があります。

米。 8.7. ソフトウェア製品の売上曲線

ソフトウェア製品の操作 彼のものと並行して走る 伴奏、この場合、サポートがなくてもプログラムの動作を開始したり、サポートが一定期間完了した場合でもプログラムの動作を継続したりできます。 ソフトウェア製品が販売から削除された後も、一定期間維持することもできます。 ソフトウェア製品の動作中に、検出されたエラーは除去されます。

ソフトウェア製品の販売の削除 そして 同行拒否これは、原則として、開発会社の技術方針の変更、ソフトウェア製品の非効率な運用、製品に致命的なエラーの存在、または需要の欠如が発生した場合に発生します。

異なるソフトウェア製品のライフサイクルの長さは同じではありません。 最新のソフトウェア製品のほとんどでは、ライフサイクルは年単位 (2 ~ 3 年) で測定されます。 コンピューター上には、長い間製造中止になったソフトウェア製品がよく見られます。

ソフトウェア製品開発の特徴は、初期段階で決定が行われ、それが後の段階で実装されることです。 たとえば、ソフトウェア製品の要件を指定する際にミスを犯すと、その後のソフトウェア製品の開発または運用段階で多大な損失が発生し、さらにはプロジェクト全体の失敗につながります。 したがって、ソフトウェア製品の仕様を変更する必要がある場合は、ソフトウェア製品のその後の設計と作成のすべての段階を完全に繰り返す必要があります。

1. ソフトウェア製品の概念とクラス。

2. ソフトウェア製品のライフサイクル。

3. ソフトウェア製品の保護に関する基本概念。

4. 不正コピーから保護するソフトウェア システム。

5. ソフトウェア製品およびデータベースを保護する法的方法。

6. 使用範囲に応じたソフトウェア製品のクラスの特徴。

7. アプリケーション ソフトウェア パッケージの分類。

質問その1。ソフトウェア製品の概念とクラス。

アプリケーション ソフトウェア パッケージ (APP) は、情報ソフトウェア市場の中で最もダイナミックに発展している部分です。 PPP の改善は、あらゆる活動分野でのコンピュータの導入に貢献します。

すべてのプログラムは、使用の性質とユーザー カテゴリに応じて 2 つのクラスに分類できます。

1. 実用的なプログラム (「自分用のプログラム」) は、開発者のニーズを満たすように設計されています。 ほとんどの場合、それらはデータ処理テクノロジのサービスとして機能するか、広範囲に配布することを目的としていない機能的な問題を解決するためのプログラムです。

2. ソフトウェア製品(製品)は、ユーザーのニーズに合わせて広く配布および販売されるように設計されています。

現在、グローバルまたは地域の電気通信を使用して登場したソフトウェア製品を合法的に配布するための他のオプションがあります。

1. フリーウェア - 自由に配布され、必要な変更を加える権限を与えられたユーザー自身によってサポートされる無料プログラム。

2. シェアウェア – 原則として無料で使用できる非商用 (シェアウェア) プログラム。 このような製品を定期的に使用することを条件として、一定の金額が支払われます。

ソフトウェア製品は、動作のために適切に準備され、必要な文書があり、サービスを提供し、プログラムの信頼できる動作が保証され、メーカーの商標があり、できれば州の登録コードが必要です。 このような条件下でのみ、作成されたソフトウェア複合体をソフトウェア製品と呼ぶことができます。

ソフトウェア製品(PP)は、あらゆる種類の工業製品と同様に販売用に準備された、大量需要の特定の問題 (タスク) を解決するための相互に関連するプログラムのセットです。

ソフトウェア製品は、注文に応じて個別に開発することも、ユーザー間で大量に配布するための開発として作成することもできます。

質問その2。ソフトウェア製品のライフサイクル。

あらゆる種類のプログラムには特徴があります ライフサイクル、個別のステージで構成されます。

1) ソフトウェア市場のマーケティング、ソフトウェア製品の要件の仕様。

ソフトウェア製品のマーケティングと仕様は、作成されたソフトウェア製品の次の要件を検討することを目的としています。

· ソフトウェアデータ処理機能の構成と目的の決定。

· ソフトウェア製品との対話の性質、ユーザー インターフェイスの種類 (メニュー システム、マウスの使用など) に関するユーザー要件を確立します。

・ソフトウェアを動作させるためのハードウェアとソフトウェアのセットの要件など。

この段階では、問題を形式的に説明する必要があります。

2) ソフトウェア製品の構造を設計する。

データ処理プロセスのアルゴリズム化、処理機能の詳細化、タスクのソフトウェアと情報ベース(データベース)の構造の開発、プログラムを作成するための方法とツールの選択(プログラミング技術)に関連します。

3)プログラミング(プログラムコードの作成)、テスト、プログラムの自律的かつ複雑なデバッグ。

これらは設計ソリューションの技術的な実装であり、選択された開発者ツールを使用して実行されます。

4) ソフトウェア製品の文書化、運用および技術文書の作成。

ソフトウェアの文書化は必須の作業であり、原則として開発者自身ではなく、ソフトウェア製品の配布と実装に関係する人によって実行されます。 ドキュメントには、ソフトウェア製品のインストールと信頼性の高い動作の確保、処理機能を実行する際のユーザーのサポート、およびソフトウェア製品を他のプログラムと統合するための手順を決定するために必要な情報が含まれている必要があります。 ソフトウェアの配布と運用が成功するかどうかは、そのドキュメントの品質に大きく依存します。

5) ソフトウェア市場への参入、ソフトウェア製品の配布(大衆ユーザーへの販売の組織化に関連)。

この段階はできるだけ短くする必要があり、広告、販売チャネルの数の増加、価格設定ポリシーなどの標準的なマーケティング手法を使用してソフトウェアを宣伝します。

6) ユーザーによるソフトウェア製品の操作。

彼と平行して進む 伴奏, この場合、サポートがなくてもプログラムの動作を開始したり、サポートが完了してしばらく経てば継続したりすることができます。 ソフトウェアの販売終了後も、一定期間サポートを行うことができます。 ソフトウェアの動作中に、検出されたエラーは除去されます。

7) ソフトウェア製品のサポート。

8) ソフトウェア製品の販売中止、サポートの拒否。

原則として、開発会社の技術方針の変更、ソフトウェアの非効率性、致命的なエラーの存在、または需要の欠如が発生した場合に発生します。

異なるソフトウェアのライフサイクルの期間は同じではありません。 最新の PCB のライフサイクルは年単位 (2 ~ 3 年) で測定されます。 コンピューターには、長い間生産中止になった PCB がよく見られます。

質問その3。ソフトウェア製品の保護 (PP) に関する基本概念。

ソフトウェア製品とコンピュータ データベースは、高度な資格を持つ専門家の知的作業の対象です。 ソフトウェアも、その機能の復元が複雑で労力を要する性質であること、および情報システムの運用にとってソフトウェアが重要であるため、保護の対象となります。

ソフトウェア保護には次の目標があります。

1. プログラムへの不正アクセス、またはその意図的な破壊および盗難の制限。

2. プログラムの不正コピー(複製)の排除。

ソフトウェア製品とデータベースは、いくつかの領域で暴露から保護する必要があります。

1) – コンピュータメディアおよびソフトウェアドキュメントの盗難。 ソフトウェア製品等の不具合。

2) 装置– ハードウェアをコンピュータに接続して、プログラムやデータを読み取ったり、物理的に破壊したりする。

3) 専門的なプログラム– ソフトウェア製品またはデータベースを動作不能にする(ウイルス感染など)、プログラムやデータベースの不正コピーなど。

ソフトウェアとデータベースを保護する最も簡単で手頃な方法は、次のとおりです。 アクセス制限。ソフトウェア製品とデータベースへのアクセス制御は、次のように構築されます。

1. プログラムの起動時のパスワード保護。

2. プログラムを実行するためにキーフロッピーディスクを使用する。

3. プログラムやデータ、利用者が利用できる処理機能等の制限

も使用できます 暗号化手法データベース情報または主要なソフトウェア モジュールの保護。

質問その4。不正コピーから保護するソフトウェア システム。

ソフトウェア保護システムを使用する場合、プログラムはコピー不可能な固有の場合にのみ実行されます。 要素。

そのような重要な要素は次のとおりです。

· コピーできないキーが書き込まれたフロッピー ディスク。

· コンピュータハードウェアの特定の特性。

· コンピュータに接続され、識別コードを発行するように設計された特別なデバイス (電子キー)。

PP コピー防止ソフトウェア システム:

· プログラムが起動される環境を特定する。

· プログラムを起動するための適切な環境、つまり承認された起動が許可される環境を確立します。

· 許可されていない環境からの発射に対する反応を展開する。

· 許可されたコピーを登録する。

· システムのアルゴリズムとプログラムの研究に対抗する。

質問その5。ソフトウェア製品とデータベースを保護する法的方法。

法的救済には次のようなものがあります。

· 特許保護。

· 営業秘密に関する法律。

· ライセンス契約および契約。

· ソフトウェアおよびデータベースの販売および使用から経済的利益を受け取る権利を所有者に与える経済的権利。

· 作品における作者の人格の保護を保証する人格権。

多くの文明国では、販売または無料配布を目的としたプログラムの不正コピーは国家犯罪とみなされ、罰金または懲役刑が科せられます。 ただし、著作権自体は、ソフトウェア開発の新しいアイデア、概念、方法論、および技術を保護するものではありません。

質問その6。使用範囲に応じたソフトウェア製品のクラスの特徴。

ソフトウェアの使用範囲(領域)に応じて、これは次のようになります。

・自律型コンピュータおよびコンピュータネットワークのハードウェア。

· さまざまな主題分野の機能的なタスク。

・ソフトウェア開発技術

情報テクノロジをサポートするために、次の 3 つのクラスのソフトウェアが区別されます。

· システム ソフトウェア。

· アプリケーション パッケージ。

· プログラミング技術ツール。

システムソフトウェアに送信された:

1. 他のプログラムが機能するための動作環境を作成する。

2. コンピュータ自体とコンピュータ ネットワークの信頼性が高く効率的な動作を保証するため。

3. コンピュータ機器およびコンピュータネットワークの診断と予防保守を実行する。

4. 補助的な技術プロセス (コピー、アーカイブなど) を実行するため。

システムソフトウェア –コンピュータおよびコンピュータ ネットワークの動作を保証するための一連のプログラムおよびソフトウェア システム。

アプリケーションパッケージこれらは機能的な問題を解決するためのソフトウェア ツールとして機能し、ソフトウェアの中で最大のクラスです。 このクラスには、さまざまな主題分野の情報を処理するソフトウェアが含まれます。

コンピュータへのソフトウェアのインストールは資格のあるユーザーによって実行され、その直接操作は通常、エンド ユーザー、つまり情報の消費者によって実行されますが、多くの場合、その活動はコンピュータ分野からは非常に遠いものです。 このクラスのソフトウェアは、個々の主題分野に非常に特化したものになる可能性があります。

アプリケーションパッケージ– 特定の主題領域の特定のクラスの問題を解決するための相互接続されたプログラムのセット。

プログラム開発プロセスを提供し、開発者ツールである特殊なソフトウェアが含まれています。 このクラスの PP は、設計、プログラミング (コーディング)、デバッグ、作成されたプログラムのテストのプロセスのすべての技術段階をサポートします。

プログラミング技術ツールキット– 作成されたソフトウェアの開発、デバッグ、実装のためのテクノロジーを提供する一連のプログラムおよびソフトウェア パッケージ。

質問その7。アプリケーション プログラム パッケージ (APP) の分類。

最も代表的なのは PPP です。これは主に、人間の活動のあらゆる分野でコンピュータ テクノロジーが広く使用され、さまざまな主題分野で自動化された情報システムが構築されたことによるもので、以下に分類されます。

データ処理システムの技術的基盤としてのコンピュータの機能は、使用されるソフトウェア (プログラム) に関連しています。

プログラム- 問題を解決するためのコンピューター コマンド (命令) の順序付けられたシーケンス。

ソフトウェア- データ処理プログラムとその操作に必要な文書のセット。

プログラムは、タスクを機械で実装するために設計されています。 タスクとアプリケーションという用語は、コンピューター サイエンスとソフトウェアの文脈で非常に広く使用されています。 その中で 問題解決すべき問題であり、 応用- 問題を解決するためのコンピュータ上でのソフトウェアの実装。

すべてのプログラムは、使用の性質とユーザーのカテゴリーに応じて 2 つのクラスに分類できます。 功利的なプログラムそして ソフトウェア製品(製品).

功利主義的なプログラム開発者のニーズを満たすように設計されています。 ほとんどの場合、実用的なプログラムは、データ処理テクノロジにおけるサービスの役割を果たすか、または広範囲に配布することを目的としていない機能的な問題を解決するためのプログラムです。

ソフトウェア製品(製品)ユーザーのニーズに合わせて設計され、広く配布および販売されます。

現在、グローバルまたは地域の電気通信を使用して登場したソフトウェア製品を合法的に配布するための他のオプションがあります。

· フリーウェア- 自由に配布される無料プログラムは、必要な変更を加える権限を与えられたユーザー自身によってサポートされます。

· シェアウェア- 原則として無料で使用できる非商用 (シェアウェア) プログラム。 このような製品を定期的に使用するには、一定の金額の支払いが必要です。

ソフトウェア製品は、動作のために適切に準備され、必要な技術文書があり、サービスを提供し、プログラムの信頼できる動作が保証され、メーカーの商標があり、できれば州の登録コードが必要です。

ソフトウェアは、あらゆる種類の工業製品と同様に販売用に準備された、大量需要の特定の問題 (タスク) を解決するための相互に関連するプログラムのセットです。

ソフトウェア製品次のように作成できます:

· 注文に応じた個別の開発。

· ユーザー間で大量配布するための開発。

通常、ソフトウェア製品には次のものが必要です。 護衛、プログラムを配布する専門会社 (ディストリビューター) によって実行されますが、開発会社によって実行されることはあまりありません。

ソフトウェア製品のサポート- これは、ソフトウェア製品の機能、新しいバージョンへの移行、変更、検出されたエラーの修正などのサポートです。

ソフトウェア製品の主な特徴は次のとおりです。

可動性ソフトウェア製品とは、データ処理システム、動作環境、ネットワーク データ処理テクノロジ、対象領域の詳細などの技術的複雑さから独立していることを意味します。

信頼性ソフトウェア製品の動作は、プログラムのスムーズさと安定性、所定の処理機能の実行の正確さ、プログラムの動作中に発生するエラーの診断能力によって決まります。

効率ソフトウェア製品は、その直接の目的であるユーザー要件の観点と、その動作に必要なコンピューティング リソースの消費という観点の両方から評価されます。

人的要因を考慮するこれは、エンド ユーザーにフレンドリーなインターフェイスを提供すること、ソフトウェアの一部として状況依存のヒントまたはトレーニング システムが存在すること、ソフトウェアに組み込まれた機能を習得および使用するための適切なドキュメント、エラーの分析と診断などを提供することを意味します。

変更可能性ソフトウェア製品とは、処理機能の拡張、別の技術処理ベースへの移行など、変更を加える能力を意味します。

コミュニケーションスキルソフトウェア製品は、他のプログラムとの可能な限りの統合に基づいており、共通の表示形式でのデータ交換 (データベースのエクスポート/インポート、処理オブジェクトの実装またはリンクなど) を保証します。

ソフトウェア市場の存在に関して、重要な特徴は次のとおりです。

・ 価格; 2)販売数。 3)市場で費やした時間(販売期間)。 4) 開発会社とプログラムの人気。 5) 同様の目的でのソフトウェア製品の利用可能性。

ソフトウェア製品の特有の特徴は (ほとんどの工業製品とは異なります)、その操作が法的根拠、つまりソフトウェア製品開発者の著作権に準拠した開発者とユーザー間のライセンス契約に基づいて実行されなければならないことです。

ソフトウェア製品を保護する方法

ソフトウェア製品を保護する方法は、ソフトウェアと法律に分けられます。 ソフトウェア システムを使用する場合、プログラムはコピー不可能な固有の場合にのみ実行されます。 重要な要素。 それで 重要な要素可能性があるのは次のとおりです:

· コピーできないキーが書き込まれたフロッピー ディスク。

· コンピュータハードウェアの特定の特性。

コンピュータに接続され、識別コードを発行するように設計された特別なデバイス (電子キー)

特許保護プログラムの開発に適用される新しいアプローチまたは方法の開発および使用における優先順位を確立し、その独創性を証明します。

状態 営業秘密プログラムに関して、そのプログラムに精通している人、またはプログラムの運営を許可されている人の範囲を制限し、また、秘密を開示する責任の範囲も決定します。

ライセンス契約これは、著作権、特許保護、企業秘密を含む、ソフトウェア製品の法的保護のあらゆる側面に適用されます。 最も一般的に使用されるライセンス契約は、著作権譲渡契約です。

ライセンス- 1名による譲渡の同意 (ライセンサー)他の人に (ライセンシー宛)名前、製品、技術、またはサービスを使用する権利。 ライセンサーライセンス料を徴収することで収入を増やし、ソフトウェア製品やデータベースの配布エリアを拡大します。 ライセンシーそれらを利用することで収入が生まれます。

独占的ライセンス- ソフトウェア製品またはデータベースに対するすべての所有権の売却。ライセンス購入者にはそれらを使用する独占的権利が与えられ、作成者または特許所有者はそれらを単独で使用したり他者に提供したりすることを拒否します。

簡易ライセンス- ライセンサーは、ライセンシーにソフトウェア製品またはデータベースを使用する権利を付与し、それらを使用し、同様の条件で無制限の数の人に提供する権利を留保します。

ラベルライセンス- ソフトウェア製品またはデータベースの 1 コピーのライセンス。 このタイプのライセンスは小売販売に使用されます。 各公式購入者は、使用するために販売者とライセンス契約を締結しますが、開発者の著作権は保持されます。

ソフトウェア製品およびコンピュータデータベースの保護に関する法律 著者による個人をその創造的活動の結果として創造されたものとして認識します。 著者へ彼の所有権に関係なく 個人の著作権:プログラムまたはデータベースの作成者、名前、完全性(整合性)。

すべてのプログラムは、使用の性質とユーザーのカテゴリに基づいて 2 つのクラスに分類できます。

功利的なプログラム(「自分用のプログラム」) は、開発者のニーズを満たすように設計されています。 ほとんどの場合、実用的なプログラムは、データ処理テクノロジにおけるサービスの役割を果たしたり、広範囲に配布することを目的としていない機能的な問題を解決するためのプログラムです。

ソフトウェア製品(以下「製品」)は、ユーザーのニーズに応え、広く流通、販売されることを目的としています。

現在、グローバルまたは地域の電気通信を使用して登場したソフトウェア製品を合法的に配布するための他のオプションがあります。

フリーウェア– 自由に配布される無料プログラムはユーザー自身によってサポートされており、ユーザーはプログラムに必要な変更を加える権利を有します。

シェアウェア– 原則として無料で使用できる非営利(シェアウェア)プログラム(定期的に使用する場合には一定額の支払いが必要)。

多くのメーカーが OEM (相手先商標製品製造業者) プログラムを使用しています。 コンピュータにインストールされている、またはコンピュータ機器に付属している組み込みプログラム。

ソフトウェア製品は、動作のために適切に準備され、必要な技術文書があり、サービスを提供し、プログラムの信頼性の高い動作を保証し、メーカーの商標があり、できれば州の登録コードが必要です。 このような条件下でのみ、作成されたソフトウェア複合体をソフトウェア製品と呼ぶことができます。

ソフトウェア– あらゆる種類の工業製品と同様に販売用に準備された、大量需要の特定の問題 (タスク) を解決するための相互に関連する一連のプログラム。

「自分用のプログラム」からソフトウェア製品までの道のりは非常に長く、プログラムの開発と運用のための技術的およびソフトウェア環境の変化と、独立した産業である情報ビジネスの出現と発展に関連しています。ソフトウェア開発会社の分業、さらなる専門化、ソフトウェアおよび情報サービス市場の形成が特徴です。

ソフトウェア製品は次のように作成できます。

– 注文に応じた個別の開発。

– ユーザー間で大量配布するための開発。

個別開発では、特定の顧客向けのデータ処理内容を考慮したオリジナルのソフトウェア製品を開発会社が作成します。

大量配布向けに開発を行う場合、開発会社は一方では実行されるデータ処理機能の汎用性を確保し、他方では特定のアプリケーションの条件に合わせたソフトウェア製品の柔軟性とカスタマイズを確保する必要があります。 ソフトウェア製品の際立った特徴は、その体系的な性質、つまり機能の完全性と、一緒に使用される実装された処理機能の完全性である必要があります。

このソフトウェア製品は、最新のプログラミング ツールを使用して設計作業を実行するための産業技術に基づいて開発されています。 特異性は、情報処理の性質と使用されるツールに応じた、アルゴリズムとプログラムの開発プロセスの独自性にあります。 ソフトウェア製品の作成には、労働力、資材、財務など、多大なリソースが費やされます。 高度な資格を持つ開発者が必要です。

原則として、ソフトウェア製品にはメンテナンスが必要です。メンテナンスは専門会社であるソフトウェア販売会社(ディストリビュータ)によって行われますが、開発会社によって行われることはあまりありません。 大量使用のためにプログラムを維持するには、検出されたエラーの修正、プログラムの新しいバージョンの作成など、多大な労力がかかります。

ソフトウェア製品のサポート– ソフトウェア製品の機能の維持、新しいバージョンへの移行、変更、検出されたエラーの修正など。

従来のソフトウェア製品とは異なり、ソフトウェア製品には、プログラムの作成時に指定される厳密に規制された一連の品質特性がないか、これらの特性を事前に正確に指定したり評価したりすることができません。 ソフトウェアによって提供される同じ処理機能でも、詳細の深さが異なる場合があります。 ソフトウェア製品の開発にかかる時間とコストですら、事前に高い精度で決定することはできません。

プログラムの主な特徴:

– アルゴリズムの複雑さ(情報処理アルゴリズムのロジック)。

– 実装された処理機能の構成と詳細度。

– 処理機能の完全性と一貫性。

– プログラムファイルの量。

– オペレーティング システムの要件とソフトウェア側の処理の技術的手段。

– ディスクメモリボリューム。

– プログラムを実行するための RAM のサイズ。

– プロセッサの種類。

– オペレーティング システムのバージョン。

– コンピュータネットワークの利用可能性など

ソフトウェア製品には、次の側面を反映するさまざまな品質指標があります。

– ソフトウェア製品がどの程度(シンプル、信頼性、効果的)に使用できるか。

– ソフトウェア製品の使いやすさ。

– 使用条件が変更された場合など、ソフトウェア製品を使用することは可能ですか?

ソフトウェア製品の品質特性のツリーを図に示します。

可動性 ソフトウェア製品とは、データ処理システム、動作環境、ネットワーク データ処理テクノロジ、対象領域の詳細などの技術的複雑さから独立していることを意味します。 モバイル (マルチプラットフォーム) ソフトウェア製品は、コンピュータ ネットワークでの動作に制限を受けることなく、さまざまなコンピュータ モデルやオペレーティング システムにインストールできます。 このようなソフトウェア製品の処理機能は、そのまま大量利用に適しています。

信頼性 ソフトウェア製品の動作は、プログラムのスムーズさと安定性、所定の処理機能の実行の正確さ、プログラムの動作中に発生するエラーの診断能力によって決まります。

効率 ソフトウェア製品は、その直接の目的であるユーザー要件の観点と、その動作に必要なコンピューティング リソースの消費という観点の両方から評価されます。

人的要因を考慮する これは、エンド ユーザーにフレンドリーなインターフェイスを提供すること、ソフトウェアの一部として状況依存のヒントまたはトレーニング システムが存在すること、ソフトウェアに組み込まれた機能を習得および使用するための適切なドキュメント、エラーの分析と診断などを提供することを意味します。

変更可能性 ソフトウェア製品とは、処理機能の拡張、別の技術処理ベースへの移行など、変更を加える能力を意味します。

コミュニケーションスキル ソフトウェア製品は、他のプログラムとの可能な限りの統合に基づいており、共通の表示形式でのデータ交換 (データベースのエクスポート/インポート、処理オブジェクトの実装またはリンクなど) を保証します。