This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
2) Your organization has a legacy thick-client application. The issue is that the presentation and business logic are currently coupled. A change in presentation logic requires a change in business logic. A suggestion is to re-factor this into a three-tier application and separate the business logic from the presentation logic.
What non-functional requirement would you improve by separating the presentation layer from the business layers?
b) Response Time
d) Maintainability (*)
Practical Software Estimation: (M. A. Parthasarathy)
Option D is correct.
Option A is incorrect because securing a one-tier application is generally easier than securing a three-tier application. With a three-tier you need to secure the web server, application server, and database.
Option C is incorrect because manageability of one-tier application is generally easier than tree-tier application. With a three-tier you need to manage the health the web server, application server, and database.
Options B, E are incorrect because performance and response time of a one-tier system should be better than a three-tier. With a three-tier application the request/response cycle includes a web server, application server, and database.
I may be completely offtrack here as they talk about one-tier application rather than two-tier, but...
If you refer to page 31 and 32 of Mark Cade's Study guide (in particular, advantages and disadvantages of 2, 3 and n-tier), it basically says that (quote):
1) Two-tier (disadvantage): "Manageability is problematic, as it becomes almost impossible to monitor all the PCs that are running the client code." <=== this contradicts reasoning of Option C above
2) Three-tier (advantage): "Performance could be an advantage or disadvantage. Primarily, it is an advantage, as you can spread out the processing over many servers, but it can become a disadvantage if you have to transfer large amounts of data between the servers." <=== If we weren't transferring too much data, would it be an advantage or disadvantage, given reasoning for Option B, E above?
3) Three-tier (advantage): "Separating the tiers allows for more points to secure the system" <=== My understanding of this is, given that there are more points to secure it will be more secure (because you can contain the threat in that tier), but harder to secure (more work involved). Is this correct?
"Maintainability" is the right answer for this question. As you have seperated business logic from presentation logic and now any changes in any one of them-you are required to make a change in only one layer/tier and not both of them as they are decoupled now.
Maintainability is the correct answer in this case. And this is because they ask you what is the main advantage from separating the business from the presentation logic. They don't ask for the advantages of introducing a three-tier architecture into your system, case in which your observations would be valid.
Sorry guys, I should of clarified. I'm not against the answer (maintainability would be the most correct answer - and I do understand why), but my concern is more with the explanations for the "incorrect" answers. They seem to contradict that of Cade's explanations.
Joined: Sep 09, 2008
Totally agree with you. I bet one of the next questions is to state the benefits of three-tier over two or one. They are just playing with our minds, better not to read the sample questions.
Thanks guys. I agree with all of you - good to know I'm not the only one that noticed this.
Joined: Mar 17, 2011
Rajan Choudhary wrote:I just came out of the exam center & realized that proper understanding of JEE tutorial is must. All simulators, books are not going to help much. I will post my experience in another thread.
Oops! I just realized that my post wasn't intended in this thread. Sorry about that. It happens when we open multiple windows and do a multitasking in the office.