2025年10月27日月曜日

アルゴリズムの考え方

総当たりアルゴリズム



すべての場合をためし、解を求める。


近似アルゴリズム



 ・正解に近い解を探す

・正解との誤差がある範囲におさまると保証されているものを

 精度保証付アルゴリズムという。

・精度の保証のないアルゴリズムを、発見的手法(ヒューリスティック)
 
 という。




2025年10月26日日曜日

Webエンジニアリング

WEBアプリケーションの仕様化と分析

 

仕様化とは、次の問いに答えること

・Webアプリケーションが必要となる主要なモチベーションは、何か?

・誰が、Webアプリケーションを必要としているか?

・誰が、Webアプリケーションを使うか?

これを基に、目標を設定する

目標には、次が含まれる

・どんな情報やコンテンツを提供するか

・Web App で何ができるのか

分析は、要件を定義するものであるが、Web特融の点としては、以下がある


1.コンテンツの分析


 Webアプリケーションで提供するコンテンツを特定する
 
 データモデリング手法も利用できる


2.インタラクション分析


 ユーザとのかかわり合いを分析する

 ユースケースを利用できる


3.機能分析

  ユースケースシナリオを作り、オペレーションや機能を特定する


4.コンフィグレーション分析

 Webアプリケーションの環境やインフラを定義する



Webアプリケーションの設計


 

アーキテクチャ・デザイン

 

 Webベースのシステムのアーキテクチャデザインは、Webのコンテンツの構造を定義する

 

ナビゲーションのデザイン


異なるロールのユーザに対して、アクセスできるコンテンツが異なる場合がある

その時、個々のロールに応じたナビゲーションを決定する必要がある

また、ナビゲーションの手段として、テキストベースのリンク、アイコン、ボタン、画像等から適切なものを選択する

また、ボタンが押せる、押せないを、ボタンの形状で変える、テキストベースのリンクの色で変更する等からも選択する

これ以外にも、サイトマップの利用、インデックス、サーチエンジン、helpの利用等を考慮する必要がある

 

インターフェースのデザイン


インターフェースのデザインに関していは、次のようなものがある

・サーバエラーを、利用者に見せない

・レスポンスを保つため、テキストや画像の両をしぼる

・スクロールを少なくする

・メニュー、ナビゲーション、ヘッダー、フッターは、統一し、すべてのページで利用可能とする

・意図が伝わらないアイコン、画像等はさける






2025年10月25日土曜日

ストレージの種類

ブロックストレージ


ブロック単位でアクセス。FCやiSCSIなどのプロトコルが使われる。


ファイルストレージ


ファイル単位でアクセス。NFSやNASなど。


オブジェクトストレージ


オブジェクト単位でアクセス。RESTでのAPIアクセスなど。








2025年10月21日火曜日

アルゴリズム「エラトステネスのふるい」の例

 たとえば、100までの素数を求める場合、以下のアルゴリズムとなる。

(1) 100個の配列を用意する。

(2) すべて配列の値を、1とする。

(3) 2の倍数番目の配列の値を、0とする。

(4) 3の倍数番目の配列の値を、0とする。

(5) 4は、すでに、0なので、次に進む。

(6) 5の倍数番目の配列の値を、0とする。

これを、100の平方根まで繰り返す。




2025年10月20日月曜日

[データ構造]グラフの種類

無向グラフ


エッジに方向がなく、エッジで結ばれたノードは、双方向の関係がある。


有向グラフ


エッジに方向があり、エッジで結ばれたノード間には、意味のある関係がある。


(親子関係など)

非連結グラフ


エッジで結ばれていないノードが、1つ以上ある。


非巡回グラフ


循環を含まないグラフ。


完全グラフ


すべてのノードが他のすべてのノードとエッジでつながる。


重み付きグラフ


ノード間のエッジが重み付けられたグラフ。


2025年10月19日日曜日

論文 Software Application Security Test Strategy with Lean Canvas Design


公開されている論文

Software Application Security Test Strategy with Lean Canvas Design

のキモ部分です。

1.概要

この論文は、ソフトウェアのセキュリティテスト計画に対して

リーンキャンパスデザインが、利用できるかを検証するもの


2.問題

セキュリティの品質を保持するチームは、多くの問題に直面する

・セキュリティテスト戦略の不足

・セキュリティテストが早期に開始できない

・セキュリティテストに精通した要因がいない

・適切なツールがない

・適切なテスト計画やテストデータがない


3.SDLCにおけるセキュリティテストとリーンキャンパスデザイン

SDLCにおけるセキュリティテストは、以下のように扱われる

(1)要件定義

セキュリティ要件や、誤利用などのテストケースを分析する。

(2)設計

システムのリスク分析を行う

(3)コーディングとユニットテスト

認証・認可、暗号化、入力の検証やエンコーディング

ユーザセッションの管理、エラーと例外ハンドリング、

監査とロギングなどの実装とテスト

(4)総合テスト

ブラックボックスでのテスト

(5)システムテスト

SQLインジェクションなどのホワイトボックステスト

(6)稼働

脆弱性のSCANや、ペネトレーションテスト

(7)サポート

ソフトウェアのパッチ、アップデート


4.アジャイルとセキュリティテストの関連

(1)新しいイテレーションの開始

セキュリティ要求の収集

(2)ユーザーストーリー

セキュリティアーキテクチャのレビュ

(3)ユーザーストーリーの実装

アプリケーションの脆弱性の検査

(4)Deploy

外部のセキュリティテスト


5.セキュリティアーキテクチャの概要

(1)要求

・ユーザーストーリー

・アーキテクチャやシステムコンポーネントのリスク分析

・セキュリティ要求の詳細化

(2)設計

・リスク分析

・脅威モデル

(3)コーディング

コードのレビュ

(4)テスティング

ペネトレーションテストなど

(5)リリース

セキュリティポリシーの設定、セットアップ

(6)保守

オペレーションのセキュリティ








ソフトウェア開発での再利用の対象

 再利用の対象は、ソフトウェアの生産性や品質を上げるのに、重要な手段である。

一般的には、次のような再利用の対象が考えられる。

・アーキテクチャ

・ソースコード

・要求定義

・設計

・データ

・見積 

・画面

・プロジェクト計画

・テスト計画

・テストケース

・テストスクリプト

・ユーザ文書

・ユーザインターフェース






アルゴリズムの考え方

総当たりアルゴリズム すべての場合をためし、解を求める。 近似アルゴリズム  ・正解に近い解を探す ・正解との誤差がある範囲におさまると保証されているものを  精度保証付アルゴリズムという。 ・精度の保証のないアルゴリズムを、発見的手法(ヒューリスティック)    という。