Software analyst

Description

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.

Other titles

The following job titles also refer to software analyst:

programming analyst
software requirement analyst
software analysts
software requirements analyst
analyst of software
application analyst
programmer analyst

Minimum qualifications

Bachelor’s degree is generally required to work as software analyst. However, this requirement may differ in some countries.

ISCO skill level

ISCO skill level is defined as a function of the complexity and range of tasks and duties to be performed in an occupation. It is measured on a scale from 1 to 4, with 1 the lowest level and 4 the highest, by considering:

  • the nature of the work performed in an occupation in relation to the characteristic tasks and duties
  • the level of formal education required for competent performance of the tasks and duties involved and
  • the amount of informal on-the-job training and/or previous experience in a related occupation required for competent performance of these tasks and duties.

Software analyst is a Skill level 4 occupation.

Software analyst career path

Similar occupations

These occupations, although different, require a lot of knowledge and skills similar to software analyst.

ICT system analyst
enterprise architect
software tester
user interface designer
chief information officer

Long term prospects

These occupations require some skills and knowledge of software analyst. They also require other skills and knowledge, but at a higher ISCO skill level, meaning these occupations are accessible from a position of software analyst with a significant experience and/or extensive training.

Essential knowledge and skills

Essential knowledge

This knowledge should be acquired through learning to fulfill the role of software analyst.

Business requirements techniques: The procedures required to identify and analyse business and organisational needs.
Software architecture models: The 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 methodologies: The methodologies such as Scrum, V-model and Waterfall to design software systems and applications.
Legal requirements of ict products: The international regulations related to the development and use of ICT products.
Ict system user requirements: The 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 specify requirements, interrogating users to establish symptoms of problem and analysing symptoms.
Data models: The 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.

Essential skills and competences

These skills are necessary for the role of software analyst.

Translate requirement concepts into visual design: Develop 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, digital games and layouts.
Create software design: Transpose a series of requirements into a clear and organised software design.
Analyse business processes: Study the contribution of the work processes to the business goals and monitor their efficiency and productivity.
Develop documentation in accordance with legal requirements: Create professionally written content describing products, applications, components, functions or services in compliance with legal requirements and internal or external standards.
Develop software prototype: Create a first incomplete or preliminary version of a piece of software application to simulate some specific aspects of the final product.
Manage ict legacy implication: Oversee the transfer process from a legacy (an outdated system) to a current system by mapping, interfacing, migrating, documenting and transforming data.
Design information system: Define the architecture, composition, components, modules, interfaces and data for integrated information systems (hardware, software and network), based on system requirements and specifications.
Interact with users to gather requirements: Communicate 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 specification.
Execute feasibility study: Perform 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 process of decision making.
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.
Identify ict user needs: Determine the needs and requirements of ICT users of a specific system by applying analytical methods, such as target group analysis.
Define software architecture: Create and document the structure of software products including components, coupling and interfaces. Ensure feasibility, functionality and compatibility with existing platforms.
Create data models: Use 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 models. These models have a specific structure and format.

Optional knowledge and skills

Optional knowledge

This knowledge is sometimes, but not always, required for the role of software analyst. However, mastering this knowledge allows you to have more opportunities for career development.

Haskell: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Haskell.
Incremental development: The incremental development model is a methodology to design software systems and applications.
Erlang: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Erlang.
Sas language: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAS language.
Agile project management: The 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): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Ruby.
Common lisp: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Common Lisp.
Lisp: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Lisp.
Visual studio .net: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Visual Basic.
Java (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Java.
Mdx: The computer language MDX 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.
Computer programming: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms (e.g. object oriented programming, functional programming) and of programming languages.
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 language: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in OpenEdge Advanced Business Language.
Iterative development: The iterative development model is a methodology to design software systems and applications.
Javascript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in JavaScript.
Xquery: The 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 organisation World Wide Web Consortium.
Perl: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Perl.
Smalltalk (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Smalltalk.
Php: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in PHP.
Assembly (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Assembly.
Spiral development: The spiral development model is a methodology to design software systems and applications.
C#: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C#.
R: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in R.
Groovy: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Groovy.
Asp.net: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ASP.NET.
Apl: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in APL.
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.
Sparql: The 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 organisation World Wide Web Consortium.
Outsourcing model: The 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 systems within a variety of architectural styles, such as enterprise architecture.
Hybrid model: The 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 within a variety of architectural styles, such as enterprise architecture.
Waterfall development: The waterfall development model is a methodology to design software systems and applications.
Unified modelling language: The general-purpose modelling language used in software development to offer a standard visualisation of system designs.
Service-oriented modelling: The 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 architectural styles, such as enterprise architecture and application architecture.
Levels of software testing: The levels of testing in the software development process, such as unit testing, integration testing, system testing and acceptance testing.
Typescript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in TypeScript.
Ict project management: The 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 relating technological innovation in the field of ICT.
Rapid application development: The rapid application development model is a methodology to design software systems and applications.
Resource description framework query language: The query languages such as SPARQL which are used to retrieve and manipulate data stored in Resource Description Framework format (RDF).
Coffeescript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in CoffeeScript.
Objective-c: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Objective-C.
Query languages: The field of standardised computer languages for retrieval of information from a database and of documents containing the needed information.
Ict problem management techniques: The techniques related to identifying the solutions of the root cause of ICT incidents.
Ml (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ML.
Ldap: The computer language LDAP is a query language for retrieval of information from a database and of documents containing the needed information.
Open source model: The 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 systems within a variety of architectural styles, such as enterprise architecture.
Ajax: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in AJAX.
C++: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in C++.
Sap r3: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in SAP R3.
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 methodologies: The 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 project management ICT tools.
Matlab: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in MATLAB.
Linq: The 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): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Python.
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 management: The 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 management: The 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 development: The agile development model is a methodology to design software systems and applications.
Vbscript: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in VBScript.
Cobol: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in COBOL.
Pascal (computer programming): The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Pascal.
Abap: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in ABAP.
Prototyping development: The prototyping development model is a methodology to design software systems and applications.
Saas (service-oriented modelling): The SaaS 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 within a variety of architectural styles, such as enterprise architecture.
Devops: The 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.
N1ql: The 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.
Scala: The techniques and principles of software development, such as analysis, algorithms, coding, testing and compiling of programming paradigms in Scala.

Optional skills and competences

These skills and competences are sometimes, but not always, required for the role of software analyst. However, mastering these skills and competences allows you to have more opportunities for career development.

Create prototype of user experience solutions: Design 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 requirements: Guarantee 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 efforts.
Create project specifications: Define 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 advice: Advise 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 project: Plan, 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 products, within specific constraints, such as scope, time, quality and budget.
Ensure compliance with company regulations: Guarantee that employees’ activities follow company regulations, as implemented through client and corporate guidelines, directives, policies and programmes.
Analyse ict system: Study the activity and performance of information systems in order to model their usage and weaknesses, specify purpose, architecture and services and discover operations and procedures for accomplishing them most efficiently.
Monitor system performance: Measure 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 as special software.
Solve ict system problems: Identify potential component malfunctions. Monitor, document and communicate about incidents. Deploy appropriate resources with minimal outage and deploy appropriate diagnostic tools.
Manage system testing: Select, 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 installation testing, security testing and graphical user interface testing.
Identify ict system weaknesses: Analyse the system and network architecture, hardware and software components and data in order to identify weaknesses and vulnerability to intrusions or attacks.

ISCO group and title

2512 – Software developers

 

 


 

 

References
  1. Software analyst – ESCO
Last updated on August 8, 2022