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

Knowledge

  • 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.

  • Unified modelling language

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

  • 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.

  • 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.

  • 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.

Skills

  • Create flowchart diagram

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

  • 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.

  • 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.

  • 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.

  • 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.

  • 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 software architecture

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

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

Optional knowledge and skills

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

Source: Sisyphus ODB