Software architectures are high-level design representations of software sy
stems which focus on composition of software components and how those compo
nents interact. Software architectures abstract the details of implementati
on and allow the designer to focus on essential design decisions. Regardles
s of notation, designers are faced with the task of making good design deci
sions which demand a broad range of knowledge of the problem and solution d
omains. In this paper we describe Argo, a software architecture design envi
ronment that supports designers by addressing several cognitive challenges
of design. Argo's critiquing infrastructure supports decision making by aut
omatically supplying knowledge that is timely and relevant to decisions at
hand. Our discussion centers on a five-phase critiquing process that we use
to motivate Argo's features, structure a usage scenario and characterize r
elated work. (C) 1998 Elsevier Science B.V. All rights reserved.