With software systems becoming more complex, and handling diverse and critical applications, the need for their thorough evaluation has become ever more important at each phase of software development. With the prevalent use of component-based design, the software architecture as well as the behavior of the individual components of the system needs to be taken into account when evaluating it. In recent past a number of studies have focused on architecture based reliability estimation. But areas such as security and cache behavior still lack such an approach. In this paper we propose an architecture based unified hierarchical model for software reliability, performance, security and cache behavior prediction. We define a metric called the vulnerability index of a software component for quantifying its (in)security. We provide expressions for predicting the overall behavior of the system based on the characteristics of individual components, which also takes into account second order architectural effects for providing an accurate prediction. This approach also facilitates the identification of reliability, performance, security and cache performance bottlenecks. In addition we illustrate how the approach could be applied to software systems by case studies and also provide expressions to perform sensitivity analysis.