cooperative-software-development
cooperative-software-development copied to clipboard
Architecture: provide case study to explain concepts
I thought the paragraph about architectural mismatch had a lot of technical information and required me to reread it a few times. I think a real world example of when this happened would be beneficial to my understanding, similar to the refactoring example.
Something I think would've helped me understand the concepts more and the overarching idea of architecture would be a case study that points out the vocabulary throughout. While there are some examples such as Google/Gmail for refactoring (which was helpful), I wasn't able to understand some other keywords as clearly such as cross-cutting concerns or various architectural styles. A few examples were also listed on some of the architectural styles, but I was still a bit confused so more detailed case studies would be helpful for elaborating on things like peer to peer, and how that works with other key points mentioned throughout the chapter.
This chapter was a bit harder to read compared to the other chapters we’ve read given all the technical terms discussed. However, Amy’s examples for some of the terms helped me understand the concepts of software architecture a bit better. However, I was still confused on cross-cutting concerns. While it is explained that they are “features and functionality that span multiple different components of a system, or even an entire system,” and the negative implications are also discussed, I wish there was an example of some sort so that I could understand the term better. With the architectural styles and terms such as components and refactoring, I was confused at first, but the examples helped me put it into perspective. Since there was no specific example of a cross-cutting concern, I was still unable to fully understand what the term meant.
I was confused by this short paragraph though:Architectural styles come in all shapes and sizes. Some are smaller design patterns of information sharing4 (Links to an external site.), whereas others are ubiquitous but specialized patterns such as the architectures required to support undo and cancel in user interfaces3 (Links to an external site.).Not sure what the purpose of it is or if it's really necessary. Are "undo" and "cancel" actions in the user interface? Maybe it would help to elaborate
Lots of new terms that I got through this chapter. Like when this chapter discusses "architectural styles", almost every style except Peer to peer (P2P), I have to do more research to understand it fully. But there is a paragraph that explains the "ball of mud" architecture or "spaghetti code". I think it would be great if there is given concrete examples from a real project. Maybe can be included a screenshot of the code to show a clearer picture of what is meant.
After reading the chapter on “Architecture” I feel like one of the parts that were explaining about architectural style could be better explained. For “model-view-controller” it said that it is “in which data is separated from views of the data and from manipulations of data..” I was kind of confused as to what this meant. Is it saying something along the lines of modern frameworks like react can’t manipulate/view data itself and that it needs to rely on other applications? Another thing that I was curious about was the Unified Modeling Language. Since it was mentioned that it was popular in the 1990s and it seems like a simple and reasonable method (since it’s just a series of notations that express an architectural design of a system), I was wondering why recent studies show that this method is not generally used. What about it makes it not universal?