EurekaMoments

新米エンジニアが一人前を目指す修行の日々を記していくブログです。

PlantUMLを通じてシーケンス図の描き方を学ぶ

はじめに シーケンス図とは 設計プロセスにおけるシーケンス図の立ち位置 シーケンス図の描き方についてのヒント ヒント1 ヒント2 シーケンス図を構成する要素 メッセージ 自己メッセージ 外部とのメッセージのやり取り ライフライン 実行仕様(イベント)の表…

PlantUMLを通じてユースケース図の書き方を学ぶ

はじめに ユースケース記述とユースケース図 ユースケースを洗い出す際のポイント 基本コースと代替コース ユースケース図を構成する要素 アクター ユースケース 対象 ユースケース図を描く流れ 1. アクターを列挙する 2. アクター毎のユースケースを列挙す…

Gitによる複数人でのバージョン管理をSourceTreeを使って体験してみる

はじめに 前提条件 作業対象とするGitHubリポジトリ SourceTreeについて 今回のシナリオ Step1: リモートリポジトリをローカルにクローンする Step2: 3人それぞれのブランチをmasterから作成して作業開始 Step3: Bの作業が先に完了→プルリクを作成してマージ…

PlantUMLを通じてドメインモデル図の書き方を学ぶ

はじめに プロジェクトの開始時にやるべきこと ドメインモデル図とは ドメインモデル図を描く手順 1. 「名詞」の抽出 2. モデル同士の関係を線と矢印で表す 3. 中心となるモデルに色を付ける ドメインモデル図を用いる際の注意点 ドメインモデル図の活用方法…

PlantUMLを通じてロバストネス図の書き方を学ぶ

はじめに ロバストネス分析の目的 ロバストネス図とは ロバストネス図のシンボル アクター バウンダリ(インターフェース) エンティティ コントロール PlantUMLでの記述例 ロバストネス図とその周囲のダイアグラムの整合性 ロバストネス図の秘密 コントロール…

PlantUMLを通じてクラス図の書き方を学ぶ

はじめに クラス図とは クラス図を作るまでの流れ クラス図を構成する要素 クラス(Class) クラス間の関係と線種 関連(Association) 汎化(Generalization)と特化(Specialization) 実現(Realization) 集約(Aggregation)と合成(Composition) 依存(Dependency) …

MarkdownとPlantUMLでソフトウェアの仕様書や設計書を書くための環境構築手順

背景・目的 Markdownで書くメリット Markdown記法一覧 環境構築手順 1. Visual Studio Codeをインストールする 2. PlantUMLをインストールする 3. Javaをインストールする 4. Graphvizをインストールする 5. Markdown Preview Enhancedをインストールする 環…

読書メモ: Effective Python

1. 背景・目的 2. PEP8スタイルガイドに従う 3. シーケンスをどのようにスライスするか知っておく 4. 大きな内包表記にはジェネレータ式を考える 5. try/except/else/finallyの各ブロックを活用する 5.1. finallyブロック 5.2. elseブロック 6. Noneを返すよ…

自動運転技術を手掛ける企業の技術動向: RADAR編

背景・目的 自動運転におけるRADARの役割 大手企業の動向 自動運転向けシミュレータの開発 RADAR開発に取り組む未上場の現存企業 Lunewave Echodyne Arbe Robotics Metawave Oculii 背景・目的 先日リリースされた下記の記事を読んだことで、車の自動運転と…

PythonからC言語の関数を呼び出してユニットテストする環境を作る: Cython編

背景・目的 Cythonとは PythonとC言語を組み合わせるメリット 参考記事 ステップ1: C言語のコードを書く ステップ2: C言語のコードをラッピングするCythonコードを書く ステップ3: Cythonコードをビルドするsetup.pyを書く ステップ4: コンパイル・ビルドす…

機械学習に必要な数学の基本についての勉強メモ: 行列編

背景・目的 行列とは Pythonにおける行列の定義 行列の積 単位行列 逆行列 3×3行列の逆行列を求める 転置 行列と写像 次回の内容 背景・目的 以前、機械学習に必要な数学について学んでいくにあたり、下記の記事を書きました。 www.eureka-moments-blog.com …

Visual Studio Codeによるソフトウェア開発環境構築のメモ

背景・目的 VS Codeのインストール Gitのインストール Gitの初期設定 VS Code上で開く統合ターミナルをGit bashにする VS Codeの拡張機能を自動でインストールする 事前準備1. インストールしたい拡張機能のリストファイルを作る 事前準備2. 自動インストー…

機械学習に必要な数学の基本についての勉強メモ: ベクトルと微分編

背景・目的 Pythonで縦ベクトルを表す ベクトルの足し算、引き算の図形的な解釈 ベクトルの内積 Pythonでのベクトルの大きさの計算 ベクトルの内積を和の記号を使って表す 積の記号 機械学習における微分の在り方 入れ子の関数の微分 機械学習における偏微分…

Google翻訳のAPIで4ヶ国語対応の翻訳アプリを作ってみた

背景・目的 全体ソースコード Google翻訳APIのインストール APIをインストールする際の注意点 必要なモジュールのインポート 文字化けするときの対処法 翻訳させたいフレーズの入力 翻訳処理 実行結果の例 次の取り組み 背景・目的 プログラミングもしながら…

聴講メモ: MIT Self-Driving Cars: Sacha Arnoud, Director of Engineering, Waymo

背景・目的 Waymoについて 講演の動画 講演内容のメモ 良く分からなかった部分の参考資料 背景・目的 アメリカの自動運転車開発企業であるWaymoのエンジニアリングディレクタであるSacha Arnoudが、MIT(マサチューセッツ工科大学)にて講演を行ったようです。…

良く使うGitコマンドの逆引きメモ

背景・目的 参考文献 リモートリポジトリからクローンする ブランチを作成する 今いるブランチを*で示す ブランチ一覧を確認する 作業ブランチを切り替える(チェックアウト) ブランチ作成 + チェックアウト 既存ブランチと同じ名前のブランチを強制的に再生…

データの正規化を考慮したワインの等級予測:Linear SVC編

背景・目的 予測モデルの学習手法の選定:Linear SVC とりあえずやってみる データを正規化・標準化してみる Z-Score Normalization(標準化) Min-Max Normalization データの分布形状を確認 正規化・標準化したデータで再度Linear SVC 次のステップ 背景・目…

東大生マラソンランナーに習って卓球とプログラミングの両立方法を考えてみた

背景 目的 一般の卓球プレーヤーが抱える制約 先行技術 今後の取り組み①: 試合動画内の選手のトラッキングと打法の自動分析 今後の取り組み②: 選手の動作情報から試合の流れを把握し、自分がとるべき戦術を提案してくれるシステムの開発 参考: テニスにおけ…

個人的なPython逆引きリファレンス

背景・目的 ディレクトリやファイルを開くダイアログを表示 .zipや.gzみたいな圧縮ファイルをバイナリモードで開く ループで処理を回している時の進捗率を把握する pandasで空のデータフレームを作成し、データを逐次追加していく CSVファイルをpandasで読み…

ソフトウェア開発におけるレビューについての勉強メモ

背景 目的 参考文献 レビューの種類と目的 改善点①: 新規開発機能の教育レビュー不足 「最悪を最初に」を基本としたレビュー 改善点②: 簡単なところからレビューを始めがち 改善点③: コードレビューがメールベース レビューとインスペクション中の指針となる…

海外留学に挑戦し夢破れて学んだこと

背景・目的 概要 留学に挑戦しようとしたきっかけ 留学候補者選抜会への参戦 留学テーマのプレゼン 選抜からの落選 落選したことで学んだこと その後の取り組み まとめ 背景・目的 このブログを始めて約2ヶ月、またTwitterでいろんな人達と繋がりを持つよう…

Glossary of Machine Learning

Introduction 特徴量とは(Feature Value) 学習とは(Learning) 教師あり / なし学習(Supervised / Unsupervised Learning) 最適化問題(Optimization Problem) 座標降下法(Coordinate Descent) 最急降下法(Gradient Descent) 確率勾配法(Stochastic Gradient D…

Recommendation of Hand Calculation for Simple Software Programming

Introduction Hand Calculation About Kalman Filter Prediction Observation Update Conclusion Introduction あるロジックをプログラムに実装するとして、自分の場合だったらまずはMATLABやPythonでプロトタイプを作って有効性をシミュレーションします。…

Animation Playback GUI Tool with matplotlib of Python

Introduction Sample Required modules Read sample data Animation playback figure window Radio button GUI Slider GUI Update animation Source code Introduction 実験で取った時系列データを見返したり、プロトタイピングしたロジックをシミュレーショ…

GPS NMEA Analysis with Python package pyproj

Introduction Reference Sample Data About $GPGGA format Extraction $GPGGA data from NMEA text log Transformation Longitude and Latitude to X and Y position Visualize X-Y Position and Analysis Introduction 障害物検知用センサの計測精度を評価…

Self-Learning Notebook about GPS

GPS

Introduction Reference Difference between GNSS and GPS Geodetic system Coordinate system Geoid NMEA $GPGGA Data Format $GPGSA Data Format $GPRMC Data Format Coordinate Transformation Introduction ロボットや車が自律移動をする際に自分の位置…

Data Analysis for Predicting Class of Wine Part1

Introduction Reference Sample Data Contents Correlation check The Top 5 Attributions which have high correlation with Class Integration Class 1 and Class 3 Correlation between Color intensity and top 5 attributions has high correlation wit…

読書メモ_統計学が最強の学問である

背景・目的 今回読んだ書籍 他の関連書籍 学んだ事メモ 読んだ感想 背景・目的 車やロボットの自律移動技術や、今流行りの機械学習、Deep Learningの技術を身に着けるには、統計学の知識が必要となります。しかしながら、自分は今まで統計学という学問をちゃ…

機械学習におけるラベル付けについての勉強メモ

背景・目的 参考文献 1. ラベル付けとはなんのためにするのか 2. どんなラベルを用意するべきか 3. 「その他」ラベルが存在している場合の対処法 4. どれくらいのラベル数を用意するべきか 5. ラベル付けは何人で行うべきか? 6. どのように2人で作業するの…

読書メモ ~エンジニアリング組織論への招待~

背景・目的 参考文献 思考のリファクタリング メンタリングの技術 アジャイルなチームの原理 学習するチームと不確実性マネージメント 技術組織の力学とアーキテクチャ 読んだ感想 背景・目的 ここ最近の自分のソフトウェア開発業務は、開発の納期に追われつ…