 Yeah So my name is Katja Hentonen and I work in a small open source project called style-based for Eclipse I also work for VTT Technical Research Center Finland. I'm a project manager in a research project on open source software So style-based for Eclipse is a knowledge management solution which concentrates on software architectural models actually Software architectural knowledge. It's more than only models The aim of the tool is to improve the sharing and reuse of architectural knowledge in development teams And it has been developed as an Eclipse extension about the history of the project it was first published in October 2006 there has been very Few small releases mostly bug fixes and small improvements. It's still quite small the code It's a little bit more than 8,000 thousand lines of source code The community is supported by my employer to a small extent for example They paid my flights here, but they do not finance our development. So they don't really help in the most important way so In this picture You can see the traditional way in how software architecture is always often documented in companies so people use all kind of whiteboard and Whiteboards and flashboards and the tropics just there and when the port is wiped then the Information is only in the heads of people and if these people get hit by a bus, then there's a big problem Open in open source community is actually a little bit better because there is a If Architectural decisions are discussed in the forums, then this design rationals are available later What we suggest is Over there, so we are trying to make a tool for sharing and Reusing architectural knowledge Architecture knowledge is essentially design decisions and design. So it's how and why How is can be represented in models like UML diagrams or something else and why is the ration how Why is the rational? Why was this done? And this is the bigger part of course and Yeah, so who needs architectural leads there are architects developers Intercreators also if you don't do like Mostly you need to know something about the internals of the component you are integrating Also testers normally need architectural knowledge to set an extent complete black box Testing is really efficient And of course newbies who want to get involved in the new open source project need to know Destruction of the program So there are some ideas on how to use architectural knowledge why it's useful Some of them are a bias Firstly you can improve skills of your own development team It's easier for new people to get into the project if Architecture is documented at some level at least and it also reduces the risk of depending on on one or two key people But also I think that Architectural knowledge could be served between different open source communities so that One come that communities could pick up like best practices from others and learn from good and bad Architectural decisions which were made in other projects One goal of Documenting architecture is to manifest this design decisions in an early phase So if you document them you manifest them then people get a chance to criticize you before you Implement everything and you might get good feedback And of course in the craters also benefit from architecture knowledge So a little bit about features of the tool style base for eclipse It's essentially a tool for maintaining knowledge base There is a remote database and a local database Which can store diverse architectural models This models can be architecture patterns design patterns reference architectures macromic across architecture for example If I'm not going into all these terms now if you're not familiar with them you can Google But the idea is to store the idea of the tool is not to store things like class diagrams, but rather to store solutions which are Reusable or which others can benefit from in in some way like rather conceptual level models and Then class diagrams So there's a person and a local repository. There are comments to Move data between two one can do searches and different kind of browsing and There is a bias linear search repository. There are logs to control concurrent updates and stuff Essentially three big blocks of information are stored into the knowledge base for its Knowledge base entry. There is a guide which is a text tool Representation this would mostly Required information on why the architecture was implemented in a certain way. There's a picture which shows high Like how the architecture has been implemented and there is also an XML format a Representation of the model so that it can be used in other tools. Actually, it is not limited to UML It can also be some other modeling in some other modeling language And it should be quite easy in Eclipse to integrate style base for Eclipse with HTML editor plugins Modeling tools like We mostly use it with top case, but it can be used with any other tool as well So a little bit about the problems the community has One thing is that the tool provides only there's only the tool and there's not really content in the knowledge base and It's the content that makes the tool useful So actually some people get very disappointed because when they download the software they Expect a knowledge base which is filled with a lot of information and we don't yet have really we only have some exemplary Information there and not really information and how to get this information is a little bit problematic because most architectural information is quite strictly copyrighted and Yeah, how to get information from the community Another problem is that Eclipse seems to be a too limited environment so ideally the knowledge base should be accessible from both web tools and Eclipse and I think Majority of small open source projects have some resource problems. So so to us so Permanent development team is myself and it's actually myself on my free time when I'm free from everything else We have several contributions from students But it's difficult to commit them to to stay with the community for a long time because they should just do some software projects and get study units and and then they go So Future plans that the dream would pull develop a tooling environment which makes architecture knowledge sharing painless so if it's a if The big the problem with documentation or normally of course, or it's also something extra so something you It's kind of supplementary to coding and secondary to coding So the knowledge creation process would integrate seamlessly into the development process so that it would be released painless to documents of to architecture and Yeah, I think ideal would be have a free website for sharing architecture knowledge I don't know if it's a good good idea yet. It's with a custom mark But if you if you like to know more Go to our website I was checking if you because there's still time. I just saw you at least one screen So here is the idea there's There's text. There's a picture and there's a knowledge base. There are a lot of attributes There's some attributes different type of attributes which can be configured and attached to the models and then Knowledge base can be searched by these attributes and so on But Anyway visit our websites. There are two minutes left if somebody has a question Yeah, yeah, exactly. It's supposed to be a knowledge base. So it's not just like Already now there is a tool like it for serving architecture knowledge There's a global database at my employer server which can be connected and one can put models there and take models out of there So essentially, yes, it's wants to be knowledge base at large. Yeah Would it be a separate project or? Yeah, that's the one idea. It would it would of course be a separate project. Yeah. Yeah, I There might be a chance is that my employees interested in financing that but I don't know about or nobody yet So that's what that's why the tree must be the question mark And No, not not with this tool to Lee Yeah, well at this point. This is specific to like architectural models and and reusable architectural models for example in the scope is rather Conceptual models. So the kind of models that are reusable for example If I have a model view controller, it's a common architectural pattern but if a developer gets the It can be developed Let's say it stops in the reference Architectures or I would implement a rough picture of model view controller This more or less very stops because glass diagrams are really usable. We may be in the form of design patterns So the idea is pick up models that are reusable So which documents some kind of pex best practice or known good solution? Yeah, it should be part of the picker Integrate into the yeah Let's let's still a little bit to be defined. You're more than welcome to my email address is over there So anyone is more than welcome to to send me suggestions. This project is in a very initial phase So we are very open to more ideas