How to Design and Architect a Java/Java EE web application? [closed]

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 6 years ago .

I am java developer with almost 5 years of experience on Struts, Spring and Hibernate. We have a new project coming up in few days. We have the complete requirements with us and we will be doing this project using Spring MVC, Spring and the Hibernate. I have been asked to design and architect the entire web application. Designing and creating an Architect is something which I have not done till now in my career. And I don't know how do I go about this and where to start, what tools to use and so on. I don't know even the A,B,C's of design and architecture. You may be wondering why I was even I asked to do this at first place. The thing is I was given an opportunity to do this and at every stage I will be monitored and I will have my seniors reviewing the design. So any suggestion, ideas and steps to start and go ahead are welcome.

38.1k 12 12 gold badges 111 111 silver badges 142 142 bronze badges asked Apr 21, 2011 at 3:15 13.1k 59 59 gold badges 166 166 silver badges 239 239 bronze badges

In your past 5yrs experience, Any of the project design documents given for you to develop or any discussion you had with Architect? Bascially check on any Software Design/Architecture book for basic understanding. You need to start with requirements to use case scenarios, then sequence diagram, system architecture design, component diagram, class diagram and database design like that. Depend on practice in your workplace, you may need to some extra documents or less. but, this is basic minimum set.

Commented Apr 21, 2011 at 3:21

I have not had any design documents in the projects I have worked so far :-(. Hence it is looking more tough for me.

Commented Apr 21, 2011 at 3:24

7 Answers 7

I can add my 2 cents from my own experiences (although its more of a compilation of development best practises, you might find it useful to keep them in mind while designing your application):