NUSで学ぶシステム構築とUML: IT5004 Enterprise Systems Architecture Fundamentalsの授業内容

さて、IT5006のデータアナリティクスに続いて、今回のセメスターで受講したIT5004 Enterprise Systems Architecture Fundamentalsの授業内容を簡単にレビューしておきたい。

授業内容

こちらは参考図書(自身にとっての当該授業の実質的な副読本)である上記を紹介するのが一番端的なのでそのようにしたい。一言で言えば、非CS専攻の生徒がシステム開発のいろはになじむためにこちらのUML入門の内容を速修する、と言うのがIT5004の授業内容である。

序盤ではITシステムとはなんぞや、システム開発とはなんぞやと言った基本から入り、システム開発のPlanning, Analysis, Design, Implementation, Maintenanceの5フェーズを順に解説して行く。

序盤のプランニングや分析の段階ではアクティビティ図やユースケース図、ユースケースディスクリプションを中心にビジネスフロー、顧客体験等を必要なシステム要件に落とし込んで行く手順を学ぶ。そうした中でエンタープライズシステムの概要、バックエンドとフロントエンドの各々の開発内容等を学んで行く。自身は恥ずかしながら、バックエンド/フロントエンド/フルスタックエンジニア等の各職種の内容、必要なスキルセット等を今回の授業で初めて学んだ。この辺りについては、エンジニアでなくビジネスサイドの職種でも知っておくと便利な内容であるし、またプログラミングの知識等がそうなくても比較的付いて行き易い内容であった。

中盤戦に入ると、ドメインクラス図やステートマシン図等の作成を通じて徐々に計画、分析からデザイン、実装に接近して行く。佳境に入るとより実際のプログラミング、実装を意識した詳細に渡るシーケンス図やデザインクラス図を描く事になる。ここまで来るとほぼプログラミングであり、プログラミング経験が多くない、クラスや継承等の土地勘がないと結構厳しいだろうなと思われる内容であった。特にデザインクラス図とシーケンス図を両方使って抜け漏れなくプログラミングが実際問題なく動くような形にして行くと言う作業は、ほぼ実際のプログラミングに近いレベルの非常に細部に渡るロジカルさや動作チェックを、コードでエラーを出しながら試行錯誤するのではなく頭の中と図だけでやらないと行けないので結構骨が折れた。

インプリメンテーションの部分ではPythonのDjangoを用いたWebアプリの簡単な実装の実演、メンテナンス部分ではgit/githubによるバージョンコントロール等について学習した。

その他、こうした過程でウォーターフォール開発とアジャイル開発の違いと善し悪し、インプリやメンテナンス段階でのシステム移行手順や社内研修等の実際的な企業システム導入/更新の手引きなど、現実的なトピックについて学習して行った。

課題/宿題/試験等

この授業の付加価値の一つは、実際のE-コマースの事例(Grab/Uber等の配車アプリ、E-コマースサイト等)を用いて上述の各種UMLダイアグラムやシステム構築手順の実習が行われ、先生による採点とチュートリアル解説が付く点である。全部で7回のチュートリアルとその解説、授業内での演習問題、2回の個人提出課題、最終テスト代わりの最終課題提出、と言った演習を通じて上記のUMLやシステム開発のいろはを体験しながら身につける事が出来る内容であった。生徒数が100名超いる中で全員の各種UML図を採点するのは大変に骨の折れる作業であることは容易に想像され、頭が下がる思いであった。

また、実際の生徒の回答を用いた「よくある間違いの解説」等は非常にわかりやすくまた生徒の痒い所に手が届く内容であり、先生の教師としての熱意とスキルの高さを感じさせた。

全体的な感想

全体として、非常に実務的な内容であり、自身的には大変に助かった。内容としては無味乾燥になりがちにも思われる「システム開発のメソドロジー」と言ったトピックを、生徒の興味を惹く形で上手く教える事に長けていた先生であった。パワーポイントのプレゼンもよく準備されたものであり、解説も非常にこなれていた。

この授業を受講するまでは、LinkedIn等で流れて来るフロントエンジニア、バックエンドエンジニア等と言う採用案件を見ても、どのような仕事でどのようなスキルセットが必要なのか等の見通しが恥ずかしながら自身はよく付いていなかった状態であった。そうした知識不足の穴をこの授業で埋める事が出来た。例えば自身がエンジニアを採用する側になった際のJD等もこれで適切に設定できるようになったように思う。

上述の通りで、書籍だけでは中々行えない「実際の問題で各種ダイアグラムを描く演習を行い、先生に採点して貰う」と言う経験が積めたのも良かったように感じている。

加えて、Djangoの実演、各種UML図を実際のコードに直したらどうなるか、Python vs Javaの善し悪し、と言ったトピックを実際の実演を伴いながら解説頂いたのも「エンジニアとしての実務的な能力」を向上させてくれる感があり非常に助かった。

実際にビジネスの現場、開発の現場でUML図を描き込む局面は実際のところは昨今案外多くないと言う話も授業内で解説があったし授業外でもそのような話も伺っている。しかし、一筆書きで余りエラーの出ないコードが書ける、複数人での開発を円滑にコラボレーションしてやれる「デキるエンジニア」は恐らくこの授業の内容を理解しており、頭の中でUML図を描きながら仕事が出来るのだろうなと授業を受けながら実感したのであった。

成績はB+の着地であった。担当教官は複数回Teaching Award受賞歴のある先生であったのだが、複数回受賞も頷ける質の高い生徒フレンドリー、実務フレンドリーな講座であり、非常に有意義な授業であった。

以上、IT5004 Enterprise Systems Architecture Fundamentalsの解説でした。何がしかの参考になりましたらこれ幸いであります。


この記事が気に入ったらサポートをしてみませんか?