with the user(s) and sponsor(s) and all other stakeholders in order to determine their (evolving) needs. Generating the highest level of system requirements, based on the users' needs and other constraints. Ensuring that this set of high level requirements is consistent, complete, correct, and operationally defined. Performing cost–benefit analyses to determine whether requirements are best met by manual, software, or hardware functions; making maximum use of commercial off-the-shelf or already developed components. Developing partitioning algorithms (and other processes) to allocate all present and foreseeable requirements into discrete partitions such that a minimum of communications is needed among partitions, and between the users and the system. Partitioning large systems into (successive layers of) subsystems and components each of which can be handled by a single engineer or team of engineers or subordinate architect. Interfacing with the design and implementation engineers and architects, so that any problems arising during design or implementation can be resolved in accordance with the fundamental design concepts, and users' needs and constraints. Ensuring that a maximally robust and extensible design is developed. Generating a set of acceptance test requirements, together with the designers, test engineers, and the users, which determine that all of the high-level requirements have been met, especially for the computer-human-interface. Generating products such as sketches, models, an early user guide, and prototypes to keep the users and the engineers constantly up to date and in agreement on the system to be provided as it is evolving. Ensuring that all architectural products and products with architectural input are maintained in the most current state and never allowed to seriously lag or become obsolete. Systems architect: topics Large systems architecture was developed as a way to handle systems too large for one person to conceive of, let alone design. Systems of this size are rapidly becoming the norm, so architectural approaches and architects are increasingly needed to solve the problems of large to very large systems. In general, increasingly large systems are reduced to 'human' proportions by a layering approach, where each layer is composed of a number of individually comprehensible sub-layers-- each having its own principal engineer and/or architect. A complete layer at one level will be shown as a functional 'component' of a higher layer (and may disappear altogether at the highest layers). Users and sponsors Architects are expected to understand human needs and develop humanly functional and aesthetically-pleasing products. A good architect is