I will say that assignment 4 was certainly not without its ups and downs. It was very ‘diagram oriented’. I have found that building the diagrams throughout this course has given me an appreciation for pre-planning and in particular for building models that I didn’t have coming into the course. At first glance the amount of models involved in the system analysis and design process might seem like a lot but after building them and going through the reasoning and learning about what each one models it has shown to be a very effective way of laying out the system before getting right into the actual development. It definitely creates a vision and breaks down the complex task of building a system into manageable blocks.
Building the design class diagrams helped me to better understand the domain class diagram and even leave me pondering alterations I could have applied. I like to see the building of the program through the object oriented approach coming together without even getting into the code. While my previous experience with object oriented programming definitely helped me understand the processes of system analysis and design, I would also say that in studying system analysis and design has given me a better understanding of object-oriented programming.
I find sequence diagrams to be very helpful in understanding all of the interactions that go on behind the scenes when from a user’s point of view, it feels as though it’s simply a one on one interaction.
Unlike the previous assignments I actually found the essay question to give me the most trouble. It doesn’t sound particularly complex or difficult but there is an art in finding a balance when communicating all of the necessary information but limiting it too a small amount of words.
This assignment has given me a new appreciation for the benefits of modeling before developing and I look forward to continuing this journey into the final assignment of the course.
The Landing is a social site for Athabasca University staff, students and invited guests. It is a space where they can share, communicate and connect with anyone or everyone.
Unless you are logged in, you will only be able to see the fraction of posts on the site that have been made public. Right now you are not logged in.
If you have an Athabasca University login ID, use your standard username and password to access this site.
We welcome comments on public posts from members of the public. Please note, however, that all comments made on public posts must be moderated by their owners before they become visible on the site. The owner of the post (and no one else) has to do that.
If you want the full range of features and you have a login ID, log in using the links at the top of the page or at https://landing.athabascau.ca/login (logins are secure and encrypted)
Posts made here are the responsibility of their owners and may not reflect the views of Athabasca University.
Comments
Hi Shawn,
This assignment had be second guessing a lot of work that I had previously done, especially in assignment 2. It obviously builds upon the domain class diagram quite significantly. I knew this would happen eventually, but the problem I keep facing is whether I completed the domain class diagram correctly in the first place. It sounds like you are feeling the same pain as I did in this area.
I have some experience in introductory and intermediate object oriented programming (Java) so far, so this knowledge was easily applied to creating the design class diagram. And as was in your situation, I think that the creating the design class diagram helped me better understand a few concepts in object oriented programming. It makes me wonder why this specific diagram wasn’t introduced at all during my object oriented courses. Once could argue that for each assignment in my programming class, we could have created a design class diagram as well. To be honest, I think it would have helped in creating the actual program. Definitely something to bring to table when filling out a course evaluation in the future.
I agree that they sequence diagrams are very helpful in determining interactions for the system and user. I actually enjoyed making these. The only problem I faced was making the multi-layer design. I wasn’t sure if we have to develop the diagrams using 2 layers or 3 layers or how they wanted it. I find at the end of the day a lot of documentation and programming comes down to just making a decision and running with it. I found using this mantra helped me move along during these assignments and feel more confident in my answers.
I also feel that these diagrams are getting more important as we move along. Not just for creating the system in itself but also for determining how the system will handle queries. R. Muthukrishnan and H. Shanmugasundaram provide some good examples of how a system will handle a query using domain class diagrams, which really puts the process into perspective for someone who doesn’t fully understand the entire system [1].
[1] R. Muthukrishnan, H. Shanmugasundaram, “Retrieving UML class diagram using ontology,” IUP Journal of Computer Sciences, vol. 9, no. 4, pp. 7-20, Oct, 2015.
Shawn and Benjamin, I couldn't agree more that the design class diagram was very useful in helping me to understand how object oriented programming comes together. I've done some object oriented programming in other classes and while I could do the assignments, I didn't quite understand the reasoning of the value in doing it that way, nor could I mentally picture exactly how it all came together. This diagram was instrumental in clarifying how it all works. I wish they had asked us to make these diagrams for each of the assignments. It would be extra work but it really would help visualize how it's supposed to work!
This assignment was really tough, but I have to say it was one of the best for helping me start to see everything come together. I did however, have to jump back and forth between the sequence diagrams to the design class and continually make updates. I'd start working on one, then realize I missed something in another and then vice versa until I was complete. Just the act of doing that with diagrams helped me realize how much time savings and value there can be going through the systems analysis and design process. If I had just jumped into the coding of this system, I would have made so many mistakes and had to repeat things. So it's a great lesson to have done these assignments to better understand their value. I'd love to get some experience working on a real programming team at a company that does systems analysis and design work before getting right down to the coding.
One more thing I'll add though, is the challenge of using the tools when making a sequence diagram. Despite knowing their value, I became very frustrated with the making of the sequence diagram. It was so hard to go back and add new things into the middle of the diagram if I had made a mistake and missed it. So it felt very inflexible like "get it right, or waste tons of time correcting". This might just be a lack of professional skills with the program, but hard to know. Either way, it was a good experience. Best of luck to both of you!