Think of a goal as an outcome one or many project teams are trying to achieve and contribute to.
These are higher-level items that might take multiple streams of work to complete and may take many months to complete.
For example, "Reduce regrettable churn by 10% on product X" - company-wide, this will take a lot of projects to achieve and a lot of collaboration across product, engineering, support, pricing teams etc.
For simple setups, one project could map to one goal - but as a company grows, there can be team, department, and company-wide goals. These may have multiple projects that ladder up to achieve the goals.
Goals can also have parent goals and sub-goals. Functionally, these are the same as Goals - they have the same capabilities, but are displayed a little differently on the dependencies tab.
A goal has one owner. It's important to have a clear owner of what we're doing. You can see who contributes in the 'Dependencies' tab, these are pulled up from the contributors to projects.
The relation to projects is pretty simple - goals describe that higher level objective, projects are how we actually move towards achieving those goals. Think of projects as the implementation to get to the goals.
Jira Software provides a way to plan and manage tasks and issues within specific teams - typically engineering teams. Other teams might use a different tool to track and manage their work - for example, Jira Work Management or something else entirely.
Projects, as the concept in Jira project status, are a way to bring work across all these tools into one place and provide updates on the latest progress of work. Jira Software projects are also designed more as 'buckets' to collect issues and be long running.
Think of it in terms like this - Jira Software is where your day to day work happens, stand-ups, issue updates, linking to pull requests etc. Jira project status is where you give your weekly summary on how the project is tracking.
And here's a nice visual to sum it up.