A computer system for automatically generating computer code for a software system from a representation of the software system, wherein the representation is defined by activities, dependencies and ports through which activities are connected to dependencies, comprising:
- means for specializing each activity and dependency in the representation to identify one or more associated computer programs for implementing the activity or managing the dependency;
- means for combining the associated computer programs in the specialized representation to provide the computer code for the software system;
- means for editing the representations of software systems, including:
- means for generating a representation of an activity including an indication of ports defining needs for interaction with other activities through dependencies;
- means for generating a representation of a dependency including an indication of ports defining points of connection with activities;
- and
- means for controlling connections of activities to dependencies and for performing a compatibility check of the ports of the connected activities and dependencies;
- and
- means for defining a coordination process associated with a dependency and having ports connecting to ports of activities, wherein the coordination process includes at least one activity and associated dependencies, wherein the ports of the coordination process are ports of the dependencies.