Responsibilities

  • Gathering and articulating business requirements from stakeholders and transforming them into detailed functional and non-functional requirements.
  • Modeling business processes and system interfaces using UML, BPMN, and other notations.
  • Creating technical documents, including requirements specifications, project proposals, and user manuals.
  • Closely collaborating with development teams to ensure the accuracy and functionality of implemented solutions in accordance with system requirements.
  • Participating in testing processes to ensure that developed solutions meet established requirements and functional specifications.

Requirements

  • Knowledge of modeling languages such as UML and BPMN for creating diagrams and specifications.
  • Understanding of software development principles and methodologies, including Agile and Waterfall.
  • Basic literacy in Computer Science is desirable, including databases, network technologies, technology stacks for building web applications, and operating system architectures (primarily Linux family).

Task 1: Develop a Sequence Diagram

Objective

Based on the description of the authentication system below, develop UML sequence diagrams that depict the processes:

  1. User authentication.
  2. User attempts to access personal information, access error due to expired Access Token, refresh of Access Token, and retry to access personal information.
There is a REST API for user authentication and authorization. 
The system supports user registration, authentication, token refresh,
logout, and the ability for users to access and update their personal data.

Access and Refresh tokens are used for authentication.

**Refresh Token** -- A UUID stored in the database, issued by default for 30 days.
**Access Token** -- A JSON Web Token with a default lifetime of 30 seconds.

At any time, the API user (client) can request to refresh the Access Token,
for example, when the life of the Access Token expires by providing a valid Refresh Token.
In this case, the service returns a valid new pair of Access and Refresh Tokens,
and their lifetime starts over.

Deliverables

  1. Link with public access to the sequence diagram on <draw.io>

Task 2. Requirements Development

Objective

Develop a set of requirements for a new waste management software product.

Product Goal: To unify in one application the following participants and their tasks:

  • Waste-supplying enterprises: cafes, hotels, restaurants, etc. Interested in disposing of waste and receiving recognition from our product as eco-friendly.
  • Waste recycling plants. Interested in receiving quality sorted waste for further processing.
  • Waste carriers. Interested in earning money by delivering waste to the recycling plant via the most efficient route.

The product should provide each participant with the capabilities to solve their tasks.

Describe the key functions of the product, requirements for security, performance, user interface, and accessibility.

Deliverables

  1. A Link to a Google Docs document with public access containing the above requirements.

Developer Task 3: Developing Use Cases

Objective

From Task 2, select three business processes you like and develop detailed use cases for them.
Each use case should include actors, preconditions, main flow of events, alternative flows, and postconditions.

Deliverables

  1. Link to a Google Docs document with public access describing the use cases, visualization of processes is welcomed.
    The document may contain links to other documents, diagrams with public access.