I am in the architecture phase of my project. My challenge is that I am unable to maintain a certain level of abstraction at present. I often creep into areas that we generally address as part of design.
I don't know where to stop thinking & elaborating ... therefore I end up articulating very fine details of the solution which will directly be usable to the programmers. In the process I am losing the big picture (vision) and stretching time exclusively dedicate for the purpose of architecture.
Are there any ways / methodologies / approaches that can be used to restrict myself within boundaries of architecture while I am addressing it and likewise for design when I am in design phase?
I am afraid the only real answer is practice; practice; practice. However, I found that when considering distribution of topics between the different areas, it is useful to continually remind yourself of three things.
Firstly, try to keep in mind, all the time, what level of task you are currently working on. When considering any part of the architecture/design, keep saying (to yourself) - is this an appropriate topic for THIS task. (As an example, the project I am currently working on, requires the specification of a parser parser. This is essential to the architecture, but I failed to remember for a long time that the output of the program was a parser, rather than the description of the grammar.)
Secondly, simplify. I have found that both good design and good architecture tend to be simple - they tend to lead to an "aha" moment - it is obvious that this is the way to go. This does mean (particularly when working on architecture) to be prepared to reorganise things; to remove things from the architecture - into a "good idea fragment" location, so that you can go back to them. Remember also that if you have the appropriate level of abstraction, then even a very simple system description will have substantial depth.
Thirdly, keep track of your thinking, your ideas, your proposals. This need not be very elaborate - I use a textual diary format, timestamping entries as I make them. I capture things that seem to be significant at the time. I don't go back to it a lot, but I do go back, particularly if there is a break in my thinking. This tool is for my own personal use - it is not something that I make available to others.
Finally, delving too deep into design when working on architecture, may well be part of the process. One needs to really understand the implications and requirements you are trying to satisfy, and sometimes the only way to do this is to go deep. Just remember to surface yourself, be prepared to park elsewhere the results of going deep, and integrate the results of your investigations into your architecture - at an appropriate level of abstraction of course.
EDIT:
As far as tooling goes, I have found tools to aid thinking of most assistance. Mind mapping software such as Mind Manager; UML tools such as you mention; whiteboard type tools, where items can be placed and moved around and amended with the same facility as a whiteboard; and (if in corporate environment) brainstorming meeting software. I can't give references to these latter tools, because my knowledge is severely out of date. Also, putting all your notes under version control, separated by task into different projects can be of help.
As part of the project I mentioned originally, I am trying to develop a number of tools which will aid in this sort of process. The tools will be integrated by reference to a models of the architectural, design, and build processes. However, this is a recreational project with a sole developer, myself, and I am not yet at a point where I can provide tools.