• Starts: 1:00 pm on Wednesday, July 29, 2026
  • Ends: 2:00 pm on Wednesday, July 29, 2026

ECE Seminar: João Fernandes

Zoom Link: https://bostonu.zoom.us/j/97857949765?pwd=eNvO4WJHhQyaZhNr7oNWrUKO8mxpAz.1&from=addon

Meeting ID: 978 5794 9765

Passcode: 087712

Title: Designing with Responsibility: GRASP Patterns in Software Engineering

Abstract: Every software system begins with a shared understanding of its problem domain: the key concepts, and how they relate. That understanding is rarely controversial. Yet the moment we move from understanding a problem to designing a solution, a deceptively simple question fractures a room of experienced engineers: which object should be responsible for doing what? Ask four engineers who should calculate a fare in a ride-sharing system, and you may get four defensible answers. The one they choose, often in an afternoon and by instinct, can determine whether a routine change eighteen months later takes two lines or three weeks.

This lecture is about making that decision deliberately rather than by accident. It introduces the GRASP patterns, Craig Larman's set of principles for assigning responsibilities among the objects of a software system. Rather than treating them as rules to memorise, the lecture develops them as a connected argument, grounded in two fundamental forces that pull against each other: the drive to keep objects loosely coupled, and the drive to keep each object cohesive. Using a single running example that evolves over the course of the talk, we will see how these principles guide real design decisions, how they occasionally disagree, and why that disagreement is the essence of design work rather than a flaw in the method.

The session is designed to be accessible to a broad engineering audience while offering substance to those who work in software. It closes by connecting these decades-old principles to a very current challenge: the design of AI-enabled and LLM-integrated systems, where questions of responsibility, reliability, and change are as pressing as they have ever been. No prior familiarity with the patterns is assumed.

Bio: João Paulo Fernandes has taught software engineering and its foundations for more than fifteen years, across highly selective, internationally diverse institutions. He has taught more than fifty courses spanning software engineering, data structures and algorithms, programming, and the mathematical foundations of computing, combining rigour and structure with genuine care for student progress.

Most recently, as a Visiting Associate Professor of Computer Science at New York University Abu Dhabi, he taught software engineering, data structures, and discrete mathematics to one of the most internationally diverse student bodies in the world.

His teaching has been recognised with the Pedagogical Recognition Diploma from the Faculty of Engineering of the University of Porto, where he held a tenured Associate Professorship. He has also taught extensively online through a joint Drexel University and Lanzhou University programme in China.

He received his PhD in Computer Science from the University of Minho, Portugal, in 2009. His research concerns the rigorous analysis and transformation of software to improve its non-functional properties, such as performance, energy efficiency, scalability, and maintainability, without compromising correctness. This work connects directly to the challenge of building production-grade AI-enabled systems.

He has published over 100 papers in peer-reviewed venues, including IEEE Transactions on Software Engineering, ACM Transactions on Software Engineering and Methodology, and ACM Transactions on Computing Education, and he maintains an active network of collaborators and academic partners across Europe, the Americas, and Asia.

Location:
Zoom
Hosting Professor
Ed Solovey