A narrower form of systems engineering that addresses only those systems which are computer-based. This is a very important subset of systems engineering, but is still very much wider than software engineering. It encourages a holistic view of a system, its environment, and its components. Often the components of computer-based systems are also (lower-level) computer-based systems. ECBS pays great attention to addressing non-functional properties of a proposed design, and the need for give-and-take between different design options prior to committing to an implementation. Give-and-take is seen as a crucial aspect of such developments because it is here that competing requirements and conflicts (especially commercial versus technical risk) can be addressed.