Profession software architect

Software architects create the technical design and the functional model of a software system, based on functional specifications. They also design the architecture of the system or different modules and components related to the business' or customer requirements, technical platform, computer language or development environment.

Would you like to know what kind of career and professions suit you best? Take our free Holland code career test and find out.

Personality Type

  • Investigative / Realistic

Knowledge

  • Systems development life-cycle

    The sequence of steps, such as planning, creating, testing and deploying and the models for the development and life-cycle management of a system.

  • Business process modelling

    The tools, methods and notations such as Business Process Model and Notation (BPMN) and Business Process Execution Language (BPEL), used to describe and analyse the characteristics of a business process and model its further development.

  • Tools for software configuration management

    The software programs to perform configuration identification, control, status accounting and audit, such as CVS, ClearCase, Subversion, GIT and TortoiseSVN perform this management.

  • Unified modelling language

    The general-purpose modelling language used in software development to offer a standard visualisation of system designs.

  • Object-oriented modelling

    The object-oriented paradigm, which is based on classes, objects, methods and interfaces and their application in software design and analysis, programming organisation and techniques.

Skills

  • Analyse business requirements

    Study clients' needs and expectations for a product or service in order to identify and resolve inconsistencies and possible disagreements of involved stakeholders.

  • Design process

    Identify the workflow and resource requirements for a particular process, using a variety of tools such as process simulation software, flowcharting and scale models.

  • Create software design

    Transpose a series of requirements into a clear and organised software design.

  • Provide technical documentation

    Prepare documentation for existing and upcoming products or services, describing their functionality and composition in such a way that it is understandable for a wide audience without technical background and compliant with defined requirements and standards. Keep documentation up to date.

  • Collect customer feedback on applications

    Gather a response and analyse data from customers to identify requests or problems in order to improve applications and overall customer satisfaction.

  • Align software with system architectures

    Put system design and technical specifications in line with software architecture in order to ensure the integration and interoperability between components of the system.

  • Define technical requirements

    Specify technical properties of goods, materials, methods, processes, services, systems, software and functionalities by identifying and responding to the particular needs that are to be satisfied according to customer requirements.

  • Analyse software specifications

    Assess the specifications of a software product or system to be developed by identifying functional and non-functional requirements, constraints and possible sets of use cases which illustrate interactions between the software and its users.

  • Define software architecture

    Create and document the structure of software products including components, coupling and interfaces. Ensure feasibility, functionality and compatibility with existing platforms.

  • Build business relationships

    Establish a positive, long-term relationship between organisations and interested third parties such as suppliers, distributors, shareholders and other stakeholders in order to inform them of the organisation and its objectives.

  • Provide cost benefit analysis reports

    Prepare, compile and communicate reports with broken down cost analysis on the proposal and budget plans of the company. Analyse the financial or social costs and benefits of a project or investment in advance over a given period of time.

  • Oversee development of software

    Organise, plan and supervise the development of the applications and frameworks in order to create a software product, from the earliest planning stages to the final product test.

  • Create flowchart diagram

    Compose a diagram that illustrates systematic progress through a procedure or system using connecting lines and a set of symbols.

Optional knowledge and skills

asp.net cobol vbscript swift (computer programming) computer programming puppet (tools for software configuration management) matlab erlang task algorithmisation process-based management haskell ict security legislation sas language design database scheme smalltalk (computer programming) jenkins (tools for software configuration management) ruby (computer programming) ajax use markup languages utilise computer-aided software engineering tools develop software prototype abap perform ict troubleshooting c# prolog (computer programming) perl sap r3 r lisp agile project management objective-c perform resource planning implement data warehousing techniques apl python (computer programming) php common lisp scala apache maven java (computer programming) groovy systems theory openedge advanced business language pascal (computer programming) javascript salt (tools for software configuration management) assembly (computer programming) ansible web programming ml (computer programming) scratch (computer programming) provide ict consulting advice manage staff coffeescript typescript visual studio .net staf apply ict systems theory microsoft visual c++ ict project management methodologies lean project management perform risk analysis c++