SlideShare a Scribd company logo
Data Designs
Software Engineering.
KEY CONCEPTS
DATA: Data describes a real-world information
resource that is important to your application.
Data describes the things, people, products,
items, customers, assets, records, and —
ultimately — data structures that your
application finds useful to categorize, organize,
and maintain.
DESIGN : has been described as a multistep
process in which representations of data and
program structure, interface characteristics, and
procedural detail are synthesized from
information requirements. In general we can say
that the DESIGN IS INFORMATION DRIVEN.
SOFTWARE ARCHITECTURE : of a program or
computing system is the structure or structures
of the system, which comprise software
components, the externally visible properties of
those components, and the relationship among
them. The architecture is not the operational
software rather is a representation that enables
to :
Analyze the effectiveness of the design in
meeting its stated requirements.
Consider architectural alternatives and,
Reduce risks associated with the construction of
the software.
Now, what does the term
“software components” means ?
In the context of architectural design, a software
component can be something as simple as a
program module or an object-oriented class but,
It can also be extended to include databases and
can also enable the configuration of a network of
clients and servers.
Software Architecture
considers two levels of the
design pyramid :
Architectural
Design
Data/class
Design
DATA DESIGN
The data design action translates data objects into data
structures at the software component level.
Data Design is the first and most important design activity.
Here the main issue is to select the appropriate data
structure i.e. the data design focuses on the definition of
data structures.
Data design is a process of gradual refinement, from the
coarse "What data does your application require?" to the
precise data structures and processes that provide it. With
a good data design, your application's data access is fast,
easily maintained, and can gracefully accept future data
enhancements.
Data Design Includes :
Identifying the data.
Defining specific data types & storage
mechanisms.
Insuring data integrity by using business rules and
other run-time enforcement mechanisms.
Concepts in Data Design:
 Data Modeling: Data modeling is the initial step in data design. It
involves creating a conceptual representation of the data and its
relationships within the software system. This is often done using
techniques like Entity-Relationship Diagrams (ERDs) or Unified
Modeling Language (UML) class diagrams. These diagrams depict
entities (such as objects, concepts, or people) and their attributes, as
well as the relationships between these entities.
 Normalization: Normalization is the process of organizing data in a
database to reduce redundancy and improve data integrity. This
involves breaking down large tables into smaller ones and using
relationships between these tables to link data logically. Normalization
helps prevent anomalies like data duplication and ensures efficient
querying and maintenance.
 Data Storage: Data can be stored in various forms, including relational
databases, NoSQL databases (such as document, key-value, columnar, or
graph databases), and even flat files. The choice of data storage depends
on factors like data volume, complexity, access patterns, and
performance requirements.
 Data Structures: Data structures refer to the way data is organized and
stored in memory or on disk. In software engineering, you often work
with various data structures like arrays, linked lists, trees, graphs, and
hash tables. These structures impact the efficiency of data retrieval,
insertion, and deletion operations.
 Indexing: Indexing involves creating indexes on specific columns in a
database table to speed up data retrieval. Indexes act like a roadmap,
allowing the database management system to quickly locate data based
on specific criteria. However, over-indexing can lead to performance
issues during data insertion and updates.
 Data Integrity: Ensuring data integrity is vital in data design. It involves
setting constraints, such as unique constraints or foreign key constraints,
to maintain the accuracy and consistency of data. This prevents the
insertion of erroneous or inconsistent data into the system.
 Data Security: Data design also includes considering security aspects,
such as access control, encryption, and data masking. Sensitive data
should be protected from unauthorized access and potential breaches.
 Scalability: Data design should accommodate scalability requirements. As
the application grows and more data is generated, the data storage
mechanisms should be capable of handling increased loads without
sacrificing performance.
Process of Data Design:
 Requirements Analysis: Understand the application's data requirements, including the
types of data to be stored, relationships between data entities, and anticipated usage
patterns.
 Conceptual Design: Create a high-level data model that outlines entities, attributes, and
relationships. This model abstracts the actual implementation details.
 Logical Design: Transform the conceptual model into a logical model that represents how
the data will be organized in a database. Apply normalization techniques to minimize
redundancy and improve data integrity.
 Physical Design: Translate the logical design into an actual database schema, choosing
specific data storage mechanisms, defining data types, and creating indexes.
 Implementation: Develop the necessary code to interact with the data storage
mechanisms, including database queries, data retrieval, and data manipulation
operations.
 Testing: Test the data design to ensure that data is stored, retrieved, and manipulated
correctly. Performance testing is essential to identify bottlenecks and optimize query
performance.
 Optimization and Maintenance: Continuously monitor the data design for performance
issues and make necessary optimizations. As the application evolves, the data design
might need to be updated to accommodate new requirements.
Data Design at the
Architectural Level.
The challenge is to extract useful information
from dozens of databases serving many
applications encompassing hundreds of gigabytes
of data, particularly when the information
desired is cross functional.
To combat this challenge data mining techniques,
also called KNOWLEDGE DISCOVERY IN
DATABASES (KDD) are developed, that navigate
through existing databases in order to extract
appropriate business-level information.
An Alternative solution called DATA
WAREHOUSE, adds additional layer to data
architecture. Data Warehouse is a separate
data environment that is not directly
integrated with day to day applications but
encompasses all data used by a business. In a
way it is a large, independent database that
access to the data that are stored in
databases that serve the set if applications
required by a business.
Data Design at the
Component Level.
Data Design at the component level focuses on
the representation of data structures that are
directly accessed by one or more software
components.
What Actually these Architectural
and component level elements
mean ?
The ARCHITECTURAL DESIGN for the software is
equivalent to the floor plan of a house, which
depicts the overall layout of the rooms, their
size, shape, and relationship to one another.
ARCHITECTURAL DESIGN ELEMENTS gives us an
overall view of the software.
COMPONENT DESIGN for the software is equivalent
to the set of detailed drawings for each room in the
house. These drawings depict wiring and plumbing
within each room, the switches, showers, tubs,
drain, the flooring to be used and every other
detail related with the room.
COMPONENT LEVEL DESIGN ELEMENTS for software
fully define the internal detail of each software
component.
Concepts in Component-Level Design:
 Modularity: Modularity is a central concept in component-level design. It
involves dividing a complex system into smaller, self-contained modules
or components. Each module addresses a specific aspect of functionality,
making the system easier to understand, develop, test, and maintain.
 Cohesion: Cohesion refers to how closely the responsibilities and tasks
within a component are related. High cohesion implies that a
component focuses on a specific, well-defined purpose, while low
cohesion indicates that a component may have multiple unrelated
responsibilities. Components with high cohesion are easier to
comprehend and maintain.
 Coupling: Coupling measures the degree of interdependence between
components. Low coupling implies that components are relatively
independent and can be modified without affecting other components.
High coupling increases the complexity of changes and may lead to
unintended side effects when modifying components.
 Interfaces: Components interact with each other through well-defined
interfaces. An interface specifies the methods, functions, or communication
protocols that other components can use to interact with a particular
component. Clear and consistent interfaces facilitate integration and
communication between components.
 Abstraction: Abstraction involves hiding complex implementation details and
exposing only the necessary functionality and information to other
components. This simplifies the interaction between components and allows
changes to be made to the underlying implementation without affecting the
rest of the system.
 Information Hiding: Information hiding restricts direct access to internal data
and methods of a component, exposing only what is necessary for external
interactions. This prevents unintended modification of internal state and
encourages the use of defined interfaces.
 Reusability: Well-designed components are often reusable in different parts
of the system or even across different projects. Reusability reduces
development effort and promotes consistency in software development.
Process of Component-Level
Design:
 Requirement Analysis: Understand the functional and non-functional
requirements of the system. Identify the major functionalities that need to
be implemented.
 Identify Components: Identify the components required to implement the
functionalities specified in the high-level design. Break down the system
into smaller, manageable units of functionality.
 Define Component Interfaces: Specify the interfaces for each component.
These interfaces should define the methods, inputs, outputs, and
communication protocols required for interactions between components.
 Design Internal Structure: For each component, design its internal
structure, including data structures, algorithms, and methods. Ensure that
the component's responsibilities are well-defined and cohesive.
 Ensure Cohesion and Low Coupling: Aim for high cohesion within each
component and minimize coupling between components. This promotes
maintainability and flexibility.
 Implement Components: Develop the code for each component according
to the defined interfaces and internal design. Follow programming best
practices to ensure the quality and readability of the code.
 Testing: Test each component in isolation using unit tests to verify its
correctness and functionality. Additionally, conduct integration testing to
ensure that components interact as expected.
 Documentation: Document the purpose, functionality, interfaces, and usage instructions
for each component. This documentation aids in understanding and using the
components in the future.
 Integration: Integrate the components to form the complete system. Test the integrated
system to identify and address any issues that arise during component interaction.
 Optimization and Refinement: Analyze the system's performance and identify areas for
optimization. Refine the design and implementation as needed to improve efficiency
and maintainability.
 Maintenance: As the system evolves, continue to maintain, update, and enhance the
components to meet changing requirements.
 In conclusion, component-level design is a crucial phase in software engineering that
involves decomposing a system into modular components with well-defined interfaces
and responsibilities. By focusing on modularity, cohesion, coupling, and clear interfaces,
component-level design promotes software that is easier to develop, test, maintain, and
scale.

More Related Content

What's hot

Software design principles
Software design principlesSoftware design principles
Software design principlesRitesh Singh
 
Artifacts
ArtifactsArtifacts
Artifacts
Mayuresh Wadekar
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Software engineering socio-technical systems
Software engineering   socio-technical systemsSoftware engineering   socio-technical systems
Software engineering socio-technical systems
Dr. Loganathan R
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
gondwana university
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Sudarshan Dhondaley
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Software process
Software processSoftware process
Software process
Jennifer Polack
 
Introduction to systems of systems
Introduction to systems of systemsIntroduction to systems of systems
Introduction to systems of systems
sommerville-videos
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Preeti Mishra
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
Rupesh Vaishnav
 
Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Chapter 03
Chapter 03Chapter 03
Chapter 03
ppp mmm
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
Software project management- Software Engineering
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software Engineering
Muhammad Yousuf Abdul Qadir
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Muhammad Asim
 
software configuration management ppt
 software configuration management  ppt software configuration management  ppt
software configuration management ppt
Yeshiwas Getachew
 

What's hot (20)

Software design principles
Software design principlesSoftware design principles
Software design principles
 
Artifacts
ArtifactsArtifacts
Artifacts
 
Design techniques
Design techniquesDesign techniques
Design techniques
 
software architecture
software architecturesoftware architecture
software architecture
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Software engineering socio-technical systems
Software engineering   socio-technical systemsSoftware engineering   socio-technical systems
Software engineering socio-technical systems
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
 
Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5Designing and documenting software architecture unit 5
Designing and documenting software architecture unit 5
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software process
Software processSoftware process
Software process
 
Introduction to systems of systems
Introduction to systems of systemsIntroduction to systems of systems
Introduction to systems of systems
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Software project management
Software project managementSoftware project management
Software project management
 
Chapter 03
Chapter 03Chapter 03
Chapter 03
 
Software design
Software designSoftware design
Software design
 
Software project management- Software Engineering
Software project management- Software EngineeringSoftware project management- Software Engineering
Software project management- Software Engineering
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
software configuration management ppt
 software configuration management  ppt software configuration management  ppt
software configuration management ppt
 

Similar to data design and component design.pptx

Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
Arun Shukla
 
pptse-160111094410.pdf
pptse-160111094410.pdfpptse-160111094410.pdf
pptse-160111094410.pdf
ubaidullah75790
 
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
JOHNLEAK1
 
RDBMS to NoSQL. An overview.
RDBMS to NoSQL. An overview.RDBMS to NoSQL. An overview.
RDBMS to NoSQL. An overview.
Girish. N. Raghavan
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
Dr.Shweta
 
CHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docxCHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docx
RUKIAHASSAN4
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
Shagufta shaheen
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
Abdul Ahad
 
Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]
Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]
Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]
Usman Tariq
 
Software design
Software designSoftware design
Software design
Zulqarnaintayyab
 
Lecture 1 to 3intro to normalization in database
Lecture 1 to 3intro to  normalization in databaseLecture 1 to 3intro to  normalization in database
Lecture 1 to 3intro to normalization in database
maqsoodahmedbscsfkhp
 
DS-DATABASE.ppt
DS-DATABASE.pptDS-DATABASE.ppt
DS-DATABASE.ppt
OasisMiris
 
DS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.ppt
DS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.pptDS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.ppt
DS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.ppt
fydfyd1
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
Rajes Wari
 
Software Design
Software Design Software Design
Software Design
Anas Bilal
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
ArifaMehreen1
 
database introductoin optimization1-app6891.pdf
database introductoin optimization1-app6891.pdfdatabase introductoin optimization1-app6891.pdf
database introductoin optimization1-app6891.pdf
parveen204931475
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
Siti Ismail
 
Data Modeling.docx
Data Modeling.docxData Modeling.docx
Data Modeling.docx
Michuki Samuel
 
LOGICAL data Model - Software Data engineering
LOGICAL data Model - Software Data engineeringLOGICAL data Model - Software Data engineering
LOGICAL data Model - Software Data engineering
Abdul Ahad
 

Similar to data design and component design.pptx (20)

Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
pptse-160111094410.pdf
pptse-160111094410.pdfpptse-160111094410.pdf
pptse-160111094410.pdf
 
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
1-SDLC - Development Models – Waterfall, Rapid Application Development, Agile...
 
RDBMS to NoSQL. An overview.
RDBMS to NoSQL. An overview.RDBMS to NoSQL. An overview.
RDBMS to NoSQL. An overview.
 
software design: design fundamentals.pptx
software design: design fundamentals.pptxsoftware design: design fundamentals.pptx
software design: design fundamentals.pptx
 
CHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docxCHAPTER FOUR buugii 2023.docx
CHAPTER FOUR buugii 2023.docx
 
Software design i (2) (1)
Software design   i (2) (1)Software design   i (2) (1)
Software design i (2) (1)
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
 
Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]
Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]
Data Models [DATABASE SYSTEMS: Design, Implementation, and Management]
 
Software design
Software designSoftware design
Software design
 
Lecture 1 to 3intro to normalization in database
Lecture 1 to 3intro to  normalization in databaseLecture 1 to 3intro to  normalization in database
Lecture 1 to 3intro to normalization in database
 
DS-DATABASE.ppt
DS-DATABASE.pptDS-DATABASE.ppt
DS-DATABASE.ppt
 
DS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.ppt
DS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.pptDS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.ppt
DS-DATABASE dsfgsdfgsdfgsfgsdfg sdgfgd.ppt
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
 
Software Design
Software Design Software Design
Software Design
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
database introductoin optimization1-app6891.pdf
database introductoin optimization1-app6891.pdfdatabase introductoin optimization1-app6891.pdf
database introductoin optimization1-app6891.pdf
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
Data Modeling.docx
Data Modeling.docxData Modeling.docx
Data Modeling.docx
 
LOGICAL data Model - Software Data engineering
LOGICAL data Model - Software Data engineeringLOGICAL data Model - Software Data engineering
LOGICAL data Model - Software Data engineering
 

More from ubaidullah75790

ch03 network security in computer sys.ppt
ch03 network security in computer sys.pptch03 network security in computer sys.ppt
ch03 network security in computer sys.ppt
ubaidullah75790
 
vu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.pptvu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.ppt
ubaidullah75790
 
vu-re-lecture-33 requirement engineering.ppt
vu-re-lecture-33 requirement engineering.pptvu-re-lecture-33 requirement engineering.ppt
vu-re-lecture-33 requirement engineering.ppt
ubaidullah75790
 
Requirement management traceability.ppt
Requirement management  traceability.pptRequirement management  traceability.ppt
Requirement management traceability.ppt
ubaidullah75790
 
SRS for banking system requirement engineer.ppt
SRS for banking system requirement engineer.pptSRS for banking system requirement engineer.ppt
SRS for banking system requirement engineer.ppt
ubaidullah75790
 
Agile Method requirement engineering.ppt
Agile Method requirement engineering.pptAgile Method requirement engineering.ppt
Agile Method requirement engineering.ppt
ubaidullah75790
 
traceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppttraceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppt
ubaidullah75790
 
vu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.pptvu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.ppt
ubaidullah75790
 
SRS for banking system requirement s.ppt
SRS for banking system requirement s.pptSRS for banking system requirement s.ppt
SRS for banking system requirement s.ppt
ubaidullah75790
 
SRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.pptSRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.ppt
ubaidullah75790
 
Requirments management traceability.ppt
Requirments  management traceability.pptRequirments  management traceability.ppt
Requirments management traceability.ppt
ubaidullah75790
 
SRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.pptSRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.ppt
ubaidullah75790
 
vu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.pptvu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.ppt
ubaidullah75790
 
vu-re-lecture-09 engineering requiremen.ppt
vu-re-lecture-09 engineering requiremen.pptvu-re-lecture-09 engineering requiremen.ppt
vu-re-lecture-09 engineering requiremen.ppt
ubaidullah75790
 
vu-re-lecture-08 requirement engineer.ppt
vu-re-lecture-08 requirement engineer.pptvu-re-lecture-08 requirement engineer.ppt
vu-re-lecture-08 requirement engineer.ppt
ubaidullah75790
 
vu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.pptvu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.ppt
ubaidullah75790
 
vu-re-lecture-05 requirement engineering.ppt
vu-re-lecture-05 requirement engineering.pptvu-re-lecture-05 requirement engineering.ppt
vu-re-lecture-05 requirement engineering.ppt
ubaidullah75790
 
vu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.pptvu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.ppt
ubaidullah75790
 
vu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.pptvu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.ppt
ubaidullah75790
 
vu-re-lecture-02 requirements engineering.ppt
vu-re-lecture-02 requirements engineering.pptvu-re-lecture-02 requirements engineering.ppt
vu-re-lecture-02 requirements engineering.ppt
ubaidullah75790
 

More from ubaidullah75790 (20)

ch03 network security in computer sys.ppt
ch03 network security in computer sys.pptch03 network security in computer sys.ppt
ch03 network security in computer sys.ppt
 
vu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.pptvu-re-lecture-44 requirement engineering.ppt
vu-re-lecture-44 requirement engineering.ppt
 
vu-re-lecture-33 requirement engineering.ppt
vu-re-lecture-33 requirement engineering.pptvu-re-lecture-33 requirement engineering.ppt
vu-re-lecture-33 requirement engineering.ppt
 
Requirement management traceability.ppt
Requirement management  traceability.pptRequirement management  traceability.ppt
Requirement management traceability.ppt
 
SRS for banking system requirement engineer.ppt
SRS for banking system requirement engineer.pptSRS for banking system requirement engineer.ppt
SRS for banking system requirement engineer.ppt
 
Agile Method requirement engineering.ppt
Agile Method requirement engineering.pptAgile Method requirement engineering.ppt
Agile Method requirement engineering.ppt
 
traceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppttraceabilty transport layer is liye .ppt
traceabilty transport layer is liye .ppt
 
vu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.pptvu-re-lecture-45 requirement engineering.ppt
vu-re-lecture-45 requirement engineering.ppt
 
SRS for banking system requirement s.ppt
SRS for banking system requirement s.pptSRS for banking system requirement s.ppt
SRS for banking system requirement s.ppt
 
SRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.pptSRS 2 requiremenr engineering in computer.ppt
SRS 2 requiremenr engineering in computer.ppt
 
Requirments management traceability.ppt
Requirments  management traceability.pptRequirments  management traceability.ppt
Requirments management traceability.ppt
 
SRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.pptSRS 1 software requirement specificatio.ppt
SRS 1 software requirement specificatio.ppt
 
vu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.pptvu-re-lecture-10 requirement engineering.ppt
vu-re-lecture-10 requirement engineering.ppt
 
vu-re-lecture-09 engineering requiremen.ppt
vu-re-lecture-09 engineering requiremen.pptvu-re-lecture-09 engineering requiremen.ppt
vu-re-lecture-09 engineering requiremen.ppt
 
vu-re-lecture-08 requirement engineer.ppt
vu-re-lecture-08 requirement engineer.pptvu-re-lecture-08 requirement engineer.ppt
vu-re-lecture-08 requirement engineer.ppt
 
vu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.pptvu-re-lecture-06 requirement engineer.ppt
vu-re-lecture-06 requirement engineer.ppt
 
vu-re-lecture-05 requirement engineering.ppt
vu-re-lecture-05 requirement engineering.pptvu-re-lecture-05 requirement engineering.ppt
vu-re-lecture-05 requirement engineering.ppt
 
vu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.pptvu-re-lecture-04 software engineering.ppt
vu-re-lecture-04 software engineering.ppt
 
vu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.pptvu-re-lecture-03 requirement engineering.ppt
vu-re-lecture-03 requirement engineering.ppt
 
vu-re-lecture-02 requirements engineering.ppt
vu-re-lecture-02 requirements engineering.pptvu-re-lecture-02 requirements engineering.ppt
vu-re-lecture-02 requirements engineering.ppt
 

Recently uploaded

Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
manasideore6
 
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
awadeshbabu
 
Online aptitude test management system project report.pdf
Online aptitude test management system project report.pdfOnline aptitude test management system project report.pdf
Online aptitude test management system project report.pdf
Kamal Acharya
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Victor Morales
 
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
dxobcob
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
AIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdfAIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdf
RicletoEspinosa1
 
Self-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptxSelf-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptx
iemerc2024
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
ClaraZara1
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTSHeap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Soumen Santra
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.pptPROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
bhadouriyakaku
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 

Recently uploaded (20)

Fundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptxFundamentals of Induction Motor Drives.pptx
Fundamentals of Induction Motor Drives.pptx
 
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
[JPP-1] - (JEE 3.0) - Kinematics 1D - 14th May..pdf
 
Online aptitude test management system project report.pdf
Online aptitude test management system project report.pdfOnline aptitude test management system project report.pdf
Online aptitude test management system project report.pdf
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressionsKuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
 
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
一比一原版(Otago毕业证)奥塔哥大学毕业证成绩单如何办理
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
AIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdfAIR POLLUTION lecture EnE203 updated.pdf
AIR POLLUTION lecture EnE203 updated.pdf
 
Self-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptxSelf-Control of Emotions by Slidesgo.pptx
Self-Control of Emotions by Slidesgo.pptx
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)6th International Conference on Machine Learning & Applications (CMLA 2024)
6th International Conference on Machine Learning & Applications (CMLA 2024)
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTSHeap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
Heap Sort (SS).ppt FOR ENGINEERING GRADUATES, BCA, MCA, MTECH, BSC STUDENTS
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.pptPROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
PROJECT FORMAT FOR EVS AMITY UNIVERSITY GWALIOR.ppt
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 

data design and component design.pptx

  • 2. KEY CONCEPTS DATA: Data describes a real-world information resource that is important to your application. Data describes the things, people, products, items, customers, assets, records, and — ultimately — data structures that your application finds useful to categorize, organize, and maintain. DESIGN : has been described as a multistep process in which representations of data and program structure, interface characteristics, and procedural detail are synthesized from information requirements. In general we can say that the DESIGN IS INFORMATION DRIVEN.
  • 3. SOFTWARE ARCHITECTURE : of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationship among them. The architecture is not the operational software rather is a representation that enables to : Analyze the effectiveness of the design in meeting its stated requirements. Consider architectural alternatives and, Reduce risks associated with the construction of the software.
  • 4. Now, what does the term “software components” means ? In the context of architectural design, a software component can be something as simple as a program module or an object-oriented class but, It can also be extended to include databases and can also enable the configuration of a network of clients and servers.
  • 5. Software Architecture considers two levels of the design pyramid : Architectural Design Data/class Design
  • 6. DATA DESIGN The data design action translates data objects into data structures at the software component level. Data Design is the first and most important design activity. Here the main issue is to select the appropriate data structure i.e. the data design focuses on the definition of data structures. Data design is a process of gradual refinement, from the coarse "What data does your application require?" to the precise data structures and processes that provide it. With a good data design, your application's data access is fast, easily maintained, and can gracefully accept future data enhancements.
  • 7. Data Design Includes : Identifying the data. Defining specific data types & storage mechanisms. Insuring data integrity by using business rules and other run-time enforcement mechanisms.
  • 8. Concepts in Data Design:  Data Modeling: Data modeling is the initial step in data design. It involves creating a conceptual representation of the data and its relationships within the software system. This is often done using techniques like Entity-Relationship Diagrams (ERDs) or Unified Modeling Language (UML) class diagrams. These diagrams depict entities (such as objects, concepts, or people) and their attributes, as well as the relationships between these entities.  Normalization: Normalization is the process of organizing data in a database to reduce redundancy and improve data integrity. This involves breaking down large tables into smaller ones and using relationships between these tables to link data logically. Normalization helps prevent anomalies like data duplication and ensures efficient querying and maintenance.
  • 9.  Data Storage: Data can be stored in various forms, including relational databases, NoSQL databases (such as document, key-value, columnar, or graph databases), and even flat files. The choice of data storage depends on factors like data volume, complexity, access patterns, and performance requirements.  Data Structures: Data structures refer to the way data is organized and stored in memory or on disk. In software engineering, you often work with various data structures like arrays, linked lists, trees, graphs, and hash tables. These structures impact the efficiency of data retrieval, insertion, and deletion operations.  Indexing: Indexing involves creating indexes on specific columns in a database table to speed up data retrieval. Indexes act like a roadmap, allowing the database management system to quickly locate data based on specific criteria. However, over-indexing can lead to performance issues during data insertion and updates.
  • 10.  Data Integrity: Ensuring data integrity is vital in data design. It involves setting constraints, such as unique constraints or foreign key constraints, to maintain the accuracy and consistency of data. This prevents the insertion of erroneous or inconsistent data into the system.  Data Security: Data design also includes considering security aspects, such as access control, encryption, and data masking. Sensitive data should be protected from unauthorized access and potential breaches.  Scalability: Data design should accommodate scalability requirements. As the application grows and more data is generated, the data storage mechanisms should be capable of handling increased loads without sacrificing performance.
  • 11. Process of Data Design:  Requirements Analysis: Understand the application's data requirements, including the types of data to be stored, relationships between data entities, and anticipated usage patterns.  Conceptual Design: Create a high-level data model that outlines entities, attributes, and relationships. This model abstracts the actual implementation details.  Logical Design: Transform the conceptual model into a logical model that represents how the data will be organized in a database. Apply normalization techniques to minimize redundancy and improve data integrity.  Physical Design: Translate the logical design into an actual database schema, choosing specific data storage mechanisms, defining data types, and creating indexes.  Implementation: Develop the necessary code to interact with the data storage mechanisms, including database queries, data retrieval, and data manipulation operations.  Testing: Test the data design to ensure that data is stored, retrieved, and manipulated correctly. Performance testing is essential to identify bottlenecks and optimize query performance.  Optimization and Maintenance: Continuously monitor the data design for performance issues and make necessary optimizations. As the application evolves, the data design might need to be updated to accommodate new requirements.
  • 12. Data Design at the Architectural Level. The challenge is to extract useful information from dozens of databases serving many applications encompassing hundreds of gigabytes of data, particularly when the information desired is cross functional. To combat this challenge data mining techniques, also called KNOWLEDGE DISCOVERY IN DATABASES (KDD) are developed, that navigate through existing databases in order to extract appropriate business-level information.
  • 13. An Alternative solution called DATA WAREHOUSE, adds additional layer to data architecture. Data Warehouse is a separate data environment that is not directly integrated with day to day applications but encompasses all data used by a business. In a way it is a large, independent database that access to the data that are stored in databases that serve the set if applications required by a business.
  • 14. Data Design at the Component Level. Data Design at the component level focuses on the representation of data structures that are directly accessed by one or more software components.
  • 15. What Actually these Architectural and component level elements mean ? The ARCHITECTURAL DESIGN for the software is equivalent to the floor plan of a house, which depicts the overall layout of the rooms, their size, shape, and relationship to one another. ARCHITECTURAL DESIGN ELEMENTS gives us an overall view of the software.
  • 16. COMPONENT DESIGN for the software is equivalent to the set of detailed drawings for each room in the house. These drawings depict wiring and plumbing within each room, the switches, showers, tubs, drain, the flooring to be used and every other detail related with the room. COMPONENT LEVEL DESIGN ELEMENTS for software fully define the internal detail of each software component.
  • 17. Concepts in Component-Level Design:  Modularity: Modularity is a central concept in component-level design. It involves dividing a complex system into smaller, self-contained modules or components. Each module addresses a specific aspect of functionality, making the system easier to understand, develop, test, and maintain.  Cohesion: Cohesion refers to how closely the responsibilities and tasks within a component are related. High cohesion implies that a component focuses on a specific, well-defined purpose, while low cohesion indicates that a component may have multiple unrelated responsibilities. Components with high cohesion are easier to comprehend and maintain.  Coupling: Coupling measures the degree of interdependence between components. Low coupling implies that components are relatively independent and can be modified without affecting other components. High coupling increases the complexity of changes and may lead to unintended side effects when modifying components.
  • 18.  Interfaces: Components interact with each other through well-defined interfaces. An interface specifies the methods, functions, or communication protocols that other components can use to interact with a particular component. Clear and consistent interfaces facilitate integration and communication between components.  Abstraction: Abstraction involves hiding complex implementation details and exposing only the necessary functionality and information to other components. This simplifies the interaction between components and allows changes to be made to the underlying implementation without affecting the rest of the system.  Information Hiding: Information hiding restricts direct access to internal data and methods of a component, exposing only what is necessary for external interactions. This prevents unintended modification of internal state and encourages the use of defined interfaces.  Reusability: Well-designed components are often reusable in different parts of the system or even across different projects. Reusability reduces development effort and promotes consistency in software development.
  • 19. Process of Component-Level Design:  Requirement Analysis: Understand the functional and non-functional requirements of the system. Identify the major functionalities that need to be implemented.  Identify Components: Identify the components required to implement the functionalities specified in the high-level design. Break down the system into smaller, manageable units of functionality.  Define Component Interfaces: Specify the interfaces for each component. These interfaces should define the methods, inputs, outputs, and communication protocols required for interactions between components.
  • 20.  Design Internal Structure: For each component, design its internal structure, including data structures, algorithms, and methods. Ensure that the component's responsibilities are well-defined and cohesive.  Ensure Cohesion and Low Coupling: Aim for high cohesion within each component and minimize coupling between components. This promotes maintainability and flexibility.  Implement Components: Develop the code for each component according to the defined interfaces and internal design. Follow programming best practices to ensure the quality and readability of the code.  Testing: Test each component in isolation using unit tests to verify its correctness and functionality. Additionally, conduct integration testing to ensure that components interact as expected.
  • 21.  Documentation: Document the purpose, functionality, interfaces, and usage instructions for each component. This documentation aids in understanding and using the components in the future.  Integration: Integrate the components to form the complete system. Test the integrated system to identify and address any issues that arise during component interaction.  Optimization and Refinement: Analyze the system's performance and identify areas for optimization. Refine the design and implementation as needed to improve efficiency and maintainability.  Maintenance: As the system evolves, continue to maintain, update, and enhance the components to meet changing requirements.  In conclusion, component-level design is a crucial phase in software engineering that involves decomposing a system into modular components with well-defined interfaces and responsibilities. By focusing on modularity, cohesion, coupling, and clear interfaces, component-level design promotes software that is easier to develop, test, maintain, and scale.