Posts

Showing posts from April, 2025

Week 8 Learning Journal

Five pivotal concepts stand out are mastering full-stack architecture with React and Spring Boot, effectively managing data persistence using JPA/Hibernate relationships, implementing robust automated testing with Mockito and Selenium, understanding secure authentication via JWT, and utilizing Git for essential version control.  These were chosen because they represent the core pillars of modern web application development, covering everything from frontend user interaction and backend logic to data handling, security, and collaborative workflow. Understanding how these distinct areas integrate is crucial for building reliable and maintainable software.  Furthermore, proficiency in testing ensures application quality, while Git underpins the entire development lifecycle for team collaboration and code management. Together, these elements provide a comprehensive foundation for tackling real-world development challenges.

CST438 Week 7 Journal

An Agile process emphasizes flexibility, iterative progress, and constant feedback from stakeholders, enabling teams to adapt to changing requirements throughout the project. In contrast, a Plan and Document (or Waterfall) process follows a linear sequence of phases, such as requirements gathering, design, implementation, testing, and deployment, with little room for changes once planning is complete. Agile breaks work into smaller increments called sprints, allowing for regular reassessment and reprioritization of tasks. Waterfall projects typically require a full set of requirements upfront, and each phase must be finished before moving to the next. Agile encourages frequent collaboration between team members and customers, promoting ongoing improvement and early issue detection. Conversely, Waterfall focuses on comprehensive documentation and sign-offs at each stage, which can make adapting to new information or changes more difficult as the project progresses.

CST438 Week 6 Journal

This week i learned about Service-Oriented Architecture (SOA) and its significant impact on modern software development. I learned that SOA promotes the creation of independent services that can communicate over a network, enhancing interoperability and system flexibility. This architecture allows for better scalability, as services can be independently updated and reused across different applications. However, I also recognized the challenges associated with SOA, such as increased complexity and the need for effective data management and governance. Overall, understanding SOA has given me valuable insights into designing systems that can adapt to changing business needs while optimizing resource utilization.

CST 438 Week 5 Journal

This week, I delved into various topics essential for understanding software engineering. I explored marsic, which highlights the importance of adapting to the changing landscape of software development. I learned about UML diagrams, including use case, class, and sequence diagrams, which are crucial for visualizing and designing software architecture. Additionally, I examined the differences between Agile methodologies and the plan-driven (waterfall) approach, noting how Agile emphasizes flexibility and iterative progress. Overall, this week has deepened my understanding of how to structure and manage software projects effectively.

CST438 Week 4 Journal

One of the most interesting insights from "Software Engineering at Google" is the emphasis on the importance of code reviews in maintaining high-quality software. The book explains that code reviews are not just about finding bugs but also serve as collaborative learning opportunities for engineers, fostering knowledge sharing and improving team cohesion. Another compelling aspect is the use of continuous integration and deployment practices, which Google employs to streamline the development process and reduce the risks associated with software releases. Additionally, the concept of "site reliability engineering" (SRE) highlights the blending of software engineering and operations to ensure system reliability and performance at scale. Overall, this book provides a deep understanding of how Google's engineering culture and practices contribute to creating robust software in large, complex systems.