posted 11 years ago
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?
a) Security
b) Response Time
c) Manageability
d) Maintainability (*)
e) Performance
REFERENCE:
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?
Any clarification would be greatly appreciated.
Thanks,
Marcelo
SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJD, SCEA/OCMJEA
Live life to an interface, not an implementation!