Infocomm TechnologyISCO 2512

Software analyst

A software analyst is a person who works out what a piece of software has to do, writes that down precisely enough to build from, and checks the finished product against it.

Check yourself in a minute: software analyst

Rate 5 of the 19 essential skills of this occupation (European ESCO data). No account needed.

translate requirements into visual design

develop software prototype

manage ICT legacy implication

interact with users to gather requirements

execute feasibility study

About software analyst

The job begins with the people who will use the system. The analyst identifies what they need, gathers requirements through interviews and workshops, and ranks them, because not everything asked for can be built first. Those requirements become documentation: written software specifications, data models showing what information the system holds and how it connects, and sometimes a prototype or visual design so a user can see the idea before it is coded. During development the analyst stays with the work: answering developers' questions, reviewing specifications as decisions change them, testing whether what was built does what was specified, and taking part in the release process that moves a version into use. Legal requirements that apply to the product are checked at the specification stage rather than after release.

The analyst sits between software users and the development team, and spends the day translating both ways: the language of the business into specifications, technical constraints into plain explanation.

Software analyst skills therefore split into two groups. On one side: interviewing, listening, writing without ambiguity, and prioritising. On the other: data modelling, software design methodologies, prototyping, and knowing a system well enough to judge whether a request is cheap or expensive to build. Because the role rests on knowing both the users and the system, it is usually taken on by someone who has already worked with one of them.

Key Work Functions

Core areas of responsibility for a software analyst.

1

Requirements Elicitation and Analysis

  • Conduct interviews and workshops with stakeholders to elicit business and ICT system requirements
  • Document and prioritise functional and non-functional requirements based on business value and technical feasibility
  • Identify and clarify conflicting or ambiguous requirements with stakeholders
  • Define technical requirements and translate business needs into system specifications
2

Business Process Analysis

  • Analyse current business processes to understand workflows and identify improvement opportunities
  • Map process flows and create visual representations of business operations
  • Identify ICT user needs and design information systems to support business objectives
3

Design and Specification Documentation

  • Create software design documents and visual models (UML diagrams, flowcharts) for development teams
  • Develop data models and define database structures to support software requirements
  • Develop software prototypes and proof-of-concept systems to validate design approaches
  • Develop documentation in accordance with legal and regulatory requirements for ICT products
4

Testing and Validation

  • Test software applications to verify compliance with documented specifications
  • Conduct feasibility studies and execute pilot testing before full implementation
  • Report defects and changes required to ensure software meets business requirements
5

Architecture and Design Methodologies

  • Apply software architecture models and design methodologies (e.g., layered, microservices) to specifications
  • Define software architecture and communicate design decisions to technical teams
  • Manage implications of legacy ICT systems and ensure integration with new solutions
6

User Interaction and Stakeholder Communication

  • Interact regularly with users and stakeholders to gather feedback and manage expectations
  • Create and maintain communication channels between business stakeholders and development teams
  • Translate business language to technical language and vice versa

European Skills Framework

Skills and knowledge areas required for this occupation based on European classification.

Essential (19)

software architecture modelssoftware architecture modelsThe set of structures and models needed to understand or describe the software system, including the software elements, the relations between them and the properties of both elements and relations.software design methodologiessoftware design methodologiesThe methodologies such as Scrum, V-model and Waterfall to design software systems and applications.legal requirements of ICT productslegal requirements of ICT productsThe international regulations related to the development and use of ICT products.data modelsdata modelsThe techniques and existing systems used for structuring data elements and showing relationships between them, as well as methods for interpreting the data structures and relationships.translate requirements into visual designtranslate requirements into visual designDevelop visual design from given specifications and requirements, based on the analysis of the scope and target audience. Create a visual representation of ideas such as logos, website graphics, digit...develop documentation in accordance with legal requirementsdevelop documentation in accordance with legal requirementsCreate professionally written content describing products, applications, components, functions or services in compliance with legal requirements and internal or external standards.develop software prototypedevelop software prototypeCreate a first incomplete or preliminary version of a piece of software application to simulate some specific aspects of the final product.manage ICT legacy implicationmanage ICT legacy implicationOversee the transfer process from a legacy (an outdated system) to a current system by mapping, interfacing, migrating, documenting and transforming data.interact with users to gather requirementsinteract with users to gather requirementsCommunicate with users to identify their requirements and collect them. Define all relevant user requirements and document them in an understandable and logical way for further analysis and specificat...execute feasibility studyexecute feasibility studyPerform the evaluation and assessment of the potential of a project, plan, proposition or new idea. Realise a standardised study which is based on extensive investigation and research to support the p...define software architecturedefine software architectureCreate and document the structure of software products including components, coupling and interfaces. Ensure feasibility, functionality and compatibility with existing platforms.create data modelscreate data modelsUse specific techniques and methodologies to analyse the data requirements of an organisation's business processes in order to create models for these data, such as conceptual, logical and physical mo...ICT system user requirementsICT system user requirementsThe process intended to match user and organisation's needs with system components and services, by taking into consideration the available technologies and the techniques required to elicit and speci...identify ICT user needsidentify ICT user needsDetermine the needs and requirements of ICT users of a specific system by applying analytical methods, such as target group analysis.analyse business processesanalyse business processesStudy the contribution of the work processes to the business goals and monitor their efficiency and productivity.define technical requirementsdefine technical requirementsSpecify 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 acc...design information systemdesign information systemDefine the architecture, composition, components, modules, interfaces and data for integrated information systems (hardware, software and network), based on system requirements and specifications.create software designcreate software designTranspose a series of requirements into a clear and organised software design.business requirements techniquesbusiness requirements techniquesThe procedures required to identify and analyse business and organisational needs.
Optional (80) — show
HaskellHaskellThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Haskell.incremental developmentincremental developmentThe incremental development model is a methodology to design software systems and applications.ErlangErlangThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Erlang.SAS languageSAS languageThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAS language.Agile project managementAgile project managementThe agile project management approach is a methodology for planning, managing and overseeing of ICT resources in order to meet specific goals and using project management ICT tools.Ruby (computer programming)Ruby (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Ruby.Common LispCommon LispThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Common Lisp.LispLispThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Lisp.Visual BasicVisual BasicThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Visual Basic.Java (computer programming)Java (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Java.computer programmingcomputer programmingThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms (e.g. object oriented programming, functional programming) a...Prolog (computer programming)Prolog (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Prolog.OpenEdge Advanced Business LanguageOpenEdge Advanced Business LanguageThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in OpenEdge Advanced Business Language.iterative developmentiterative developmentThe iterative development model is a methodology to design software systems and applications.XQueryXQueryThe computer language XQuery is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the international standards organis...PerlPerlThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Perl.Smalltalk (computer programming)Smalltalk (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Smalltalk.PHPPHPThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in PHP.inter-organisational middleware systeminter-organisational middleware systemA software infrastructure that acts as an intermediary layer between applications to enable data exchange, interoperability and communication. It aims to provide standardised protocols and services be...Assembly (computer programming)Assembly (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Assembly.Spiral developmentSpiral developmentThe spiral development model is a methodology to design software systems and applications.C#C#The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C#.RRThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in R.GroovyGroovyThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Groovy.ASP.NETASP.NETThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ASP.NET.APLAPLThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in APL.object-oriented modellingobject-oriented modellingThe object-oriented paradigm, which is based on classes, objects, methods and interfaces and their application in software design and analysis, programming organisation and techniques.SPARQLSPARQLThe computer language SPARQL is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the international standards organis...Outsourcing modelOutsourcing modelThe outsourcing model consists of principles and fundamentals of service-oriented modelling for business and software systems that allow the design and specification of service-oriented business syste...hybrid modelhybrid modelThe hybrid model consists of principles and fundamentals of service-oriented modelling for business and software systems that allow the design and specification of service-oriented business systems wi...Waterfall developmentWaterfall developmentThe waterfall development model is a methodology to design software systems and applications.unified modelling languageunified modelling languageThe general-purpose modelling language used in software development to offer a standard visualisation of system designs.service-oriented modellingservice-oriented modellingThe principles and fundamentals of service-oriented modelling for business and software systems that allow the design and specification of service-oriented business systems within a variety of archite...core banking softwarecore banking softwareThe selection of software for core banking activities management (e.g. deposits, payments, loans, bank transactions, customer data) and other functions related to banking.levels of software testinglevels of software testingThe levels of testing in the software development process, such as unit testing, integration testing, system testing and acceptance testing.TypeScriptTypeScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in TypeScript.Rapid application developmentRapid application developmentThe rapid application development model is a methodology to design software systems and applications.resource description framework query languageresource description framework query languageThe query languages such as SPARQL which are used to retrieve and manipulate data stored in Resource Description Framework format (RDF).CoffeeScriptCoffeeScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in CoffeeScript.Objective-CObjective-CThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Objective-C.ICT problem management techniquesICT problem management techniquesThe techniques related to identifying the solutions of the root cause of ICT incidents.ML (computer programming)ML (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ML.LDAPLDAPThe computer language LDAP is a query language for retrieval of information from a database and of documents containing the needed information.SPARKSPARKThe Java micro framework software development environment which provide specific features and components that support and guide web applications development.Open source modelOpen source modelThe open source model consists of principles and fundamentals of service-oriented modelling for business and software systems that allow the design and specification of service-oriented business syste...AJAXAJAXThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in AJAX.C++C++The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C++.trading softwaretrading softwareThe finance and trading integrated software solutions.SAP R3SAP R3The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAP R3.Swift (computer programming)Swift (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Swift.ICT project management methodologiesICT project management methodologiesThe methodologies or models for planning, managing and overseeing of ICT resources in order to meet specific goals, such methodologies are Waterfall, Incremental, V-Model, Scrum or Agile and using pro...MATLABMATLABThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in MATLAB.LINQLINQThe computer language LINQ is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the software company Microsoft.Python (computer programming)Python (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Python.Scratch (computer programming)Scratch (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scratch.Process-based managementProcess-based managementThe process-based management approach is a methodology for planning, managing and overseeing of ICT resources in order to meet specific goals and using project management ICT tools.lean project managementlean project managementThe lean project management approach is a methodology for planning, managing and overseeing of ICT resources in order to meet specific goals and using project management ICT tools.Agile developmentAgile developmentThe agile development model is a methodology to design software systems and applications.COBOLCOBOLThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in COBOL.Pascal (computer programming)Pascal (computer programming)The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Pascal.ABAPABAPThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ABAP.Prototyping developmentPrototyping developmentThe prototyping development model is a methodology to design software systems and applications.DevOpsDevOpsThe DevOps development approach is a methodology to design software systems and applications focused on the collaboration and between software programmers and other ICT professionals and automation.N1QLN1QLThe computer language N1QL is a query language for retrieval of information from a database and of documents containing the needed information. It is developed by the software company Couchbase.use an application-specific interfaceuse an application-specific interfaceUnderstand and use interfaces particular to an application or use case.create prototype of user experience solutionscreate prototype of user experience solutionsDesign and prepare mock-ups, prototypes and flows in order to test User Experience (UX) solutions or to collect feedback from users, customers, partners or stakeholders.ensure compliance with legal requirementsensure compliance with legal requirementsGuarantee compliance with established and applicable standards and legal requirements such as specifications, policies, standards or law for the goal that organisations aspire to achieve in their effo...create project specificationscreate project specificationsDefine the workplan, duration, deliverables, resources and procedures a project has to follow to achieve its goals. Describe project goals, outcomes, results and implementation scenarios.provide ICT consulting adviceprovide ICT consulting adviceAdvise on appropriate solutions in the field of ICT by selecting alternatives and optimising decisions while taking into account potential risks, benefits and overall impact to professional customers.manage ICT projectmanage ICT projectPlan, organize, control and document procedures and resources, such as human capital, equipment and mastery, in order to achieve specific goals and objectives related to ICT systems, services or produ...ensure compliance with company regulationsensure compliance with company regulationsGuarantee that employees' activities follow company regulations, as implemented through client and corporate guidelines, directives, policies and programmes.analyse ICT systemanalyse ICT systemAnalyse the functioning and performance of information systems in order to define their goals, architecture and services and set procedures and operations to meet end users requirements.monitor system performancemonitor system performanceMeasure system reliability and performance before, during and after component integration and during system operation and maintenance. Select and use performance monitoring tools and techniques, such ...solve ICT system problemssolve ICT system problemsIdentify potential component malfunctions. Monitor, document and communicate about incidents. Deploy appropriate resources with minimal outage and deploy appropriate diagnostic tools.manage system testingmanage system testingSelect, perform and track testings on software or hardware to detect system defects both within the integrated system units, the inter-assemblages and the system as a whole. Organise testings such as ...identify ICT system weaknessesidentify ICT system weaknessesAnalyse the system and network architecture, hardware and software components and data in order to identify weaknesses and vulnerability to intrusions or attacks. Execute diagnostic operations on cybe...ICT project managementICT project managementThe methodologies for the planning, implementation, review and follow-up of ICT projects, such as the development, integration, modification and sales of ICT products and services, as well as projects...ScalaScalaThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scala.VBScriptVBScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in VBScript.JavaScriptJavaScriptThe techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in JavaScript.

Related Occupations

Occupations that need many of the same essential skills, so the move between them is shortest.

Frequently asked questions

What does a software analyst do?

Software analysts elicit and prioritise user requirements, produce and document software specifications, test their application, and review them during software development. They act as the interface between the software users and the software development team.

What skills does a software analyst need?

A software analyst needs 19 essential skills, including software architecture models, software design methodologies, legal requirements of ICT products, data models, translate requirements into visual design.

Will AI replace software analyst jobs?

The AI disruption score for software analyst is 77/100 (very high risk). Skills most exposed to automation: LDAP, Waterfall development, develop documentation in accordance with legal requirements. Most resilient: Agile project management, computer programming, create prototype of user experience solutions.

AI Replacement Risk

77/ 100
Very High Risk
Low riskHigh risk

This is the average for the whole occupation. The AI Career Shield test (about 10 minutes) shows the risk in your own work and what you can do about it.

Check your own AI risk
View full AI disruption analysis →

Quick Facts

ISCO GroupInformation and communications technology professionals
Essential Skills19

What are you missing to work as software analyst?

The free skill gap analysis compares your skills with what this occupation requires and shows where to start.

Check your gaps