Accenture Java Architect Interview
Company -  Accenture
Mode -  Direct
Duration -  30+ minutes
Contributed By -  Santosh
Candidate's Profile - 6+ Years of Exp in Java and J2EE


Tell us about yourself.
Told about me...

Okay. What are your responsibilities as an Java Architect?
As an architect,i had to involve myself from project initiation till delivery and initial support. Some of the responsibilities are:

* Technical inputs during business analysis.
* Coming up with use cases and validating the same with business analysts and end users.
* Identifying the technology that will be used in the project .
* Recommending the development methodologies and frameworks.
* Defining the architecture and the infrastructure requirements.
* Providing the high level design and helping the designers in low level design.
* Defining and enforcing the coding standards.
* Conducting design audit.
* Guiding developers to accomplish difficult tasks.
* Helping to recruit technical people.
* Defining and achieving performance targets.
* Helping the project manager in planning and execution.


What are the different types of project development methodologies that are available? Which one do you prefer or which one do you consider the best?
Waterfall model, Iterative model like the XP and RUP are widely used ones. For big projects, Waterfall model is mostly used. And of-late XP is also widely used. But in practice, all of them are tailored to suit the requirements of the project and are used exactly as specified.

And which one do you prefer?
XP with adaptations.

What is an use case?
An use-case is actually a requirement from the user of the system. An use-case is a statement of what the system will do at the request by one of the actors of the system.

What do you mean by an actor?
An actor could be an end user or an external system who is serviced by the system.

What are all the things you will consider when your application is required to communicate to an external system.
There could be many factors but primarily i will consider and finalise communication mechanism, data exchange format, error handling and the initiating events.

What are exactly meaning by communication mechanism?
By communication mechanism, i mean synchronous or asynchronous communication. If the application requires immediate response, i will use synchronous communication methods or else asynchronous communication methods.

Can you give examples synchronous communication methods? And which one do you prefer?
Sockets,HTTP,RMI,EJB,CORBA and web-services are all ways for synchronous communication. I would prefer web-services.

Why web-services?
Web-services are based on service oriented architecture. They are platform independent. Web-services make the application highly loose coupled - for example a J2EE application can communicate with a .NET application with little effort and without any great hiccups.

What data exchange formats do you prefer for inter-application communication?
XML is the preferred choice because of its simplicity and self-descriptive syntax. But sometimes you might really need an XML.

Can you explain under what circumstances you avoided using XML for data exchange?
I worked on a banking application which had a suite of in-built applications which were built on the J2EE architecture platform. And we had general wrapper value objects which could be used across applications. There it did not make sense to convert the value object to XML just for the sake of using XML.

When you pass Java value objects across applications, will it not lead to tight coupling of the applications?
As I told you earlier, these 7 applications were built using the same J2EE architecture, hence these inter-application data transfer objects were grouped as part of the architectural common components.

Have you ever used any mechanism other than JMS for asynchronous messaging?
No. I havent come across any other J2EE framework for asynchronous communication. Moreover JMS is simple and highly stable for asynchronous communication.

You have variety of options for persistence in J2EE. Which one do you prefer?
As you said, We have JDBC, Bean managed entity beans, container managed entity beans, hibernate, JDO, toplink, etc. Some are specifications from sun and others are open source frameworks. Each have their pros and cons. My first choice would be hibernate, if i had to tweak for performance and require control - i would go with JDBC.

Why are you entirely avoiding entity beans?
First of all, entity beans havent evolved at the speed of market requirements. Its too heavy for database operations. Even with BMPs you dont really get the control you wanted. Entity beans are highly unsuitable for batch operations. And it also has a steep learning curve for junior developers. I have seen many architects who have stayed clear of entity beans for these obvious reasons.

Will you prefer writing common components on your own for the application or will you prefer open-sourced components?
It depends on the project timelines, availability and quality of open-source components and the real value add.

What is a value object?
Value object is a set of related data grouped together for purpose of communicating within the application. Value objects are simple objects with setter and getter methods and without any processing logic. They should be serializable because of their network transfer capability.

Is there a difference between value object and data transfer object?
No. Both are one and the same.

Few more non-technical questions and interview closure chat.




If you wish to share your interview experience, send us the entire interview questions with answers to admin@javaiq.net. The questions should be in the same order as it was asked in the interview. We will review your interview stream for originality and correctness, after which the stream will be uploaded.

java interview guide If your interview submission is selected, we will send a gift card for "$25" .

Rules
  • This offer is available only for contributors from USA and India.
  • Gift Card worth is Twenty Five US Dollors or it's equivalent
  • The contributed content becomes the property of JavaIQ.net
  • This offer can be withdrawn without any prior notice.
  • The decision of the JavaIQ team will be final.