PyIdea Project
Home Up

 

PyIDEA - UML and Patterns IDE for Python

This is a project hosted on Sourceforge.

Summary: Project to build a combination refactoring IDE and UML environment for python and jython. Watch UML execute. Design Pattern based UML construction, generates clean pythonic code. Visual Age style GUI builder for swing and wxWindows. All code patterns user configurable.

PyIDEA - UML and Patterns IDE for Python

A combination IDE and UML environment for python and jython. The emphasis will be on creating code using UML diagramming, using design patterns.

Python Centric

The specific advantages of python (clarity, built in dictionaries and lists, namespaces everywhere, reflection, methods are objects etc.) will be taken advantage of to the fullest. For example, drawing an one-to-many aggregation line between two classes will automatically create a field which is a python list.

A regular IDE

The IDE will feature aggressive class completion and hyperlinking to all python [and java] classes, ability to fold/expand function and class definitions plus a full refactoring editor.

A GUI designer

The GUI constructor will generate swing for jython and alternatively, wxWindows for regular python. All visual components will be joined to python classes visually using a drag and drop connect the lines metaphor similar to Visual Age for java.

Any source code created via the UML designer, the GUI constructor or the code editor will always be consistent with each other. Some code will not be able to be hand edited.

The UML designer

The UML designer will feature a full range of Design Pattern Wizards and user Templates/Macros.  Additional tools, patterns and refactorings can be easily added.

UML diagrams can be animated when executed. (wow)

Drawing sequence diagrams will generate code and can be watched during execution. Creating a UML state diagram will generate the appropriate python code etc. Various and custom implementation of design patterns and UML diagrams can be substituted when code is generated. An advanced deployment manager allows the creation of executables, jars or server components. It will be possible in the Windows version to generate a .EXE the way Delphi does.

Ambitious?

The pyIDEA project is ambitious, and thus will attempt to scavenge existing open source technologies and combine them into an integrated tool with a plug-in architecture.

Sources of ideas/inspiration

bullet- swing gui constructor - visual age, boa constructor
bullet- software update technology - sun forte
bullet- plug in architecture and refactorings - eclipse
bullet- UML to source synch + design patterns - togetherJ, modelmaker, Thorn, UML pad
bullet- source code browsing - pythonwin, jbuilder
bullet- Executable UML - compuware thread debugger/visualiser, etc. optimalj
bullet- Catalysis book.

See also Andy Bulka's article on OO visualisation.for more links and discussion on sources of inspiration.

Send email suggestions to Andy.