Engineering Concepts Within Software

14 May 2025

What is Software Engineering?

Engineering can be described as the process of designing and constructing machines. Apply software to that and now you’re thinking about the process of programming and developing software and code. From ICS 314, a class on Software Engineering, I learned and became familiar with various development and programming concepts key to this topic. These concepts were taught and explained through the execution of web development assignments. 3 concepts I thought stood out the most are Functional Programming, User Interface Frameworks, and Agile Project Management.

Functional Programming

Part of the beauty of programming is that despite it being all ones and zeros, any function or goal can be achieved in a variety of ways. Now this isn’t always necessarily a good thing as you can have code that is either wildly inefficient or total rat’s nest, sometimes even both. To prevent this, people apply the concept of Functional Programming. By building “pure” functions, you can guarantee the exact same output for a particular input every time. While also making sure that there are no global variables or data being changed by various functions. Using pure functions allows you to then use those functions as if they were variables or use them to construct bigger functions. Functional programming helps get rid of repetitive and possibly buggy code.

User Interface Frameworks

UI Frameworks to some can seem like just “styling” for the user but the concept encapsulates a lot more than just that. Beyond styling, it’s also about the functional layout and inner workings of using a software or program. Making sure a program does its job and achieves its purpose is only half of the work that goes into creating a robust and functional piece of software. You have to think about actually using it and how you are going to make using it efficient and intuitive. UI Frameworks streamline the process for you as the developer by providing key components to integrate into your software and key tools for fine tuning the entire thing. This provided structure allows for consistency within your program which becomes an even bigger deal when doing team oriented software development.

Agile Project Management

When working as a team to develop something, it can be easy for everyone to get lost and not be on the same page. The group needs a strategy to make sure the entire project has clear, defined steps and tasks to complete the whole thing. Agile Project Management is an iterative process that breaks down the entire project into smaller goals where smaller tasks are defined in order to complete each goal. Each task is assigned to a team member and each member has a general focus area for the entire process. The well defined nature of Agile Project Management is what allows each member to focus on specific tasks and incrementally build a working, functioning piece of software.

Conclusion

Software Engineering and its concepts are a way of thinking for any programmer or developer that allows them to code both smarter and faster. These concepts can also be seen as skills that you continue to hone for the rest of your life just like your “programming” skills. They can be applied to a multitude of different problems and subjects, making anyone a better problem solver no matter the topic.