A system for modifying source code (203, 302), said system comprising a repository for storing code, and a first code editor operable to: access source code stored in the repository, said source code for implementing a software application or part of a software application and annotated by one or more decorators, wherein the source code is written in TypeScript code; identify from the source code one or more TypeScript decorator declarations (306a-d, 406a-d); identify decorator definition code (307a-d, 407a-d) associated with each TypeScript decorator declaration; identify metadata code defined in the decorator definition code and associated with the implementation of the application; present the metadata code on a user interface; receive metadata modification data input by a user of the first code editor; and modify the metadata code in accordance with the metadata modification data; wherein the source code defines a plurality of application elements of the software application and each application element is associated with one or more attributes, each attribute defined by metadata code in the decorator definition code corresponding to the TypeScript decorator declaration associated with the application element, wherein the one or more TypeScript decorator declarations modify, at run time, code features of the source code with which they are associated, said code features defining application elements of the software application. a repository for storing code, and a first code editor operable to: access source code stored in the repository, said source code for implementing a software application or part of a software application and annotated by one or more decorators, wherein the source code is written in TypeScript code; identify from the source code one or more TypeScript decorator declarations (306a-d, 406a-d); identify decorator definition code (307a-d, 407a-d) associated with each TypeScript decorator declaration; identify metadata code defined in the decorator definition code and associated with the implementation of the application; present the metadata code on a user interface; receive metadata modification data input by a user of the first code editor; and modify the metadata code in accordance with the metadata modification data; wherein the source code defines a plurality of application elements of the software application and each application element is associated with one or more attributes, each attribute defined by metadata code in the decorator definition code corresponding to the TypeScript decorator declaration associated with the application element, wherein the one or more TypeScript decorator declarations modify, at run time, code features of the source code with which they are associated, said code features defining application elements of the software application. access source code stored in the repository, said source code for implementing a software application or part of a software application and annotated by one or more decorators, wherein the source code is written in TypeScript code; identify from the source code one or more TypeScript decorator declarations (306a-d, 406a-d); identify decorator definition code (307a-d, 407a-d) associated with each TypeScript decorator declaration; identify metadata code defined in the decorator definition code and associated with the implementation of the application; present the metadata code on a user interface; receive metadata modification data input by a user of the first code editor; and modify the metadata code in accordance with the metadata modification data; wherein the source code defines a plurality of application elements of the software application and each application element is associated with one or more attributes, each attribute defined by metadata code in the decorator definition code corresponding to the TypeScript decorator declaration associated with the application element, wherein the one or more TypeScript decorator declarations modify, at run time, code features of the source code with which they are associated, said code features defining application elements of the software application.