Assignment4, Smart City Authentication Service_Solution

$30.00 $24.00

Introduction In this assignment, you will complete the development of the Smart City system by designing, implementing, and integrating the Authentication Service. Overview The following diagram shows how the Authentication Service fits into the overall structure of the Smart City system. Caption: Smart City modules and their interdependencies, including the Authentication Service (highlighted in green).…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Description

5/5 – (2 votes)

Introduction

In this assignment, you will complete the development of the Smart City system by designing, implementing, and integrating the Authentication Service.

Overview

The following diagram shows how the Authentication Service fits into the overall structure of the Smart City system.

Caption: Smart City modules and their interdependencies, including the Authentication Service (highlighted in green).

The Authentication Service supports controlling access to the Smart City application and IoT devices.

Please refer to the Authentication Service Requirements document for more details.

As part of your solution, you should apply the following design patterns:

1

CSCI E-97 Assignment 4

10/27/2020

  1. Use the Visitor Patternto:

    1. support traversing the Authentication Service objects to provide an inventory of all Users, Resources, Accesses, Roles, and Permissions.

    2. Checking for access

  1. Use the Singleton Patternto return a pointer to an implementation of the Authentication Service.

  2. Use the Composite Patternto manage the whole part relation of Roles, Resource Roles, and Permissions.

In the assignment’s design portion, you will create a software design document that satisfies the Authentication Service requirements.

In the implementation portion of the assignment, implement your design, and test your solution.

You will have three documents as input to your design:

  • Authentication Service Requirements document

  • Smart City System Architecture document

  • Software design template

Development Process

This assignment will be the 4th of 4 sprints to implement the Smart City system. We will continue to follow the Design First Agile development process.

Peer design reviews are required. New peer design review groups are ready. Complete your design reviews no later than Sunday, November 8th. If you have any questions regarding peer reviews, please contact the teaching staff.

Assignment Notes:

This assignment aims to design and implement a solution within the context of a collaborative, agile development environment.

Reuse the design template from assignment 2. Your design document should include the following:

  • UML Use Case Diagram (with descriptions for each use case)

  • UML Class Diagram

  • Class Dictionary

  • UML Sequence Diagram(s) (showing the flow of messages for checking Access)

You should implement the Authentication Service classes as defined by the class diagram and

2

CSCI E-97 Assignment 4

10/27/2020

class dictionary specified in your design document. Define all Authentication Service classes within the package “cscie97.smartcity.authentication”.

Reuse your Ledger Service, Model Service, and Controller Service from assignments 1, 2, and 3.

Update the implementations of Model Service and Controller Service to delegate to the Authentication Service checkAccess() method. Update the calling methods to handle a possible AccessDeniedException.

Reuse your TestDriver class from assignment 3 to load in the Smart City provisioning and device updates information. Modify the TestDriver to provision the Authentication Service information.

In the Test Driver, create the Authentication Service Services, Permissions, Roles, and Users first. Then log in to create an accessToken, and use this accessToken to pass to the restricted access methods.

Place the updated TestDriver in the package: “cscie97.smartcity.test”.

When implementing your design, please document any variances from the plan, justify your changes, and describe how your changes continue to support the requirements.

Remember to use Java doc to document all classes and methods. Add java comments inline where appropriate to explain code logic.

What To Turn In

You’ll turn in a single zip. Please include your name as part of the zip file name. The zip file should contain the following:

  • Your source code (no .class files)

  • Your input data files

  • Sample output

  • Your design document (in pdf format)

  • Include a “Results” document (in pdf format) describing your results, answering the following questions:

    • Did the application of the design patterns help or hinder your design and implementation? Please explain how.

    • How could the design have been better, more straightforward, or made the implementation easier?

    • Any implementation changes that you made to your design and how they

3

CSCI E-97 Assignment 4

10/27/2020

continue to support the requirements

  • Is the design process getting easier?

  • Did the design reviewhelp improve your design?

  • Your comments for your review partners

  • Comments from peer design review and optionally the functional review

We should unzip your file into a directory, then cd into that directory and compile your program with the command.

  • javac cscie97/smartcity/model/*.java cscie97/smartcity/controller/*.java cscie97/smartcity/authentication/*.java com/cscie97/ledger/*.java com/cscie97/smartcity/test/*.java

Then run your program with the command:

  • java -cp . cscie97.smartcity.test.TestDriver smart_city.script

The smart_city.script contains a set of commands to configure the Smart City application.

Caution: Try unzipping your submission into a different directory and follow the steps above. In other words, test your packaging before you submit your solution.

A grade sheet specifying the grading criteria for this assignment is available with the assignment materials. Make sure to review this before submitting your solution.

4

Assignment4, Smart City Authentication Service_Solution
$30.00 $24.00