Welcome to the Blog and Video series on OCMJEA – How to become an Oracle Certified Master Java EE Enterprise Architect. Today we are going to review a very import exam topic and very very important skill to possess as a solution architect. This skill differentiates good vs bad architects. This skill filters out boys from men and filters in capable solution architects from a pool of self-declared architects.
Today, I am going to help you gain an understanding (or refresh your understanding if you already know these concepts) of the qualities of an enterprise application that are like a backbone for any system – Non-Functional Requirements.
Imagine buying a mid-sized family sedan car that is sold under 22,000 USD that hits 0 to 60 in 5 seconds and provides a great gas mileage of 30 miles per gallon but costs a fortune for every service, does not have enough service stations and makes it impossible to change your tires or use a different engine oil. How would you, as a customer feel, about owning that car.
Yes, the car has fulfilled your functional requirements, ie
- drive fast
- cost less
- provide enough gas mileage
But will make your life hell during the course of ownership the below non-functional requirements were not responsibilities of the manufacturer.
This onus of addressing the Quality of Service a.k.a Non-Functional Requirements lies with the Solution Architect. After all, why are solution architects paid for? They are paid to architect a solution that fulfills all of the requirements and to create a service level agreement regarding the quality of service measures.
If you go to Wikipedia and search for non-functional requirements, you can probably find a huge list of words and their definitions and each word has a web page dedicated to itself. Such is the importance of non-functional requirements. This is easily one the most asked interview question topics and one of the most emphasized topics in any architect certification. OCMJEA is no different. While you need to have a basic understanding of all the non-functional requirement definitions, there are top 8 non-functional requirements that every architect should be gaining mastery at. And those are very important for the exam too.
I have made it easy for you to remember them, just remember the word SPAMMERS.
Each letter of the word SPAMMERS represents a Non-functional requirement.
- S [Scalability] -> Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth
- P [Performance] -> Performance is the measure of a system in terms of response time and throughput
- A [Availability] -> Availability is the capability of a system in ensuring that services are available for a guaranteed amount of time to the required number of users
- M [Maintainability ] -> Maintainability is the extent to which the system allows correction of flaws in a component without effecting other components of the system
- M [Manageability] -> Manageability is the ability to manage and monitor a system to ensure its health
- E [Extensibility] -> Extensibility is measured on how well the system support adding of additional functionality without modifying much of existing functionality
- R [Reliability] -> Reliability describes the ability of a system or component to function under stated conditions for a specified period of time
- S [Security] -> Security is the degree of protection from, harm. It applies to any vulnerable and/or valuable asset, such as a person, dwelling, community, item, nation, or organization.
Please watch the video below where I walk you through these concepts at a detailed level. At least at the level, you need to understand them for the OCMJEA exam.
Please let us know if the topic excites you or want to provide feedback or engage your friends (Like = Interest, Comment = Feedback, Share = Engage)