Software architect

Please help improve it or discuss these issues on the software architect page. This article needs additional citations for verification.

Did not find what they wanted? Try here

This article’s factual accuracy is disputed. Relevant discussion may be found on the talk page. A software designer is a software developer expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms. A designer has thought through all the aspects of a software, just like a designer that builds a house. A construction designer knows where the ducts will be, where the electric connections will be and where the water outlets will be.

Software designers may also be engaged in the design of the hardware environment, or may focus entirely on the design methodology of the code. The enterprise designer handles the interaction between the business and IT sides of an organization and is principally involved with determining the AS-IS and TO-BE states from a business and IT process perspective. An application designer works with a single software application. Solution designer, which may refer to a person directly involved in advancing a particular business solution needing interactions between multiple applications. May also refer to an application designer. Software architecture refers to the high level structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

Software architecture is about making fundamental structural choices which are costly to change once implemented. Software architecture choices include specific structural options from possibilities in the design of software. For example, the systems that controlled the space shuttle launch vehicle had the requirement of being very fast and very reliable. Documenting software architecture facilitates communication between stakeholders, captures early decisions about the high-level design, and allows reuse of design components between projects. Following this line of thought, architectural design issues may become non-architectural once their irreversibility can be overcome. This insight has led to substantial research into software architecture knowledge management.

They are all part of a “chain of intentionality” from high-level intentions to low-level details. Multitude of stakeholders: software systems have to cater to a variety of stakeholders such as business managers, owners, users, and operators. These stakeholders all have their own concerns with respect to the system. Balancing these concerns and demonstrating how they are addressed is part of designing the system. This implies that architecture involves dealing with a broad variety of concerns and stakeholders, and has a multidisciplinary nature. Separation of concerns: the established way for architects to reduce complexity is to separate the concerns that drive the design.