project assignment

Gergő Pintér, PhD

gergo.pinter@uni-corvinus.hu

the project

An event organizer company entrusts your software development company to create a choreography designer software for drone shows. They have just bought 768 drones and they want to be able to do smaller-scale drone shows on parties, birthdays, and weddings.

The software should be able to manage the position of every drone in a given space in respect of the time. Every drone is capable of switch on RGB LEDs with a given light intensity. The software should be able to manage not just the position, but the state (light) of the drone.

The software generates a trajectory for every drone that it will follow.

Your task is to design this software.

drone show example

Drone Show at Sydney (2023) by Leoxiong | CC-BY-SA

choreography design in focus

  • the client company wants to design and operate the show
  • the software has to focus on the choreography design
    • not the software running on the drone
  • you can assume there’s a software (SDK) from the drone manufacturer
    • which deals with the hardware
    • it is an external “component” of the software system
AI generated | GPT Image2

architecture sketch

There are some dependency between the modules. For example, the shape design produces reusable shapes, so the animation depend on the a shape design.

shape design

  • responsible for creating models/shapes/objects
    • saving, loading, modifying
  • 3D sculpting
  • the exported model is used by the animation component

DEMO: Nomad Sculpt – a web-based sculpting and painting application

shape design GUI mockup

animation

  • responsible for animating premade models
    • in a 3D space and time
  • handles a timeline, which consist of frames
  • each frame holds some models in a position, orientation, color
  • allows modifications of a model
  • computes transformations between frames

2D DEMO: Motionity – a web-based motion graphics editor

animation GUI mockup

geo-mapping

  • responsible for determining the location of the drone show
    • using GPS coordinates
  • the height as well so the result is a 3D hull
  • saving/loading/editing area/volume description files
  • mapping the animation trajectory to real world (GPS) coordinates
  • DEMO: geojson.io
screenshot of geojson.io

operation

  • responsible for starting / stopping the show
  • monitoring the drones during the show
  • check the status of the drones / environment
  • makes it possible to preview the show
  • initiate uploading trajectories
    • show choreography
  • download telemetry from the drones
operation GUI mockup

not architecture, sketch

  • data flow sketch
  • drone vendor SDK can be assumed
  • lines between the software and the drone are not part of the assignment
  • this figure is not comprehensive!

shape model

animating by relocating the points

animating by modifying the skeleton

first seems easier on the developer side, but results tedious work for the choreographer animating an object consisting hundreds of points

using a solid body model, later the model is converted to a polygon mesh

DEMO: Mesh2Motion, Maximo

not architecture, sketch

more like usage roles than actual components in terms of architecture

  • there are shared components practical to implement once
  • this figure is not comprehensive!

component sketch

  • each color is a responsibility area
  • this figure is not comprehensive!

remember: it’s like gardening

  • there’s a plan how this software would look like
  • yours can be different and it’s perfectly fine
  • you’re free to choose any solution that doesn’t conflict with the description
    • which is deliberately underspecified
  • the assignment values the process and the effort you put in work

contents – outline

  • introduction
    • what the software is – practically the project assignment
    • team members – students working on the assignment
  • stakeholder identification
  • methodology
  • detailed requirements
    • functional requirements
    • non-functional requirements
  • diagrams and models
  • prioritization of requirements
  • constraints and assumptions
  • acceptance criteria
  • appendices
  • version history and approvals

diagrams

  • user stories
    • user story maps
  • first 3 level of C4
  • flowcharts
  • data flow diagram if needed
  • optionally data structure description
    • could be UML
  • UI mockups

diagrams details

overview first, zoom and filter, then details on demand

– Ben Shneiderman

  • create a user story map in details for your team’s set of features
    • for example the choreography design
    • you don’t have to detail every single role
    • because each team has its own responsibility
  • create container and component diagrams (C4)
    • you don’t have to detail other team’s components,
    • but display them to give an realistic overview of the system
    • illustrate every component and the connections between them

work in agile methodology

  • imagine how you would use a software like this
    • what functions would you need
  • identify dependencies between the features / modules
  • plan sprints with usable increments
  • deadline: 2 December 2026 (week 12)
    • when the team also presents the work as a presentation (10 minutes)
  • practical classes are workshops
    • main source of feedback from the instructor
  • NO CODING

suggested software for

submission

  • you have to submit the main design document
  • you may indicate who was responsible for each part
  • including every diagram, and UI mockup
    • please keep every version of the diagrams and attach them to the submission as I would like to see the evolution of your design
  • and the presentation

you have to submit these (zipped) by 2 December 2026 via Moodle, when you also present your work

it is enough to upload it by one person from each team

presentation

  • the presentation should contain the purpose of the software component
    • based on the project assignment
    • but with your interpretation
  • team members
    • with responsibilities
  • the introduction of your design
    • from high level to the low level (according to C4)
    • describe the overall design
    • highlight on the interactions / interfaces between the components
    • attach UI mockups when necessary

presentation

  • you may separate the presentation by target audience
    • for the customer almost as if you wanted “sell” the software and introduce it from the user’s perspective
      • C4 system context, use case, user story flows with UI mockups and explanation
    • and a more technical part focusing on the internal structures
      • zoom into the system as C4 modelling propagates
      • detail the interfaces and the environments where a software will operate

questions?