Author Archives: Sovibol Keo

Intentions and Goals Part 2: Defining Needs

Setting goals allows me to take things one at a time and move over those self-imposed barriers effortlessly, but it is the learning and the love of the process that don’t even allow me to put those barriers there in the first place.
Now on to one of the actual goals, I have been wanting to use what I am learning as a computer science major to implement into my current workplace. I think that it has been a great opportunity to work there and they have provided a good environment for self-development similar to that of being in school. As a token of appreciation, it would mean a lot to me to be able to leave something useful behind. That something useful would be in the form of Software. In the past year or so I have had a level of engagement in my courses that I haven’t had in a while and that is most likely due to recognizing the practical application of what I’m being taught. This has led me to be vigilant at my workplace and observe problems that can be solved with software. After figuring out what the problems are and defining those issues
For a while, I have been stuck on what to do now after defining the problems from the software development class, and based on the topic of my last two blog posts it is clear to me that figuring out suitable architecture is important to a well-developed software system. To do this, I need to understand the important requirements of the users involved. Currently, I am under the impression that microservices architecture would be most suitable as many of its defining characteristics would fulfill the requirements of the business. Within this process of developing software, I am learning that there is a lot of picking and choosing systems that are specific to the needs of the business. Although it can still be overwhelming, I am relieved that there are already many preexisting systems and that picking and choosing make it a little easier instead of having to completely create something from scratch. On the aspect of picking already developed systems, the topic of API comes into mind I found this useful article outlining different APIs and their use cases and how some are still in use today and fit specific needs. The article points to the idea that even though some APIs might seemingly be outdated that they still have a use case that only requires such an API and nothing more.

I understand that I still have a lot to look out and plenty to learn but recognizing that there is a direct application to what I am learning provides some great motivation and hope that will allow me to continue to get over whatever barriers may be in the way whether self-imposed or not.

https://www.altexsoft.com/blog/soap-vs-rest-vs-graphql-vs-rpc/

From the blog CS@Worcester – Sovibol's Glass Case by Sovibol Keo and used with permission of the author. All other rights reserved by the author.

Processing Architecture

When absorbing information, I find that it can often be overwhelming, sometimes leading to a point of disconnect. I see this occurring when you start asking questions like “Why am I learning this?” and “In what world would I ever need to use this?”. In the case of software architecture, I had a similar moment where I wondered how one would approach designing architecture.

 I found an article that suggest a solution to all my prior questions and in my previous blog post regarding the designing of software architecture, in which I questioned how one would create a design that suites a specific purpose. This article from 2006 suggest a general model for software architecture design that was derived from 5 other preexisting design approaches that were used within the industry. The article identifies that because software architecture design methods shares a basic problem that all these methods have much in common and can be derived, the basic problem being; “maintaining intellectual control over the design of software systems that: require involvement of and negotiation among multiple stakeholders; are often developed by large, distributed teams over extended periods of time; must address multiple possibly conflicting goals and concerns; and must be maintained for a long period of time.” Through this article I was introduced to 5 new design methods: Attribute-Driven Design, Siemens’ 4 views, RUP’s 4+1 views, Business architecture process and organization, and Architectural separation of concerns. This article also provide insight in the scale at which software architecture design is applicable. Whether large or small scale what remains is that there is a basic problem to be solved, and that it can be solved with an architecture design.

Below, I have included a link to the article where you can find the concluded derivations of the models. What stood out to me was the concept of workflow and backlogs. I was vaguely familiar with the idea of a back log from a previous CS course, Software Project Management. So, it is good to see that it can also be applied to architecture as well. On the idea of a workflow, I find that they offer notable insight into what is to be expected of someone in the industry.

It is important to follow through with a thought or question and to do that one must put in the work and find what you’re looking for yourself. When you don’t take action, you remain in that state of disconnect. This blog gives me an outlet to explore and I feel as though I am starting to reap the benefits of such a medium. It has allowed me to develop my own enthusiasm along with maintaining a vigilance for practicality.

https://d1wqtxts1xzle7.cloudfront.net/39793224/F9-ADMethods-HofmeisterJSS07-with-cover-page-v2.pdf?Expires=1667621789&Signature=TArjhgKXwq-QDqTf4Mcq2KsDpT93x-wPaeNtzpKxYdFsCWBgxd9Hu70e6Qy7yOnGRBpe4AJqrnozjy4enC5~niMz5AhxWYLEw3VJdjShD3jEUEPHDFO8qHGIPQCdyt-qa3U4t3vfi6bYlLej21j0nKexdpp40btwQ0W~wnRCQ1cPV8sdSu5PfqaGnj-CiFUEqelon6ovMcpWNBPw~BCzLScbrxFm60tC1Qm2M91ISU1jdtMakWktI8DZz8261Jp~0UIosYFKudJORu5fJiPcccCnXqL1d4dXx~TDPtSGQrHJ-cDIgH-IfjxQO7ii0aZiBDMzfZrbimivFfrsfBsRaQ__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA

https://www.sciencedirect.com/science/article/abs/pii/S0164121206001634

From the blog CS@Worcester – Sovibol's Glass Case by Sovibol Keo and used with permission of the author. All other rights reserved by the author.

Emerging Technology: PolyGloT

I found an academic conference article describing a new eTutoring system, called PolyGloT. I find that technology serves many different needs to varying degrees of success. Specifically, in the aspect of education technology can either be additive or a burden or sometimes even a mix of both. The one size fits all approach to education has varying degrees of success as it does not always accommodate the needs of a specific student.  In so far that one way of education may not be the most suitable way for an individual to truly grasp a subject for the purpose of practical understanding under the goal of career development.

I found that for myself specifically, trying to conform to a system has only gotten in the way of my actual learning and after four years I’ve only just begun to realize what education means to me and how I truly learn. Fortunately, technological educational resources have filled in the gaps and often been additive to my education. Outside of education aspects of computer games and social networks harbored creativity and arguably social benefits like what the current education system may be successful at. So, what is PolyGloT? PolyGloT is a personalized and gamified eTutoring system in its early development phase, this platform aims to help accommodate neurodiversity in students within a system that is currently a one size fits all approach, PolyGlot does this by “provid[ing] an open, content-agnostic and extensible framework (see [below] for its architecture) for designing and consuming adaptive and gamified learning experiences.”

On the topic of my own education, I have found that practical, hands-on approaches have been the most optimal way for me to truly grasp a subject and understand its application. For this reason, seeing that this article actively applies principles being taught adds a confirmation to what I’m being taught and even piques my interest. Specifically, the architectural design helped me understand the practical use of this tool. Seeing it “out in the wild” helped me grasp its capabilities and purposes almost vicariously, allowing me to see its potential and use it for myself. Which leads me to the question of whether their design is based on an existing design pattern or can they just be created for whatever purpose fits my needs.

Although we have yet to cover the topic of frontend and backend in our CS-343 class, this topic stands out to me as I see that its is the deciding factor in whether a system achieves its purpose successfully. In the case of PolyGloT I think that this correlation is key in allowing teachers to effectively teach a neurodiverse class. What is clear from our activities in class is that designing a solid architecture is necessary in having an efficient and working system. Similarly, the structure of this course is one that is allowing me to grasp subjects and more importantly replicate a structural aspect of software development as a profession. I see this course as the architecture to my career in computer science and its practical replication allows for a solid foundation.

https://arxiv.org/abs/2210.15256

From the blog CS@Worcester – Sovibol's Glass Case by Sovibol Keo and used with permission of the author. All other rights reserved by the author.

Welcome To Sovi’s Glass Case

This marks the first post of hopefully many blogs, Hello World.

From the blog CS WSU – Sovibol's Glass Case by Sovibol Keo and used with permission of the author. All other rights reserved by the author.