Considering software architecture concurrently and iteratively with software requirements, has been illustrated as a way to increase productivity and stakeholder satisfaction in the twin peaks model software development process. Because this model exposed only the tip of the iceberg, and lacks of concrete definitions and techniques, an approach of utilizing this model in the real world has been proposed by applying the concept of the product development process based on Quality Function Deployment. In this paper, we will go further of giving more detail about how to define the requirements along with software architecture. In order to provide a method to define a robust software architecture but to be adaptable to the presence of changing requirements, we apply layering concept to the software requirements analysis and architectural design.