Book Image

arc42 by Example

By : Dr. Gernot Starke, Michael Simons, Stefan Zörner, Ralf D. Müller
Book Image

arc42 by Example

By: Dr. Gernot Starke, Michael Simons, Stefan Zörner, Ralf D. Müller

Overview of this book

When developers document the architecture of their systems, they often invent their own specific ways of articulating structures, designs, concepts, and decisions. What they need is a template that enables simple and efficient software architecture documentation. arc42 by Example shows how it's done through several real-world examples. Each example in the book, whether it is a chess engine, a huge CRM system, or a cool web system, starts with a brief description of the problem domain and the quality requirements. Then, you'll discover the system context with all the external interfaces. You'll dive into an overview of the solution strategy to implement the building blocks and runtime scenarios. The later chapters also explain various cross-cutting concerns and how they affect other aspects of a program.
Table of Contents (9 chapters)
Free Chapter
1
Acknowledgements
8
VII - macOS Menu Bar Application

IV.9 Architecture Decisions

We will now look into the various factors that will influence the architectural decisions to be made while building the application.

Using GPSBabel to Convert TCX into GPX Format

Problem

Popular JavaScript mapping frameworks allow us to include geometries from GPX data on maps. Most Garmin devices, however, record track data in TCX format, so I needed a way to convert TCX into GPX. Both formats are relatively simple and, especially in the case of GPX, are well-documented formats.

Constraints

  • Conversion should handle TCX files with single tracks, laps, and additional points without any problems.
  • The focus of this project has been on developing a modern application backend for an AngularJS SPA, not parsing GPX data.

Assumptions

  • Using an external, non-Java-based tool makes it harder for people who just want to try out this application.
  • Although well-documented, both file types can contain a variety of information (routes, tracks, waypoints, and so...