Category Archives: CS-343

Should Software Architecture be Simpler?

Software Architecture is Overrated, Clear and Simple Design is Underrated: https://blog.pragmaticengineer.com/software-architecture-is-overrated/

Introduction:

Software architecture is a topic that has always fascinated developers and tech enthusiasts. It’s often seen as the backbone of any software project, the guiding force that ensures a system functions smoothly. However, the article titled “Software Architecture Is Overrated” by Gergely Orosz challenges this conventional wisdom. In this blog post, we’ll explore the relationship between software architecture and the article, offer a short summary, and delve into the reasons for selecting this thought-provoking resource.

The Relationship:

Gergely Orosz’s article, “Software Architecture Is Overrated,” is a bold statement that immediately makes me curious. The relationship between the article and our discussion is clear – it questions the importance and relevance of software architecture in modern software development. This article critiques the overemphasis on architectural design in software development, showing real-world experiences where being “by the book” with architectural principles may not always be beneficial. It also goes into the risks associated with excessive up-front planning and the potential benefits of focusing on simplicity, iteration, and feedback.

Summary of the Article:

In a nutshell, the article argues that while software architecture is undoubtedly crucial, it’s not the holy grail of software development. Instead, it suggests that agility, adaptability, and a pragmatic approach to problem-solving should be prioritized over rigid architectural dogma. Orosz shares anecdotes and insights from his own experiences, illustrating how a more flexible approach to software development can lead to better outcomes.

Reason for Selection:

This particular resource was selected for several reasons. First and foremost, it challenges a widely accepted fact within the software development community, sparking a debate that can lead to a more balanced perspective. Second, Gergely Orosz draws from his own practical experiences, making the article relatable and providing valuable real-world context. Third, in a world where software architecture is often glorified and overemphasized, it’s refreshing to consider alternative viewpoints that advocate for adaptability and down-to-earth software planning.

Personal Reflection:

This article has opened my mind towards making software architecture more strict and not as free flowing as the current culture makes it out to be. I do like simplicity when it comes to anything, but software architecture especially is key because of team work. When a team is meant to come up with a solution to a problem, you should be making things as simple as possible so all team members can process the information and act accordingly.

Conclusion:

In conclusion, software architecture is undoubtedly essential, but as the article “Software Architecture Is Overrated” argues, it may not deserve the exalted status it often receives. The relationship between the article and our discussion is clear, as it challenges traditional beliefs and encourages us to rethink the role of architecture in software development. By selecting this resource, we aim to stimulate critical thinking within the software development community and inspire a more balanced approach to creating software systems. It’s a reminder that, in the ever-evolving landscape of technology, adaptability and pragmatism should always be valued alongside architectural excellence.

From the blog CS@Worcester – Site Title by rkaranja1002 and used with permission of the author. All other rights reserved by the author.

Week of September 11, 2023

This week, I reviewed chapter 8 from Learning Java by Building Android Games 3rd Edition by John Horton. This chapter reviews some of the principles of object-oriented programming, including encapsulation, inheritance, and polymorphism. Interestingly, the principle of abstraction that was named alongside the previous three in the course syllabus is not reviewed in this chapter of the book. I chose to write about this resource because in the last Spring semester, I studied this book in order to create a functional mobile game in Android Studio for my final project in my Operating Systems course. I needed to apply my knowledge of arrays, for and while loops, and Java class design to complete this project. In addition, I needed to learn how to utilize the graphics libraries within Android Studio to visually represent the entities within the game and how they interacted with each other. While this book did help me tremendously in the later stages of the project, I wish I had found it earlier before I began coding. I had begun the project in BlueJ, and was coding a Java app meant to be run on a Windows or Mac system, not an Android mobile device as was the project specification. I completed a functioning version of the game with all the features I wanted to include that ran on my Windows PC, but I found it much more difficult than I anticipated to port the code I had written into Android Studio to produce a version of the game that would function on mobile devices. However, because I had applied the principles of encapsulation, inheritance, and polymorphism to my Java classes and functions, I was able to get the program to a partially functioning state on Android by the final due date. My first challenge in porting the project from PC to Android was addressing how to display the program on the device’s screen. Through this book, I found that constructing my Game class so it would extend Android’s Activity class would be the first step in displaying the desired output. I also applied the principle of inheritance to the Java classes I created to represent the in-game objects represented on screen. As many objects as I could manage inherited from a parent GameObject interface, which would be extended into more specific StaticGameObject and MovableGameObject subclasses, and then from those classes I extended them into specific types of objects like PlayerCharacter, Obstacle, and BonusItem. For my next software endeavor, I want to adhere to these principles more purposefully when coding, as I think that a lot of the challenges and headaches I experienced while creating this video game were self-inflicted.

If you want to try the game I made (I was so pressed for time by the end I never named it), here is a link to my Github repository. The project should be able to opened up and run from inside BlueJ or your Java IDE of choice.

Source: Learning Java by Building Android Games: Learn Java and Android from scratch by building five exciting games, 3rd Edition by John Horton

Github repository: https://github.com/MCummingsWSU/CS373-mobile-app-final-project

Screenshot of my game available at the Github link

From the blog CS@Worcester – Michael's Programming Blog by mikesprogrammingblog and used with permission of the author. All other rights reserved by the author.

New Blog, who dis?

I’m huge into video games and anything that flexes my creative muscle, which is why I’m going into a focus of Software Design and Development for my Junior year. I’ll be taking CS 343 and 348 with Professor Wurst, and as a part of that course, I’ll be starting this blog!

I hope to utilize this blog throughout my career, but for now I’ll be using it to go over what I’ve been doing and learning in my courses!

I hope you enjoy taking this journey alongside me!

From the blog CS@Worcester – You're Telling Me A Shrimp Wrote This Code?! by tempurashrimple and used with permission of the author. All other rights reserved by the author.

Welcome to TWTA!

Welcome to Tech. Worth Talking About (TWTA), a blog discussing exciting and impactful tools and innovations in the technology world, as well as some ideas on how to implement them in real situations to solve problems. Stay tuned for these posts and more!

From the blog CS@Worcester – Tech. Worth Talking About by jelbirt and used with permission of the author. All other rights reserved by the author.

Principles of Software Design

Hello internet!

I’m Griffin Butler, and this will be my blog covering my learning experience during my CS-343 class. Here I will be discussing content related to software design, and I hope to further my understanding of how to create robust, efficient code in my projects and work.

From the blog Butler Software Construction, Design, and Architecture by Griffin Butler and used with permission of the author. All other rights reserved by the author.

LET’S GET STARTED

Welcome to my first blog post! My name is Andi Cuni and I am a senior completing my undergraduate CS degree. Starting my journey blogging with a background in computer science and software development, I am excited for this transition, and I plan to share everything that comes along my experiences to see if others relate as well!

September 12, 2023

From the blog CS@Worcester – A Day in the Life as a CS Blogger by andicuni and used with permission of the author. All other rights reserved by the author.

Introduction

I am Abraham Passmore, a Senior at Worcester State University and this is my introductory post for CS343

From the blog CS@Worcester – Site Title by Abraham Passmore and used with permission of the author. All other rights reserved by the author.

Hello World!

Hi, my name is Abdullah Farouk, I’m a senior at Worcester State University and I am studying Computer Science. My concentration is in Big Data Analytics. This is my first post of many. let’s see how this semester goes.

From the blog CS@Worcester – Farouk's blog by afarouk1 and used with permission of the author. All other rights reserved by the author.

Task 3 Blog Post

Hello world! I am Patrick McManus and this is the first of (likely) many blog posts that I will be making on this site. I hope you stick around and find my posts to be informative!

From the blog CS@Worcester – P. McManus Worcester State CS Blog by patrickmcmanus1 and used with permission of the author. All other rights reserved by the author.

My Blog

From the blog CS@Worcester – Kaylene Noel's Blog by Kaylene Noel and used with permission of the author. All other rights reserved by the author.