Lattix Architecture Blog

Friday, March 31, 2017 - 16:11 - 0 comment(s)
Software architecture erosion refers to the gap between the planned and actual architecture of a software system as observed in its implementation.
Friday, March 24, 2017 - 15:35 - 0 comment(s)
C++ code refactoring is difficult because the C++ language is large and complex with a hard-to-process syntax (tools like Lattix Architect can simplify the process). Given the importance of refactoring, here is a C++ refactoring tip for solving Primitive Obsession. What is Primitive Obsession? Primitive Obsession is using primitive data types (like integers, strings, doubles, etc.) to represent a more complicated entity such as share prices or temperature. Primitive types are generic... + continue reading
Monday, March 20, 2017 - 15:23 - 0 comment(s)
“Microsoft reports that more than 50% of the problems the company uncovered during its ongoing security push are architectural in nature. Cigital data shows a 60/40 split in favor of architectural flaws.” - Gary McGraw Nearly 40% of the 1,000 CWEs (common weakness enumeration) are architectural flaws. Architectural design in secure software is an often overlooked aspect of software development. So much so that the IEEE established a Center for Secure Design and released a document “... + continue reading
Monday, March 13, 2017 - 16:09 - 0 comment(s)
Most of the time when people think of high-level software architecture, they think of patterns like Microservices (see our previous blog post What is a Microservices Architecture?"). But the most common software architecture we see when talking to prospects and customers is the Big Ball of Mud architecture. In this post we will define the Big Ball of Mud architecture, discuss why it happens in development, and explore three way of dealing with it (hint: one is refactoring). What is a "Big... + continue reading
Friday, March 3, 2017 - 11:29 - 0 comment(s)
“In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a base minimum of centralized management of these services, which may be written in different programming languages and use... + continue reading