新人向け学習コンテンツ
以下の環境で作成しましたがバージョンによって大きく影響を与えるような課題にはしないつもりです。
Java環境: openjdk version "21.0.1" 2023-10-17
またこのプロジェクトはVSCodeで作成しておりますので.vscode
ファイルは配置しております。
利用しているVSCode Extension: Extension Pack for Java
このプロジェクトをgit clone
してsrc/practice1/App.java
を実行できることを確認しておいてください。以下の結果が出れば問題ありません。
全ての仕事が完了しました
※ src/practice1/BackendEngineer.java
およびsrc/practice1/FrontendEngineer.java
でエラーが発生するのは問題ありません。
以下のクラス図をもとにEngineerクラスを実装し、以下の出力結果を出してください。
src/practice1/App.java
のコメントアウトは外してくださいsrc/practice1/Engineer.java
ファイル作成してください- ファイルの最初に
package practice1;
を記載するの忘れずに
- ファイルの最初に
src/practice1/Engineer.java
の中身を作成してください
BackendEngineer.java
とFrontendEngineer.java
、App.java
は編集不可とします
- クラス図はPlantUMLで記載しています
- イタリック表現はabstractを意味します
- Aの◯はabstract classです
- Cの◯はclassです
- 赤の□はアクセスレベルのprivateです
- 緑の●はアクセスレベルのpublicです
期待する出力結果
田中:仕事を開始します
バックエンドの構成を設計します
Djangoを使って実装します
pytestを使ってテストをします
田中:仕事が完了しました
鈴木:仕事を開始します
画面設計をします
NextJSを使って実装をします
Jestを使ってテストをします
鈴木:仕事が完了しました
全ての仕事が完了しました
git pullをして最新版を取得してください。
コンストラクタを使わずに子クラス(BackendEngineer、FrontendEngineer)から親クラス(Engineer)へname
を渡せるようにして期待通りの出力結果を出してください。
期待する出力結果
田中:仕事を開始します
バックエンドの構成を設計します
Djangoを使って実装します
pytestを使ってテストをします
田中:仕事が完了しました
鈴木:仕事を開始します
画面設計をします
NextJSを使って実装をします
Jestを使ってテストをします
鈴木:仕事が完了しました
全ての仕事が完了しました
src/practice1
以下のファイルをsrc/parctice2
へコピーするsrc/practice2/BackendEngineer.java
、src/practice2/FrontendEngineer.java
、src/practice2/Engineer.java
、src/practice2/App.java
の最初の行package practice1;
からpackage practice2;
に変更するsrc/practice2/Engineer.java
からコンストラクタを消すsrc/practice2/Engineer.java
からprivate String name;
を消す- 各種ファイルを変更して実装する(App.javaは修正しません)
以下の内容をクラス図としてモデリングしてください。
- コンセプトとしては会社のIT開発部門における「チーム(自社)」と「従業員(正社員)」の関係です
- チームへの従業員の参加、離脱、業務遂行は表現してください
- それ以外の部分は各々想像していただいて良いです
- 今回表現するモデルは「チーム(自社)」と「従業員(正社員)」の2つとします
- 会社、会社からの辞令、部署、社外、パートナーなどを含めると範囲が広いので今回のケースからは外す
- 初学者向けのためなるべくシンプルな課題にしているつもりです(シンプルに考えてください)
- 「チーム(自社)」と「従業員(正社員)」は抽象化を意識してください
- 抽象化の手段は問いません
- 抽象化されたクラス、インターフェイスから具象クラスを記述する場合は最低2つの具象クラスを表現してください
- 具象クラスをたくさん書く必要はありません
- クラスが持つフィールドやクラス間の関係性などはお任せします
- クラスが持つフィールドもたくさん書く必要はないので2~5つ程度で
- Javaでの実装を意識してください
- Javaの標準の型などは各自調べてください
- 標準ライブラリ(Collectionなど)も確認しておいてください
- クラス図の書き方はUMLに沿った記述にしてください
- 使用する描画ツールなどは問いませんのが、ツール独自の表現は解説できるようにしておいてください