In association with the
There are a number of features that should be supported by modern software modeling tools:
Diagram Creation: A tool needs to be able to support the easy and intuitive creation of diagrams. It should also be robust enough to be able to enforce at least a minimal level of diagram semantics and rules so that it can inform the user of inaccuracies or discourage the incorrect use of model elements. Models and diagrams should support multiple levels of abstraction while maintaining the link between common or supporting elements between diagrams.
Repository: A tool should support a repository that stores all of the information about a model in a single location. This common storage of model information and meta-data allows the user to make changes to a model element in one diagram and have the changes propagate to other diagrams where the model element appears. Ideally the repository will support multiple software development environments so that as code is migrated from a development environment to a test environment, etc., the repository can support a version of the model for each environment and allow for migration of the model in parallel with the software development process.
Linked Navigation: A tool should provide the ability to follow a common model element from one diagram to another within the model, as well as drill down through multiple levels of model abstraction by linking model elements at higher levels of abstraction to supporting elements at lower levels of abstraction.
Multi-User Support: A tool should support the ability for multiple users to work on a single model simultaneously through appropriate notification and object locking mechanisms.
Code from Model: Advanced tools will be able to create code, in a number of common languages, from a validated model.
Model from Code: Advanced tools will be able to accept code as an input, in a number of common languages, and output a model that can be used as a basis for further refinement.
Integration with Other Tools: Some tools will support integration with other software development tools such as tools that support coding, configuration and version control, testing tools, user interface tools, requirement specification/documentation tools, and project management tools.
- post new questions, - add answers & comments, - rate questions & answers.
Login - Register
Advertising Opportunities | Contact Us