Software Architecture
This is the second entry of my Software Design and Architecture blog. This text is going to talk about specifically about Software Architecture based on a chapter from a book titled: "Code Craft", by Pete Goodliffe. First of all, it is important to know what Software Architecture is, it is explained with a metaphor as “building a software”, but it is also known as high-level design.
I found interesting the comparison the author made between physical architecture and software architecture and how during the “building” or development process there are four common views recognized:
- Conceptual: Also known as a logical view. It shows the major parts of the system.
- Implementation: Seen in terms of real implementation modules that sometimes differs from the conceptual model.
- Process: Shows the dynamic structure in terms of tasks, process, and communication. Used when there is a high concurrency degree.
- Deployment: Shows the allocation of tasks to physical nodes in a distributed system.
Also, the author explains what architecture is used for. It is used as the initial system design, and also to:
- Validate: It’s the first chance to validate what are we building. Checking if the system will meet the requirements and if it is feasible. Also, it ensures no wasted effort, duplication work or redundancy.
- Communicate: It is used to communicate the designed to all parties. It is useful to understand the system and for documentation.
- Discriminate: It is really useful for decision making. An example is that it defines build versus buy decisions.
Despite I think that software architecture is a key factor during software design and development (because of the reasons and aspects I already mentioned and also because it ensures software quality, one of the most important factors during this process), I didn’t like this chapter. It could be better explained using real-life examples that would allow readers to really understand the importance of software architecture. Explained examples are much better than just definitions.
Comments
Post a Comment