The architecture business cycle
I have searched a lot, but I am unable to find answers of the below questions.
- How does the nature of your organization affect the architectures that it develops?
- How do the architectures affect the nature of the organization?
- What kind of businesses goal drive or have driven the creation of software architectures of your organization?
- Who are the stakeholders that exert the most influence over the architecture of systems in your organization? What are their goals? Do the goals ever conflict?
See also questions close to this topic
How to design front end architecture for handling multiple brands in aem?
For aem projects, if I want to publish sites of different brands with same codebase, if there is any robust loosely coupled front end architecture, please suggest.e.g for site X we should have different theming, for Y different theming and for z different theming for components.
Architecture for merging users from multiple organizations
After a company acquires another company, how do they merge their users together? For example, after Facebook bought Instagram, Facebook user can login to Instagram with her Facebook account and see her Facebook friends.
Architecture: Microservices, multiple requirements, and shared data
- We have a moderately large (100K++ loc), microservice-based project, with large, and rapidly evolving content
- we are selling this (both data, and content) to multiple clients, with each clients' requirements being a little different each time, both on data, and content; and they require very high availability on this.
- We'd like to avoid the issue whereby a (code, or data) change done for one client might adversely impact other clients' deployment.
- At the same time, we need to have some of the data (and further changes to that data) shared across clients
Specific solutions we've explored:
Single deployment, client-specific IF statements:
- We use this currently, this requires manually juggling which client gets what
- it is extremely difficult to re-test the entire feature matrix for whether a change might adversely impacts any client
Multiple deployments: the issue here is 8+ microservices with high dependency on eachother; this would require:
- setting up a new source repo, and deployment for each client
- making client-specific changes to that specific client's codebase, deploying to their cluster
- code, and data infusion between each clients would require reviewing all data, and code change for adverse impact
Here I turn to the nice community of Stack overflow: how would you address this in a way that we retain ease of change management, while at the same time avoiding adverse impacts from one client to another?
Software engineering || Testing
Why do we have to retest subclasses that are instantiated from an existing class, if the existing class has already been thoroughly tested? Can we use the test cases designed for the existing class?
One public and one private method for same functionality
I am looking at source code of mesa, and I see this pattern constantly shows up
def place_agent(self, agent, pos): """ Position an agent on the grid, and set its pos variable. """ self._place_agent(pos, agent) agent.pos = pos def _place_agent(self, pos, agent): """ Place the agent at the correct location. """ x, y = pos self.grid[x][y] = agent if pos in self.empties: self.empties.remove(pos)
Why should we have a separate private method? Especially when there is no real "private" method in python and in both methods we write new values. Is it some kind of design pattern?
Edited: The only reason I can think of is to solve potential concurrency issues or avoid unwanted code optimization done by compiler, but I am not sure. For example, we sure want
agent.posto be changed only after the grid indeed has the agent.
Use Case Diagram for Stack Overflow
I am trying to design a
Use Case Diagramfor an app like
Stack Overflow. I have tried to add some basic functionalities in this diagram.
I want to improve this diagram to include an exhaustive list of all the features of Stack Overflow, but have no idea of how to do so. Also, should there be another actor for
Adminwho manages user accounts, or not? And if we are asked for
Use Cases, should we describe the inner functionalities, preconditions and postconditions of each use case separately?
What if other than these two actors, I decide to add a
Mediatoractor too, who forwards the problems to the mentor, and when a mentor solves it, it is the responsibility of mediator to mark it solved?