System Analyst
Business/System Analyst for requirements gathering, process modeling, and ensuring solution functionality through testing and collaboration.
To take part in the internship, you need to fill out the form by following the link https://forms.gle/AG834xq7sBYVprKq7
The last section of the form is reserved for answers to tasks, which are described below on this page. Most often, the answer field should contain a link to a gist with the text of your answer, or a link to a repository. Pay attention to what needs to be included in the form as your result. If instead of the required link you provide something else, like the text of the answer, your response is likely not to be counted.
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:
- User authentication.
- 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
- 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
- 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
- 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.