During project analysis the following requirements have been identified.

  1. Business Requirements
    1. AutoDev should reduce the manual effort required to set up dev envs for software projects.
    2. AutoDev should increase in the adoption of reproducible dev envs across development teams.
  2. Domain Requirements
    1. The flake.nix file generated by AutoDev should contain valid Nix language syntax.
    2. The flake.nix file generated by AutoDev should contain a development shell definition.
    3. The dev env generated by AutoDev should be reproducible across different machines.
  3. Functional Requirements
    1. User Functional Requirements
      1. Users should be able install AutoDev by running the command pip install autodev
      2. Users should be able to run the command autodev /path/to/project to generate a development environment configuration.
      3. Users should be able to enter the generated environment running the command nix develop.
      4. If no LLM model is locally present on the user machine, the user should be able to select the model to be downloaded and used by AutoDev.
      5. Users should be able to list all available models on their machine.
      6. Users should be able to download an available model on their machine if it is not present.
      7. Users should be able to define the model to be used by AutoDev for a given run of the tool.
      8. Users should be able to define custom prompts to be used by AutoDev when prompting the LLM model.
    2. System Functional Requirements
      1. AutoDev should use an LLM model to generate the flake.nix file.
      2. AutoDev should define a base prompt engeneering approach applicable to all LLMs.
  4. Non-Functional Requirements
    1. AutoDev should respond within 5 seconds for typical-sized projects.
    2. AutoDev should not alter any files in the user’s environment.
  5. Implementation Requirements
    1. AutoDev should be implemneted as a CLI tool that can be invoked from the terminal.
    2. AutoDev should be implemented as a python package.

Placeholder for requirements

Back to index
Previous Chapter
Next Chapter