BramVandenbon
Dec 8th, 2006, 09:40 AM
Hi,
I am studying to become an "industrial engineer in the field of electronics, multimedia and IT". "Project management" is an important part of this course.
Currently I am working on my master-test.
I am creating a desktop application for a security firm that allows the user to annotate videoframes. Just to give you an idea of what it does: These annotation envolve drawing circles around people and changing settings such as weather conditions.
No analyse was made in advance
Because I constantly have a lot of technical issues (setting up DirectShow under C#.NET, XML-based standards I need to follow) and because the project owner sometimes demands new features ...
==> I did not make an analyse before I started programming.
Then again, I am really good with object oriented thinking and I am good with design patterns, and I made simular, even more complicated applications before (such as drawing applications, layout editors, administrative software).
I do make UML class diagrams and I make small sketches of how components should interact before I start programming. I do not have a fixed notation style for these sketches though. And what I program today can be changed tomorrow or next month. So, it is really impossible to make an analysis in advance.
Analysing methods - Which one am I using?
For my master-test I will need to motivate my choice of analysing method.
When I was still in my bachelor studies one of my teacher told me that not always the analysing should be done in advance. He told me there are also other models like: the spiral model, Prototyping, Rapid Prototyping, The waterfall model, ... So no mistakes are made yet.
In fact I think that my style of working is probably pretty much according to the Spiral Model, prototyping or rapid prototyping? But to be honest I do not know the difference between prototyping and the spiral model. Can anybody tell me which model I am following at the moment?
Usually I make a list of required new features (Problem definition). Next, I think a bit about how I will implement them, I draw a bit, I sketch a bit (Design). And bam :eek2: ! I make changes to the existing application (Implementation) and test it (Testing). I repeat this process over and over. Pretty much like the spiral model I think, but I think prototyping and Rapid prototyping also work in a circular motion.
About modelling
I will need some models and like I said before I made some UML class diagrams. (Nicely integrated in VS 2005 these days)
In the past I have worked with other UML diagrams as well such as the Use Case Diagrams, State Diagrams, Collaboration Diagrams, ... etc. The problem with these is that they take a huge amount of time and require a lot of thinking about "who are the actors, what are the components, what actions should who be allowed to do". My next question is: Is there a good free software package that is design only for UML diagrams?
Like I said before I use a lot of design patterns: events (Observer pattern), decorator pattern, command pattern, wrappers, singleton pattern, strategy pattern, factory pattern, ... Can you imagine making (state, collaboration, ...) diagrams of (for example) a factory pattern based on an enumeration ? :-s. This will be more complex than the actually programming code.
For these reasons lately I have become aware of the fact that UML is pretty cool for websites and client/server applications where there are multiple Actors and where data should be exchanged between them and stored in a database. But for a desktop application UML seems to be the wrong choice. Is there anything more appropriate than UML? Maybe there is something that supports the use of design patterns directly?
Repeating my 3 questions
1) Can anybody tell me which analysing method I am following at the moment?
2)Is there a good free software package that is design only for UML diagrams?
3)Is there a more appropriate modelling language than UML?
Thank you for reading my long question. I hope my questions are clear, and I hope somebody can give me quality-advice. (not like: everything sucks, I use nothing, and so should you!)
:) thanks :) :afrog:
I am studying to become an "industrial engineer in the field of electronics, multimedia and IT". "Project management" is an important part of this course.
Currently I am working on my master-test.
I am creating a desktop application for a security firm that allows the user to annotate videoframes. Just to give you an idea of what it does: These annotation envolve drawing circles around people and changing settings such as weather conditions.
No analyse was made in advance
Because I constantly have a lot of technical issues (setting up DirectShow under C#.NET, XML-based standards I need to follow) and because the project owner sometimes demands new features ...
==> I did not make an analyse before I started programming.
Then again, I am really good with object oriented thinking and I am good with design patterns, and I made simular, even more complicated applications before (such as drawing applications, layout editors, administrative software).
I do make UML class diagrams and I make small sketches of how components should interact before I start programming. I do not have a fixed notation style for these sketches though. And what I program today can be changed tomorrow or next month. So, it is really impossible to make an analysis in advance.
Analysing methods - Which one am I using?
For my master-test I will need to motivate my choice of analysing method.
When I was still in my bachelor studies one of my teacher told me that not always the analysing should be done in advance. He told me there are also other models like: the spiral model, Prototyping, Rapid Prototyping, The waterfall model, ... So no mistakes are made yet.
In fact I think that my style of working is probably pretty much according to the Spiral Model, prototyping or rapid prototyping? But to be honest I do not know the difference between prototyping and the spiral model. Can anybody tell me which model I am following at the moment?
Usually I make a list of required new features (Problem definition). Next, I think a bit about how I will implement them, I draw a bit, I sketch a bit (Design). And bam :eek2: ! I make changes to the existing application (Implementation) and test it (Testing). I repeat this process over and over. Pretty much like the spiral model I think, but I think prototyping and Rapid prototyping also work in a circular motion.
About modelling
I will need some models and like I said before I made some UML class diagrams. (Nicely integrated in VS 2005 these days)
In the past I have worked with other UML diagrams as well such as the Use Case Diagrams, State Diagrams, Collaboration Diagrams, ... etc. The problem with these is that they take a huge amount of time and require a lot of thinking about "who are the actors, what are the components, what actions should who be allowed to do". My next question is: Is there a good free software package that is design only for UML diagrams?
Like I said before I use a lot of design patterns: events (Observer pattern), decorator pattern, command pattern, wrappers, singleton pattern, strategy pattern, factory pattern, ... Can you imagine making (state, collaboration, ...) diagrams of (for example) a factory pattern based on an enumeration ? :-s. This will be more complex than the actually programming code.
For these reasons lately I have become aware of the fact that UML is pretty cool for websites and client/server applications where there are multiple Actors and where data should be exchanged between them and stored in a database. But for a desktop application UML seems to be the wrong choice. Is there anything more appropriate than UML? Maybe there is something that supports the use of design patterns directly?
Repeating my 3 questions
1) Can anybody tell me which analysing method I am following at the moment?
2)Is there a good free software package that is design only for UML diagrams?
3)Is there a more appropriate modelling language than UML?
Thank you for reading my long question. I hope my questions are clear, and I hope somebody can give me quality-advice. (not like: everything sucks, I use nothing, and so should you!)
:) thanks :) :afrog: