PostHole
Compose Login
You are browsing us.zone2 in read-only mode. Log in to participate.
rss-bridge 2024-07-23T23:30:00+00:00

SE Radio 626: Ipek Ozkaya on Gen AI for Software Architecture

Ipek Ozkaya, Principal Researcher and Technical Director of the Engineering Intelligent Software Systems group at the Software Engineering Institute, Carnegie Mellon, discusses generative AI for Software Architecture with SE Radio host Priyanka Raghavan. The episode delves into fundamental definitions of software architecture and explores use cases in which gen AI can enhance architecture activities. The conversation spans from straightforward to challenging scenarios and highlights examples of relevant tooling. The episode concludes with insights on verifying the correctness of output for software architecture prompts and future trends in this domain. Brought to you by IEEE Computer Society and IEEE Software magazine.


Ipek Ozkaya, Principal Researcher and Technical Director of the Engineering Intelligent Software Systems group at the Software Engineering Institute, Carnegie Mellon, discusses generative AI for Software Architecture with SE Radio host Priyanka Raghavan. The episode delves into fundamental definitions of software architecture and explores use cases in which gen AI can enhance architecture activities. The conversation spans from straightforward to challenging scenarios and highlights examples of relevant tooling. The episode concludes with insights on verifying the correctness of output for software architecture prompts and future trends in this domain. Brought to you by IEEE Computer Society and IEEE Software magazine.



Show Notes

Related Episodes

References


Transcript

Transcript brought to you by IEEE Software magazine and IEEE Computer Society. This transcript was automatically generated. To suggest improvements in the text, please contact [email protected] and include the episode number.

Priyanka Raghavan 00:00:19 Hi, I’m Priyanka Raghaven for Software Engineering Radio, and today I’m chatting with Ipek Ozkaya, a principal researcher and technical director of engineering Intelligence Software systems group at the SEI at Carnegie Mellon. On the topic, Gen AI for software architecture, Ipekís research interests include developing techniques for improving software development efficiency and system evolution with an emphasis on software architectural practices, software economics, and managing technical debt. She’s also co-authored a book on managing technical debt. So welcome to the show, Ipek.

Ipek Ozkaya 00:00:57 Thanks a lot for having me, Priyanka, especially for a topic that is very exciting given all the things going on in software engineering and AI these days.

Priyanka Raghavan 00:01:07 Yeah, I’m really looking forward to it. And before we jump into it, I wanted to set the context by asking you a question on what are the key elements needed to define a software architecture?

Ipek Ozkaya 00:01:20 So this is a very good place to start, especially now even the term architecture is being overloaded with model architecture, software architecture, and system architecture. The way we define software architecture has been at the Software Engineering Institute for the past two decades and more. It’s a way to reason about different levels of abstraction. So we define it as the software architecture of a system is the set of the structures needed to reason about the system that comprises the software elements, relationships among them, and the properties of both. I gave you the textbook definition. What this means is you need to think about the structuring of the behavior of the system from different perspectives. For example, how the code elements are structured together and how they relate to each other is one perspective. One structure, which we call module structures. How the software runs at runtime, how it interacts with different external systems is the runtime behavior component, connector structures.

Ipek Ozkaya 00:02:18 And that’s another perspective of the system. And then how the system is deployed, distribute, deployment, and where things run globally or locally and whatnot is another perspective, which is the deployment view. So realizing when we say software elements, you look at the elements from different perspectives, how they interact with each other, either in module time, runtime or deployment time. So that’s what makes the software architecture, how you define those elements, which is very important. But those are just the, maybe the boxes, how they communicate with each other, their relationships and the message exchanges and all the dependencies are also very critical. So that totality is the software architecture of a system. We love the boxes and line diagrams or expressing them, but that’s only one perspective of it. We might sometimes forget the other perspectives, and that’s what we base a line how we talk about software architecture when we talk about especially large-scale systems.

Priyanka Raghavan 00:03:14 Okay, that’s an impressive answer. And so I would have to ask you now what are say the routine tasks which are involved in architecting, because the cases we see where Gen AI is used is typically in terms of automation. So are there routine tasks in architecture or architecting?

Ipek Ozkaya 00:03:34 I think this is an excellent question. What are the roles and responsibilities of a software architect? And it of course varies, right? There’s definitely being able to define that software structure and behavior and the requirements that drive it. What is your context and how you’re implementing it, which is the hands on the keyboard for the implementation and how it relates to the abstractions. That is one aspect, but there are also all kinds of other roles and responsibilities of a software architect in terms of collecting requirements, documenting the key decisions, interacting with stakeholders in terms of documenting the requirements, understanding the context. There are all kinds of, maybe not necessarily hands-on implementation related tasks. There are the communication, information gathering and decision-making tasks. So let’s put those aside for a moment because our topic is automation and Gen AI. So let’s focus on the tooling and what it means in terms of a software architect’s role and responsibilities and tooling when it comes to especially the explosion of tools that we’re seeing with the Gen AI.

[...]


Original source

Reply