Reputation: 31
I came to know an iterative technique to define software application architecture which has below five steps
I am confused about first step. What is architecture objective here. How to determine it?
Is it something like "defining high level structure and breaking down complexity" or like "creating prototype architecture and testing potential solutions".
Sorry if this question doesn't make sense. I am new to this area.
Upvotes: 2
Views: 312
Reputation: 744
The question is about picking an architecture, not about solving a specific problem for stakeholders. The iterative technique is a guide to choosing the most appropriate base setting for the type of development problems you can expect.
The objective of the architecture you are to select would then be "what do I expect from it?" or "What do I want to achieve by selecting an architecture?".
Examples: It should be a good fit for the people working here, given their background and interests. It should be from a vendor that is likely to remain in business for a while so we can expect continued support and updates. It should be widely used by other shops so we will not be alone if there are any issues and it won't be too hard to find people who are familiar with it. Licensing should be cheap. It should work with Windows because that is what our customers are on.
On a related note: the best definition for software architecture I ever heard is "everything that is really expensive to change later". That implies that it is not the same for everyone, one man's architecture could be another man's design and vice versa. It depends on your core business. If it is something "you're stuck with" or everything you've invested so far is tied to it, it's architecture.
Upvotes: 0
Reputation: 1
The architecture objective is to design a computer system that will satisfy the functional requirements of the problem and the non-functional objectives of the stakeholders.
Usually there is little confusion over the functional requirements because we know that we are developing a computer system and that it must do certain things. The architecture provides the structures within which the objects or programs can produce that functionality.
But the non-functional objectives are less clear. These usually include availability, modifiability, performance, testability, usability, security and scalability. Different stakeholders have different priorities for each of these. As well the non-functional qualities compete with each other - increasing one usually decreases another. The architect's job is to determine which of these are more important and then to design an architecture that will provide the required mix of non-functional characteristics.
Upvotes: 0
Reputation: 1063
The objective of architecture is to address the stakeholder's concerns.
Put in some other words: your architecture aims at 'solving' some sort of problem being it the rationalization of resources, building new capabilities etc.. and these problems are what your stakeholders are concerned about.
Note the the notion of stakeholder does not necessarely mean the CTO/CEO or some other high position. It's related to who affects -or is affected by- your project.
If you are designing a biometric access to the toilets in your office building then building employees and janitors would also be your stakeholders
Upvotes: 2