Win a copy of TDD for a Shopping Website LiveProject this week in the Testing forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Jeanne Boyarsky
  • Tim Cooke
Sheriffs:
  • Liutauras Vilda
  • paul wheaton
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Frits Walraven
Bartenders:
  • Piet Souris
  • Himai Minh

Confusion on 3 ICE Questions..

 
Ranch Hand
Posts: 782
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi guyz,
Q#1 Benefits resulting from designing and implementing layered application
components include:
a) Reduced initial design time.
b) Reduced time for initial development cycle.
c) Reduction of GUI layer changes impacting the model layer.
d) Maintainability and reuse of the application components.
Multiple Select - Please select all of the correct answers (this question has 2 correct choices).
ANS: c, d
Why not b? And what is meant by c?
Q#2 Valid reasons for grouping classes into the same package are that the
classes:
a) are related by aggregation.
b) are worked on by the same group of developers.
c) are related by specialization.
d) support the same high-level services.
Multiple Select - Please select all of the correct answers (this question has 2 correct choices).
ANS: c, d
Why not b? And what does is mean by same high-level services
Q#3 When designing the user interface for an application, if it is unclear
what skill level the end user of an application will possess, which of the following is the BEST approach to take?
a) Define the skill level that will be required by the end user
and make the necessary arrangements for educating the users.
b) Define the skill level that will be required by the end user
and provide detailed on-line help that can be accessed by the users when
needed.
c) Prototype portions of the user interface and perform some
usability tests to identify any problem areas. Document any issues in the
product readme and have the users read it before using the product.
d) Prototype portions of the user interface and perform some
usability tests to determine the users' level of satisfaction. Make any
necessary changes and repeat the process.
Single Select - Please select the best answer (one and only one choice must be selected).
ANS: d
I have seen practically mostly a is used along with b. But couldnlt get the meaning of d?

Please help in above questions.
Bye,
Viki.
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Q#1
Why do you think a layered architecture would "reduce time for initial development cycle"?
Regarding c) - in a well layered application, if you need to change to GUI, only the GUI layer should be affected. The model layer should be totally indifferent to GUI concerns.
Q#2
I have the diffuse feeling that this somehow is a bogus-question. http://c2.com/cgi/wiki?PackageDesign might bring some light into you understanding, though.
Q#3
d) means simply *finding out* the actual skill level (and, more importantly, the appropriate user interface) by well directed experiments. a) to c) just mean to find lame excuses for producing a product noone will like to use. :roll:
 
Ranch Hand
Posts: 341
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Q#1 Benefits resulting from designing and implementing layered application
components include:
a) Reduced initial design time.
b) Reduced time for initial development cycle.
c) Reduction of GUI layer changes impacting the model layer.
d) Maintainability and reuse of the application components.
Why not B?
I do not believe layered architecture reduces development time. Because you have multiple layers, you have to write more classes and ensure the connection between them (the way layers interact with one another). This should increase the initial development time rather than reducing it (I experience this on my current project). However, this increase (if any) is not bad at all given the other advatages (as in choices c and d). Also in layered architecture, developer has many opportunities to copy and paste.
What is the meaning of c?
Let me start by introducing the terms GUI and model the way I understand them. GUI - presentation layer which has code to interact with other layers to retrieve data from the database to display them to the user and send user input to the database using other layers. Model - the layer that implements the business logic. In layered architecture, suppose you want to display name and address of the person, your model would return you some kind of object with above data, GUI layer would use the object to display the data. GUI does not care how the data is retrieved and model does not care how the data will be used. This way GUI and model layers do not depend on each other. On the other had if you had logic to retrieve data embaded in the GUI logic then changing GUI, would also require changes in the business logic. One of the motivations of layered architecture is that changes in one layer do not affect another layer. For example, if you have separate layer for database related operation which is called by EJB layer, changing database, or connection attribute will affect only database layer and your EJB layer will not change at all.
Question 2 I HAVE NO IDEA
Q#3 When designing the user interface for an application, if it is unclear
what skill level the end user of an application will possess, which of the following is the BEST approach to take?
a) Define the skill level that will be required by the end user
and make the necessary arrangements for educating the users.
b) Define the skill level that will be required by the end user
and provide detailed on-line help that can be accessed by the users when
needed.
c) Prototype portions of the user interface and perform some
usability tests to identify any problem areas. Document any issues in the
product readme and have the users read it before using the product.
d) Prototype portions of the user interface and perform some
usability tests to determine the users' level of satisfaction. Make any
necessary changes and repeat the process.
Whatis the meaning of D?
I believe this goes in line with the Rational Unified Process which is iterative in nature. If your users are not GUI experts, it is best to develop prototypes (html pages - with dummy data if needed) and then have users validate the way pages will look in the real application. Once users are comfirtable with the look and feel and navigation of the pages, ideally changes to the pages are frozen and then business logic is implemented. The advantage of this approach is that, users will not have to learn the way GUI works (because they have already understood the pages and validated them) and developers will not get any surprizes after they have implemented all the code.
I have seen a used with b:
You are right. This was practice until now. But now it is considered a poor practice particularly if you are a consultant developing applications for clients. It is very important that client is involved in the process and validates everything. Also, if you are developing application for others, you do not have control over the skills of the users and your clients (users) might feel, "Why the heck are we paying so much money if we have to go through help documentation to use this functionality?"
Hope this helps
[ March 28, 2003: Message edited by: Chintan Rajyaguru ]
 
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Viki,
For packaging Types must be grouped together that are strongly related in terms of their participation in a common pupropse,
service, collaborations, policy and function.
Here we can consider a high level service of accessing MQ series so there is a service of provided to in the framework
In this service there will be all the related classes like MQRunner,MQAccessor,MQAdapter.
These are the guidelines for organizing packages
1.Are in the same subject area-closely related by concept or purpose.
2.Are in a class hierarchy together.
3.Participate in the same use cases.
4.Are strongly associated.
In a group developers can work on different classes like some working on business layer some on persistence layer so in a group
all developers do not work on same package.Normally the groups are divided on the Use Case basis they work on a specific similar Functionality Use cases
answer c,d is correct (Q2)
for question 1 and question 3 I agree with Ilja Preuss
In addition to this for question 3 I like to add that using Iterative and Incremental approach where you have a continious involvement of the end user
Hope this helps
Regards
Malay
[ March 29, 2003: Message edited by: Malay Thakkar ]
 
There's a way to do it better - find it. -Edison. A better tiny ad:
free, earth-friendly heat - a kickstarter for putting coin in your pocket while saving the earth
https://coderanch.com/t/751654/free-earth-friendly-heat-kickstarter
reply
    Bookmark Topic Watch Topic
  • New Topic