SOFTWARE CONSTRUCTION AND
DEVELOPMENT
BY
SANA RIZWAN
CHAPTER 5
INTEGRATING GENERATIVE AI
IN SOFTWARE DESIGN
AND ARCHITECTURE
2
CONTENTS
Software Design & Development:
• Object Oriented Programming
• Functional Programming in Modern Development
• AI-Driven Design Patterns and Code Architectures
• Generative AI for Architecture Prototyping
GOOD SOFTWARE DESIGN
3
• A good software design is meant to provide guidance and
point toward true north for the development teams.
• It should provide clarity and direction, ensuring that
developers have a clear understanding of what needs to be
built.
• The aim should be to build a functional system with reduced
complexity, achieved by breaking the system into
manageable components, thus making it easier to
understand, develop, and test.
• As an architect, leveraging AI tools and LLM can enhance the
overall software design and architecture process across
various components.
4
SOFTWARE DESIGN
• A good software design ensures that the parts of the software can be reused. This allows for
efficient development.
• A solid design foundation includes setting up DevOps pipelines and embedded automation.
• This helps identify potential issues early in the development process, saving time and resources by
avoiding costly revisions at later stages.
• It also true that this foundation plays a critical role in ensuring that the software is flexible and
scalable, capable of adapting to changing requirements and growing with the needs of the users.
• Building modular designs that can flexibly decouple/integrate with other modules facilitates
collaboration among developers, enabling teams to work in parallel and integrate their work
seamlessly.
• A building design could be a one-time thing, but software design should be looked at as an
iterative process.
• As new technology and requirements flow in, the design may need to be revisited and refined to
accommodate those new requirements or to address unforeseen challenges.
• Software can remain relevant through continuous improvement, which is possible only on the back
of a solid design.
5
HIGH LEVEL DESIGN (HLD) AND LOW LEVEL DESIGN (LLD)
• The process of developing software design starts with the analysis of requirements, where the stated
and unstated needs of the customer and other stakeholders are thoroughly understood.
• A high-level design (HLD) is produced, which indicates the direction of travel—such as building a
bespoke application, employing microservices, using a COTS platform such as Salesforce, the choice
of design patterns, and so on.
• The architectural design serves as a roadmap that guides the development process, outlining how
different components will interact and how data will flow through the system.
• After the HLD is in place, the design process moves on to a detailed design, where individual
components are defined in greater depth. This is referred to as the low-level design (LLD).
• This includes specifying the internal structure of modules, defining algorithms and data structures,
and detailing how components will interact with each other through interfaces.
• Structured approach using HLD and LLD ensures:
• Clear system architecture and component boundaries (HLD)
• Precise implementation-level design and logic (LLD)
6
DESIGN PRINCIPLES
• There are the design principles and best practices that need to be followed during the design process
to ensure that the software is efficient and maintainable.
• This includes building modular software, which focuses on dividing the system into smaller, self-
contained units; abstraction, which focuses on hiding the complex details of components behind
simple interfaces; and encapsulation, which ensures that the internal workings of a component are
not exposed to other parts of the system.
• Alongside these principles are principles like cohesion, which promotes the grouping of related
functionalities within a single module; and coupling, which seeks to minimize dependencies between
modules.
• These principles all play a crucial role in creating a robust design.
7
SOFTWARE DESIGN COMPONENTS
8
SOFTWARE
DESIGN
 Infused AI-driven design tools to simulate various types of architectures and predict their
performance when deployed to production.
 For example, AI can help you decide if a microservices (single application is composed of many
small, loosely coupled, and independently deployable services) or a monolithic structure (Single
Codebase, tightly coupled, Dependent, Shared Memory, Centralized Database, Layered Structure) is
the best for a particular case scenario.
 AI can explore a wider range of designs; it optimizes for performance, scalability, accessibility, and
reliability.
 The recommendations of AI may require end-to-end human validation before providing any signoffs
and requires customization based on business and technical specifications.
9
AI INTERVENTION FOR HIGH-LEVEL DESIGN
For a high-level design, the system is broken into smaller, more manageable pieces, like detailing the rooms within a blueprint.
AI can help by modeling data flows and interactions between modules. For instance, it can simulate how data will travel from the
frontend to the backend and suggest improvements. This process will help improve accuracy and predict integration challenges. Setting
up these models can be complex and may not cover all scenarios.
10
AI INTERVENTION FOR HIGH-LEVEL DESIGN
11
AI INTERVENTION FOR HIGH-LEVEL DESIGN
12
• Google’s AutoML: which can assist in modeling the interaction between different modules of a
healthcare application, predict potential data flow issues and optimize the interactions.
• OpenAI Codex: is capable of translating the high-level requirements into detailed design
documents. Use the tool to create a detailed design document, so that the time and effort
saved could be used in refining the design. The other advantage that we witnessed was that
the tool generated a consistent approach to design, which helped in forging the final designs
with minimal rework.
• Codex: designing an inventory management system, input the description into the tool
console, which then generates a comprehensive set of design documents, including
architecture diagrams, component interactions, and data flow models based on the generic
parameters or conditions.
AI INTERVENTION FOR HIGH-LEVEL DESIGN TOOLS
13
 In the low-level design stage, elements from the HLD are broken into components and
modules.
 This could be a host of things like classes, methods, algorithms, data structures, and
database schemas.
 This is analogous to an interior designer specifying the details of each room.
 AI tools can assist in optimizing algorithms used in low-level design.
 AI-based profilers or performance analyzers can suggest more efficient ways to implement a
particular algorithm or function.
 Tools such as Google AutoML, OpenAI Codex, and Intel AI Analytics can profile the
algorithms and codes for performance and stability improvement.
 AI can generate class diagrams and detailed specifications. For instance, We have seen it
used for the development of a streaming service, where the tool created pseudo-code for
complex algorithms based on the high-level design. This streamlined the development
process, because it provided a solid starting point for developers.
AI INTERVENTION FOR LOW-LEVEL DESIGN
14
 AI used to recommend design patterns as well. For example, in IBM Watson, the tool provides recommendations
on design patterns based on project requirements.
 For example, when designing a notification system, Watson might suggest the Observer pattern for handling
real-time updates.
 The recommendations could be based on best practices or from the learning that it has gathered from previous
implementations.
 Using AI with design patterns ensures adherence to proven design patterns and improves robustness, which is
extremely helpful for large enterprises.
 Incomplete details can lead to less relevant suggestions, and recommendations might need to be adapted to fit
specific project constraints.
 System design include automatic generation of diagrams by using a tool like Lucidchart with AI Integration.
 This tool helps generate architecture diagrams from textual descriptions.
 For example, if you describe the architectural details of a microservices based application, Lucidchart creates
detailed diagrams such as component and sequence diagrams.
 This is a productivity booster, as the tool can quickly generate professional diagrams, facilitating communication
and speeding up the design process. This will also help produce a clear visual representation of the system
architecture.
 By infusing AI, the design output increases precision and reduces the time spent on manual design, but the AI-
generated designs might lack the creativity and contextual understanding a human designer would bring.
AI INTERVENTION FOR LOW-LEVEL DESIGN
15
AI DRIVEN TOOLS FOR SOFTWARE
DESIGNING
16
AI DRIVEN TOOLS FOR SOFTWARE
DESIGNING
17
Object-Oriented Programming (OOP) and Functional Programming (FP)
Object-Oriented Programming (OOP) and Functional
Programming (FP) are two primary paradigms used
in
modern software development, each with strengths
and weaknesses.
OOP focuses on organizing code into reusable
objects, while FP emphasizes pure functions and
immutable data,
aiming for code that's easier to reason about and
test.
Modern development often benefits from a
combination of both paradigms, leveraging OOP for
structuring
applications and FP for specific tasks.
18
OBJECT-ORIENTED PROGRAMMING (OOP)
Core Concepts:
OOP revolves around the concept of "objects," which encapsulate data (attributes) and behavior (methods).
Benefits:
•Modularity: OOP promotes breaking down complex systems into smaller, manageable modules (objects),
improving code organization and maintainability.
•Code Reusability: Objects and classes can be reused in different parts of the application or even in other
projects, saving development time and effort.
•Scalability: OOP allows for easier scaling of applications as the need for additional features or functionality
arises, as objects can be easily extended.
•Real-World Modeling: OOP is well-suited for modeling real-world entities and their interactions, making the
code more intuitive to understand and maintain.
Examples:
Java, Python, C++, and JavaScript are widely used languages that support OOP.
19
FUNCTIONAL PROGRAMMING (FP)
Core Concepts:
FP focuses on using functions as the primary building blocks, emphasizing pure functions (functions that
always return the same output for the same input) and immutable(absolute) data. Functional programming
is a programming paradigm where programs are constructed by applying and composing functions. It is a
declarative style of programming, focusing on what to solve rather than how to solve.
Benefits:
•Testability: Pure functions and immutable data make it easier to test and debug code, as side effects are
minimized.
•Parallelism: FP's emphasis on immutability and pure functions makes it well-suited for parallel processing.
•Code Clarity: FP often leads to more concise and readable code, as complex logic can be broken down into
smaller, independent functions.
•Concurrency: FP's emphasis on immutability and pure functions can also facilitate easier concurrency
management.
Examples:
Functional programming is used in various domains, including mathematical computations, concurrent
20
FUNCTIONAL
PROGRAMMING (FP)
KEY CONCEPTS WITH
EXAMPLES
21
COMPONENT
DESIGN
22
UNDERSTANDING MICROSERVICE RESPONSIBILITIES
23
SUGGESTING API ENDPOINTS AND METHODS
24
OPTIMIZING DATA EXCHANGE
FORMATS
25
ENSURING EFFICIENT COMMUNICATION
26
BENEFITS OF USING LLMS FOR INTERFACE DESIGN
27
USER INTERFACE DESIGN
28
29
ENHANCED ACCESSIBILITY LIKE VOICE-ACTIVATED
INTERFACES
30
DATA DESIGN
• Data design is a process of structuring and organizing data within a system to ensure that it is
stored, managed, and utilized efficiently.
• It involves defining how data is represented, relationships between different data entities, and
the rules governing data integrity and access.
• Effective data design aims to create a logical and physical model of data that supports the
requirements of applications and users, facilitates data integration and retrieval, and ensures
data consistency and quality.
• Key components of data design include data modeling, data schema design, normalization,
and the implementation of data governance practices to maintain data accuracy and security.
• AI can optimize data structures and database schemas for performance and scalability.
• AI tools can design and normalize database schemas, ensuring efficient data access patterns.
• For example, AI can suggest the best ways to index and partition large datasets. By using AI, it
will enhance data integrity and performance.
31
32
33
34
35
36
37
INFRASTRUCTURE
DESIGN
38
INFUSING AI IN INFRASTRUCTURE DESIGN
39
INFUSING AI IN INFRASTRUCTURE DESIGN
40
INFUSING AI IN INFRASTRUCTURE DESIGN
41
INFUSING AI IN INFRASTRUCTURE DESIGN
42
INFUSING AI IN INFRASTRUCTURE DESIGN
43
44
INFUSING AI IN SECURITY DESIGN
45
INFUSING AI IN SECURITY DESIGN
46
INFUSING AI IN SECURITY DESIGN
47
WHAT IS GENERATIVE AI?
Generative AI (Artificial Intelligence), refers to a class of algorithms and models designed
to autonomously produce content, such as text, images, music, or other forms of data, by
learning patterns and structures from vast datasets.
Unlike traditional AI systems that follow predefined rules, generative AI has the ability to
create entirely new and often highly realistic outputs, generally in response to AI prompts or
with prompt engineering. It operates at the intersection of creativity and artificial intelligence.
https://youtu.be/mXki_lLKogM
48
GENERATIVE AI DESIGN
Generative AI in design uses artificial intelligence to create new designs or optimize existing ones,
based on user-defined goals and constraints. It's like having a design assistant that can explore a vast
space of possibilities, offering solutions that might be difficult or impossible to imagine manually.
AI-Driven Design:
Generative design leverages algorithms to generate multiple design iterations based on specific
parameters and objectives.
Constraint-Based:
Users define the problem and project constraints, such as material limitations, size requirements, or
performance goals.
Automated Exploration:
The AI system then generates a range of potential designs, exploring different configurations and
geometries to find the most optimal solution.
Optimization:
The AI can optimize for various factors like weight, cost, manufacturability, and performance.
Human-AI Collaboration:
While the AI generates designs, humans still play a crucial role in evaluating the results, refining the
parameters, and selecting the final design.
Applications:
Generative design can be used in various industries, including manufacturing, architecture, and
product design, to create innovative and efficient solutions
49
KNOW HOW ABOUT GENERATIVE AI EFFECT ON DESIGN
THANK YOU
Sana Rizwan
Assistant Professor
Department of Computer Science,
COMSATS University Islamabad,
Lahore Campus
Email: sana@cuilahore.edu.pk
50

Integrating Generative AI in Software Design and Architecture -- Chapter 5.pptx

  • 1.
    SOFTWARE CONSTRUCTION AND DEVELOPMENT BY SANARIZWAN CHAPTER 5 INTEGRATING GENERATIVE AI IN SOFTWARE DESIGN AND ARCHITECTURE
  • 2.
    2 CONTENTS Software Design &Development: • Object Oriented Programming • Functional Programming in Modern Development • AI-Driven Design Patterns and Code Architectures • Generative AI for Architecture Prototyping
  • 3.
    GOOD SOFTWARE DESIGN 3 •A good software design is meant to provide guidance and point toward true north for the development teams. • It should provide clarity and direction, ensuring that developers have a clear understanding of what needs to be built. • The aim should be to build a functional system with reduced complexity, achieved by breaking the system into manageable components, thus making it easier to understand, develop, and test. • As an architect, leveraging AI tools and LLM can enhance the overall software design and architecture process across various components.
  • 4.
    4 SOFTWARE DESIGN • Agood software design ensures that the parts of the software can be reused. This allows for efficient development. • A solid design foundation includes setting up DevOps pipelines and embedded automation. • This helps identify potential issues early in the development process, saving time and resources by avoiding costly revisions at later stages. • It also true that this foundation plays a critical role in ensuring that the software is flexible and scalable, capable of adapting to changing requirements and growing with the needs of the users. • Building modular designs that can flexibly decouple/integrate with other modules facilitates collaboration among developers, enabling teams to work in parallel and integrate their work seamlessly. • A building design could be a one-time thing, but software design should be looked at as an iterative process. • As new technology and requirements flow in, the design may need to be revisited and refined to accommodate those new requirements or to address unforeseen challenges. • Software can remain relevant through continuous improvement, which is possible only on the back of a solid design.
  • 5.
    5 HIGH LEVEL DESIGN(HLD) AND LOW LEVEL DESIGN (LLD) • The process of developing software design starts with the analysis of requirements, where the stated and unstated needs of the customer and other stakeholders are thoroughly understood. • A high-level design (HLD) is produced, which indicates the direction of travel—such as building a bespoke application, employing microservices, using a COTS platform such as Salesforce, the choice of design patterns, and so on. • The architectural design serves as a roadmap that guides the development process, outlining how different components will interact and how data will flow through the system. • After the HLD is in place, the design process moves on to a detailed design, where individual components are defined in greater depth. This is referred to as the low-level design (LLD). • This includes specifying the internal structure of modules, defining algorithms and data structures, and detailing how components will interact with each other through interfaces. • Structured approach using HLD and LLD ensures: • Clear system architecture and component boundaries (HLD) • Precise implementation-level design and logic (LLD)
  • 6.
    6 DESIGN PRINCIPLES • Thereare the design principles and best practices that need to be followed during the design process to ensure that the software is efficient and maintainable. • This includes building modular software, which focuses on dividing the system into smaller, self- contained units; abstraction, which focuses on hiding the complex details of components behind simple interfaces; and encapsulation, which ensures that the internal workings of a component are not exposed to other parts of the system. • Alongside these principles are principles like cohesion, which promotes the grouping of related functionalities within a single module; and coupling, which seeks to minimize dependencies between modules. • These principles all play a crucial role in creating a robust design.
  • 7.
  • 8.
    8 SOFTWARE DESIGN  Infused AI-drivendesign tools to simulate various types of architectures and predict their performance when deployed to production.  For example, AI can help you decide if a microservices (single application is composed of many small, loosely coupled, and independently deployable services) or a monolithic structure (Single Codebase, tightly coupled, Dependent, Shared Memory, Centralized Database, Layered Structure) is the best for a particular case scenario.  AI can explore a wider range of designs; it optimizes for performance, scalability, accessibility, and reliability.  The recommendations of AI may require end-to-end human validation before providing any signoffs and requires customization based on business and technical specifications.
  • 9.
    9 AI INTERVENTION FORHIGH-LEVEL DESIGN For a high-level design, the system is broken into smaller, more manageable pieces, like detailing the rooms within a blueprint. AI can help by modeling data flows and interactions between modules. For instance, it can simulate how data will travel from the frontend to the backend and suggest improvements. This process will help improve accuracy and predict integration challenges. Setting up these models can be complex and may not cover all scenarios.
  • 10.
    10 AI INTERVENTION FORHIGH-LEVEL DESIGN
  • 11.
    11 AI INTERVENTION FORHIGH-LEVEL DESIGN
  • 12.
    12 • Google’s AutoML:which can assist in modeling the interaction between different modules of a healthcare application, predict potential data flow issues and optimize the interactions. • OpenAI Codex: is capable of translating the high-level requirements into detailed design documents. Use the tool to create a detailed design document, so that the time and effort saved could be used in refining the design. The other advantage that we witnessed was that the tool generated a consistent approach to design, which helped in forging the final designs with minimal rework. • Codex: designing an inventory management system, input the description into the tool console, which then generates a comprehensive set of design documents, including architecture diagrams, component interactions, and data flow models based on the generic parameters or conditions. AI INTERVENTION FOR HIGH-LEVEL DESIGN TOOLS
  • 13.
    13  In thelow-level design stage, elements from the HLD are broken into components and modules.  This could be a host of things like classes, methods, algorithms, data structures, and database schemas.  This is analogous to an interior designer specifying the details of each room.  AI tools can assist in optimizing algorithms used in low-level design.  AI-based profilers or performance analyzers can suggest more efficient ways to implement a particular algorithm or function.  Tools such as Google AutoML, OpenAI Codex, and Intel AI Analytics can profile the algorithms and codes for performance and stability improvement.  AI can generate class diagrams and detailed specifications. For instance, We have seen it used for the development of a streaming service, where the tool created pseudo-code for complex algorithms based on the high-level design. This streamlined the development process, because it provided a solid starting point for developers. AI INTERVENTION FOR LOW-LEVEL DESIGN
  • 14.
    14  AI usedto recommend design patterns as well. For example, in IBM Watson, the tool provides recommendations on design patterns based on project requirements.  For example, when designing a notification system, Watson might suggest the Observer pattern for handling real-time updates.  The recommendations could be based on best practices or from the learning that it has gathered from previous implementations.  Using AI with design patterns ensures adherence to proven design patterns and improves robustness, which is extremely helpful for large enterprises.  Incomplete details can lead to less relevant suggestions, and recommendations might need to be adapted to fit specific project constraints.  System design include automatic generation of diagrams by using a tool like Lucidchart with AI Integration.  This tool helps generate architecture diagrams from textual descriptions.  For example, if you describe the architectural details of a microservices based application, Lucidchart creates detailed diagrams such as component and sequence diagrams.  This is a productivity booster, as the tool can quickly generate professional diagrams, facilitating communication and speeding up the design process. This will also help produce a clear visual representation of the system architecture.  By infusing AI, the design output increases precision and reduces the time spent on manual design, but the AI- generated designs might lack the creativity and contextual understanding a human designer would bring. AI INTERVENTION FOR LOW-LEVEL DESIGN
  • 15.
    15 AI DRIVEN TOOLSFOR SOFTWARE DESIGNING
  • 16.
    16 AI DRIVEN TOOLSFOR SOFTWARE DESIGNING
  • 17.
    17 Object-Oriented Programming (OOP)and Functional Programming (FP) Object-Oriented Programming (OOP) and Functional Programming (FP) are two primary paradigms used in modern software development, each with strengths and weaknesses. OOP focuses on organizing code into reusable objects, while FP emphasizes pure functions and immutable data, aiming for code that's easier to reason about and test. Modern development often benefits from a combination of both paradigms, leveraging OOP for structuring applications and FP for specific tasks.
  • 18.
    18 OBJECT-ORIENTED PROGRAMMING (OOP) CoreConcepts: OOP revolves around the concept of "objects," which encapsulate data (attributes) and behavior (methods). Benefits: •Modularity: OOP promotes breaking down complex systems into smaller, manageable modules (objects), improving code organization and maintainability. •Code Reusability: Objects and classes can be reused in different parts of the application or even in other projects, saving development time and effort. •Scalability: OOP allows for easier scaling of applications as the need for additional features or functionality arises, as objects can be easily extended. •Real-World Modeling: OOP is well-suited for modeling real-world entities and their interactions, making the code more intuitive to understand and maintain. Examples: Java, Python, C++, and JavaScript are widely used languages that support OOP.
  • 19.
    19 FUNCTIONAL PROGRAMMING (FP) CoreConcepts: FP focuses on using functions as the primary building blocks, emphasizing pure functions (functions that always return the same output for the same input) and immutable(absolute) data. Functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative style of programming, focusing on what to solve rather than how to solve. Benefits: •Testability: Pure functions and immutable data make it easier to test and debug code, as side effects are minimized. •Parallelism: FP's emphasis on immutability and pure functions makes it well-suited for parallel processing. •Code Clarity: FP often leads to more concise and readable code, as complex logic can be broken down into smaller, independent functions. •Concurrency: FP's emphasis on immutability and pure functions can also facilitate easier concurrency management. Examples: Functional programming is used in various domains, including mathematical computations, concurrent
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
    26 BENEFITS OF USINGLLMS FOR INTERFACE DESIGN
  • 27.
  • 28.
  • 29.
    29 ENHANCED ACCESSIBILITY LIKEVOICE-ACTIVATED INTERFACES
  • 30.
    30 DATA DESIGN • Datadesign is a process of structuring and organizing data within a system to ensure that it is stored, managed, and utilized efficiently. • It involves defining how data is represented, relationships between different data entities, and the rules governing data integrity and access. • Effective data design aims to create a logical and physical model of data that supports the requirements of applications and users, facilitates data integration and retrieval, and ensures data consistency and quality. • Key components of data design include data modeling, data schema design, normalization, and the implementation of data governance practices to maintain data accuracy and security. • AI can optimize data structures and database schemas for performance and scalability. • AI tools can design and normalize database schemas, ensuring efficient data access patterns. • For example, AI can suggest the best ways to index and partition large datasets. By using AI, it will enhance data integrity and performance.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
    38 INFUSING AI ININFRASTRUCTURE DESIGN
  • 39.
    39 INFUSING AI ININFRASTRUCTURE DESIGN
  • 40.
    40 INFUSING AI ININFRASTRUCTURE DESIGN
  • 41.
    41 INFUSING AI ININFRASTRUCTURE DESIGN
  • 42.
    42 INFUSING AI ININFRASTRUCTURE DESIGN
  • 43.
  • 44.
    44 INFUSING AI INSECURITY DESIGN
  • 45.
    45 INFUSING AI INSECURITY DESIGN
  • 46.
    46 INFUSING AI INSECURITY DESIGN
  • 47.
    47 WHAT IS GENERATIVEAI? Generative AI (Artificial Intelligence), refers to a class of algorithms and models designed to autonomously produce content, such as text, images, music, or other forms of data, by learning patterns and structures from vast datasets. Unlike traditional AI systems that follow predefined rules, generative AI has the ability to create entirely new and often highly realistic outputs, generally in response to AI prompts or with prompt engineering. It operates at the intersection of creativity and artificial intelligence. https://youtu.be/mXki_lLKogM
  • 48.
    48 GENERATIVE AI DESIGN GenerativeAI in design uses artificial intelligence to create new designs or optimize existing ones, based on user-defined goals and constraints. It's like having a design assistant that can explore a vast space of possibilities, offering solutions that might be difficult or impossible to imagine manually. AI-Driven Design: Generative design leverages algorithms to generate multiple design iterations based on specific parameters and objectives. Constraint-Based: Users define the problem and project constraints, such as material limitations, size requirements, or performance goals. Automated Exploration: The AI system then generates a range of potential designs, exploring different configurations and geometries to find the most optimal solution. Optimization: The AI can optimize for various factors like weight, cost, manufacturability, and performance. Human-AI Collaboration: While the AI generates designs, humans still play a crucial role in evaluating the results, refining the parameters, and selecting the final design. Applications: Generative design can be used in various industries, including manufacturing, architecture, and product design, to create innovative and efficient solutions
  • 49.
    49 KNOW HOW ABOUTGENERATIVE AI EFFECT ON DESIGN
  • 50.
    THANK YOU Sana Rizwan AssistantProfessor Department of Computer Science, COMSATS University Islamabad, Lahore Campus Email: sana@cuilahore.edu.pk 50