Formal and quantitative approach to non-functional requirements modeling and assessment in software engineering