I’m reading Applying UML and Patterns and trying to match the OOA&D principles in there to a project I’ve worked on. It is kind of a retroactive learning exercise.
The project’s basic idea is to connect security alarms of various brands with generally similar behavior (although with significant differences) and distinct proprietary protocols to a (so far TCP) server or servers and control them via a mobile app (and also via a web application).
A basic “arm” command triggered by the phone starts a sequence of requests-responses between the server and the panel such as (for instance) check if a partition is already armed, bypass a number of its associated sensors as necessary (for example a defective sensor that keeps falsely signaling motion preventing the partition from arming), arm the partition, and check that it effectively armed; otherwise rollback (unbypass) the sensors if possible. A similar (no bypassing needed) case for “disarm the partition”, and so on (activate/deactivate a PGM output, open/close a gate, and various other devices that might be added).
If the arming fails, the app will report it and the user may want to take action (for example, she may have forgotten to set a sensor to be bypassed and decides to do it in the next arm).
Other features include a separate server for achieving the cameras’ streams/static pictures, and processing and forwarding the systems’ events to monitoring centers.
No rigorous OOA&D were applied; I’m trying to evaluate how much the project and the servers’ design would have been improved by applying it (writing use cases, modeling the domain, devising an architecture and designing the classes).
From what I understand, the use cases would have the end user as an actor interacting with the system (the mobile app) calling a REST API which by its turn sends a message to an external system (which is the TCP server or, indirectly, an intermediate message queue). A use case would be “arm the partition”.
I would then model the domain and when designing the TCP server, which is an external system, I would have another actor (the message queue or the message coming from the REST API’s implementation) issuing a similar “arm the partition” use case to that system. Its design would be based on the same domain model, with improvements coming from the experience of developing the server and figuring out the domain.
Do I understand correctly? Another question would be (not exactly looking for specific resources as that would be against the SE rules), what kind of knowledge should I seek in order to develop such a system in a ‘proper’ way?
A bonus question: iterative, agile methods attempt to mitigate risks by focusing on the most architecture-impacting, business valuable use cases. An future use case would be “automate/schedule command sequences or algorithms so that the user won’t have to manually send commands in a daily basis”. I see it as a very architecture-impacting use case, however it was not considered in the first iterations due to its complexity. What does agile dictate in that case in order to deal with the dilemma?
✓ Extra quality
ExtraProxies brings the best proxy quality for you with our private and reliable proxies
✓ Extra anonymity
Top level of anonymity and 100% safe proxies – this is what you get with every proxy package
✓ Extra speed
1,ooo mb/s proxy servers speed – we are way better than others – just enjoy our proxies!
USA proxy location
We offer premium quality USA private proxies – the most essential proxies you can ever want from USA
Our proxies have TOP level of anonymity + Elite quality, so you are always safe and secure with your proxies
Use your proxies as much as you want – we have no limits for data transfer and bandwidth, unlimited usage!
Superb fast proxy servers with 1,000 mb/s speed – sit back and enjoy your lightning fast private proxies!
99,9% servers uptime
Alive and working proxies all the time – we are taking care of our servers so you can use them without any problems
No usage restrictions
You have freedom to use your proxies with every software, browser or website you want without restrictions
Perfect for SEO
We are 100% friendly with all SEO tasks as well as internet marketing – feel the power with our proxies
Buy more proxies and get better price – we offer various proxy packages with great deals and discounts
We are working 24/7 to bring the best proxy experience for you – we are glad to help and assist you!