The document discusses key concepts and principles of software design. It explains that design involves two major phases - diversification, where alternative solutions are considered, and convergence, where elements are chosen and combined to meet requirements. Good design principles include modularity, information hiding, and functional independence. The goal of design is to produce models and specifications that can be implemented to meet a customer's needs.
In the GTU degree engineering, Software engineering is such a subject which is used to explore thinking over designing reliable softwares. In this presentation , Design concepts and principles are mentioned and explained in simplified manner.
Presentation covers all aspects about Software Designing that are followed by Software Engineering Industries. Readers can do detailed study about the Software Design Concepts like (Abstraction, Architecture, Patterns, Modularity, Information Hiding, Refinement, Functional Dependence, Cohesion, Coupling & Refactoring) plus Design Process.
Later then Design Principles are there to understand with Architectural Design, Architectural Styles, Data Centered Architecture, Data Flow Architecture, Call & Return Architecture, Object Oriented Architecture, Layered Architecture with other architectures are named at end of it.
Later then, Component Level Design is discussed. Then after UI Design & Rules of it, UI Design Models, Web Application Design, WebApp Interface Design are discussed at the end.
Comment back if you have any query about it.
In the GTU degree engineering, Software engineering is such a subject which is used to explore thinking over designing reliable softwares. In this presentation , Design concepts and principles are mentioned and explained in simplified manner.
Presentation covers all aspects about Software Designing that are followed by Software Engineering Industries. Readers can do detailed study about the Software Design Concepts like (Abstraction, Architecture, Patterns, Modularity, Information Hiding, Refinement, Functional Dependence, Cohesion, Coupling & Refactoring) plus Design Process.
Later then Design Principles are there to understand with Architectural Design, Architectural Styles, Data Centered Architecture, Data Flow Architecture, Call & Return Architecture, Object Oriented Architecture, Layered Architecture with other architectures are named at end of it.
Later then, Component Level Design is discussed. Then after UI Design & Rules of it, UI Design Models, Web Application Design, WebApp Interface Design are discussed at the end.
Comment back if you have any query about it.
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
Illustrate general good design principles in software engineering such as low coupling, high cohesion, modularity, abstraction, separation of interface and implementation. With examples.
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
Design activity & its objectives – Function Oriented and Object Oriented Design- Modularization techniques - module structure and its representation, interface and information hiding, categories, specific techniques to accommodate change, stepwise refinement, top-down and bottom-up design - Handling anomalies.
Do not be afraid of sketching. Sketching is the best way to express your ideas. There are many different ways of drawing things, and you can develop your own style by drawing a lot
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
Illustrate general good design principles in software engineering such as low coupling, high cohesion, modularity, abstraction, separation of interface and implementation. With examples.
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
Design activity & its objectives – Function Oriented and Object Oriented Design- Modularization techniques - module structure and its representation, interface and information hiding, categories, specific techniques to accommodate change, stepwise refinement, top-down and bottom-up design - Handling anomalies.
Do not be afraid of sketching. Sketching is the best way to express your ideas. There are many different ways of drawing things, and you can develop your own style by drawing a lot
Prepared by,
Anindya Sundar Paul
CSE, University of Dhaka
Md. Sadun Haq
CSE, University of Dhaka
(This isn't exactly how it was presented. The actual one contains animations. But since slideshare doesn't support that, it had to uploaded as a flat PDF. Also due to the font being unique, the texts are not showing up correctly!)
Engineering drawing is a medium for communication between various people involved in the design and manufacturing process of machines, buildings, vehicles or any other stuff. Here in this presentation, we show how drawing has gone through its development as an engineering discipline.
A brief history of graphic arts using videos from United Streaming. As we transition from the past to the future, what will the next big milestone in history be?
Overview of C.R.A.P. design principles (Contrast, Repetition, Alignment, and Proximity), and the elements used to execute those principles (line, color, shape, scale, texture, and space) for beginners.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
2. 2
Design Concepts and PrinciplesDesign Concepts and Principles
The designer's goal is to produce a model or
representation of an entity that will later be
built.
There are two major phases to any design
process: diversification and convergence.
Diversification is the acquisition of a repertoire
of alternatives, the raw material of design:
components, component solutions, and
knowledge, all contained in catalogs,
textbooks, and the mind.
3. 3
Design Concepts and PrinciplesDesign Concepts and Principles
During convergence, the designer chooses
and combines appropriate elements from
this repertoire to meet the design objectives,
as
stated in the requirements document and as
agreed to by the customer.
The second phase is the gradual elimination
of all but one particular configuration of
components, and thus the creation of the
final product.
4. 4
Design Concepts and PrinciplesDesign Concepts and Principles
What is it?
Design is a meaningful engineering representation
of something that is to be built.
It can be traced to a customer’s requirements and
at the same time assessed for quality against a
set of predefined criteria for “good” design.
In the software engineering context, design focuses
on
four major areas of concern: data, architecture,
interfaces, and components.
5. 5
Design Concepts and PrinciplesDesign Concepts and Principles
Who does it?
Software engineers design computer based systems,
but the skills required at each level of design work are
different.
At the data and architectural level, design focuses on
patterns as they apply to the application to be built.
At the interface level, human ergonomics often
dictate our design approach.
At the component level, a “programming approach”
leads us to effective data and procedural designs.
6. 6
Design Concepts and PrinciplesDesign Concepts and Principles
Why is it important?
You wouldn’t attempt to build
a house without a blueprint, would you? You’d
risk confusion, errors, a floor plan that didn’t make
sense, windows and doors in the wrong place . .
. a mess.
Computer software is considerably more
complex than a house; hence, we need a blueprint—
the design.
7. 7
Design Concepts and PrinciplesDesign Concepts and Principles
What are the steps?
Design begins with the requirements model.
We work to transform this model
into four levels of design detail:
the data structure the system architecture, the
interface representation, and the component
level detail.
During each design activity, we apply basic
concepts and principles that lead to high
quality
8. 8
Design Concepts and PrinciplesDesign Concepts and Principles
What is the work product?
Ultimately, a Design Specification is
produced.
The specification is composed
of the design models that describe data,
architecture, interfaces, and components.
Each is a work product of the design process
9. 9
Design Concepts and PrinciplesDesign Concepts and Principles
How do I ensure that I’ve done it right?
At each stage, software design work
products are reviewed for clarity,
correctness, completness, and consistency
with the requirements and with one another.
10. 10
Design PrinciplesDesign Principles
The design process should not suffer from ‘tunnel vision.’The design process should not suffer from ‘tunnel vision.’
The design should be traceable to the analysis model.The design should be traceable to the analysis model.
The design should not reinvent the wheel.The design should not reinvent the wheel.
The design should “minimize the intellectual distance” [DAV95] between theThe design should “minimize the intellectual distance” [DAV95] between the
software and the problem as it exists in the real world.software and the problem as it exists in the real world.
The design should exhibit uniformity and integration.The design should exhibit uniformity and integration.
The design should be structured to accommodate change.The design should be structured to accommodate change.
The design should be structured to degrade gently, even when aberrantThe design should be structured to degrade gently, even when aberrant
data, events, or operating conditions are encountered.data, events, or operating conditions are encountered.
Design is not coding, coding is not design.Design is not coding, coding is not design.
The design should be assessed for quality as it is being created, not after theThe design should be assessed for quality as it is being created, not after the
fact.fact.
The design should be reviewed to minimize conceptual (semantic) errors.The design should be reviewed to minimize conceptual (semantic) errors.
From Davis [DAV95]
11. 11
FundamentalFundamental
ConceptsConceptsabstractionabstraction—data, procedure, control—data, procedure, control
refinementrefinement—elaboration of detail for all—elaboration of detail for all
abstractionsabstractions
modularitymodularity—compartmentalization of data and—compartmentalization of data and
functionfunction
architecturearchitecture—overall structure of the software—overall structure of the software
Structural propertiesStructural properties
Extra-structural propertiesExtra-structural properties
Styles and patternsStyles and patterns
procedureprocedure—the algorithms that achieve function—the algorithms that achieve function
hidinghiding—controlled interfaces—controlled interfaces
14. 14
StepwiseStepwise
RefinementRefinementopen
walk to door;
reach for knob;
open door;
walk through;
close door.
repeat until door opens
turn knob clockwise;
if knob doesn't turn, then
take key out;
find correct key;
insert in lock;
endif
pull/push door
move out of way;
end repeat
16. 16
ModularModular
DesignDesign
Let C(x) be a function that defines the perceived
complexity of a problem x, and
E(x) be a function that defines the effort (in time)
required to solve a problem x. Fortwo problems, p1
and p2, if
C(p1) > C(p2)
it follows that
E(p1) > E(p2)
As a general case, this result is intuitively obvious. It
does take more time to solve a difficult problem.
17. 17
ModularModular
DesignDesign
Another interesting characteristic has been uncovered
through experimentation in human problem solving. That is,
C(p1 + p2) > C(p1) + C(p2)
Expression implies that the perceived complexity of a
problem that combines p1 and p2 is greater than the
perceived complexity when each problem is considered
separately.
it follows that
E(p1 + p2) > E(p1) + E(p2)
This leads to a "divide and conquer" conclusion—it's easier to
solve a complex problem when you break it into
manageable pieces. The result expressed in Expression has
important implications with regard to modularity and
software. It is, in fact, an argument for modularity.
18. 18
Modularity: Trade-offsModularity: Trade-offs
What is the "right" number of modulesWhat is the "right" number of modules
for a specific software design?for a specific software design?
optimal numberoptimal number
of modulesof modules
cost ofcost of
softwaresoftware
number of modulesnumber of modules
modulemodule
integrationintegration
costcost
module development costmodule development cost
19. 19
Criteria that enable us
to evaluate a design
method
Modular decomposability. If a design method provides
a systematic mechanism for decomposing the problem
into subproblems, it will reduce the complexity of the
overall problem, thereby achieving an effective
modular
solution.
Modular composability. If a design method enables
existing (reusable) design components to be assembled
into a new system, it will yield a modular solution that
does not reinvent the wheel.
20. 20
Criteria that enable us
to evaluate a design
method
Modular understandability. If a module can be understood
as a standalone unit (without reference to other modules), it
will be easier to build and easier to change.
Modular continuity. If small changes to the system
requirements result in changes to individual modules, rather
than systemwide changes, the impact of change-induced
side effects will be minimized.
Modular protection. If an aberrant condition occurs within a
module and its effects are constrained within that module,
the impact of error-induced side effects will be minimized.
21. 21
ArchitecturArchitectur
ee““The overall structure of the software andThe overall structure of the software and
the ways in which that structure providesthe ways in which that structure provides
conceptual integrity for a system.”conceptual integrity for a system.”
[SHA95a][SHA95a]Structural properties.Structural properties. This aspect of the architectural designThis aspect of the architectural design
representation defines the components of a system (e.g., modules,representation defines the components of a system (e.g., modules,
objects, filters) and the manner in which those components areobjects, filters) and the manner in which those components are
packaged and interact with one another. For example, objects arepackaged and interact with one another. For example, objects are
packaged to encapsulate both data and the processing thatpackaged to encapsulate both data and the processing that
manipulates the data and interact via the invocation of methods .manipulates the data and interact via the invocation of methods .
Extra-functional properties.Extra-functional properties. The architectural design descriptionThe architectural design description
should address how the design architecture achieves requirementsshould address how the design architecture achieves requirements
for performance, capacity, reliability, security, adaptability, andfor performance, capacity, reliability, security, adaptability, and
other system characteristics.other system characteristics.
Families of related systems.Families of related systems. The architectural design should drawThe architectural design should draw
upon repeatable patterns that are commonly encountered in theupon repeatable patterns that are commonly encountered in the
design of families of similar systems. In essence, the design shoulddesign of families of similar systems. In essence, the design should
have the ability to reuse architectural building blocks.have the ability to reuse architectural building blocks.
22. 22
Control Hierarchy
depth and width provide an indication of the
number of levels of control and overall span
of control, respectively.
Fan-out is a measure of the number of
modules that are directly controlled by
another module.
Fan-in indicates how many modules
directly control a given module
23. 23
Control Hierarchy
The control hierarchy also represents two subtly
different characteristics of the software architecture:
visibility and connectivity.
Visibility indicates the set of program components that
may be invoked or used as data by a given
component, even when this is accomplished
indirectly.
Connectivity indicates the set of components that are
directly invoked or used as data by a given
component
24. 24
Module YModule X Module Q Module R
MODULE D MODULE E MODULE GMODULE CMODULE B MODULE F
Module M Module N
Module S Module TModule K Module L
EXECUTIVEEXECUTIVE
Depth
Breadth
Fan out
Fan in
MODULE A
26. 26
Data StructureData Structure
Data structure is a representation of the
logical relationship among individual
elements of data. Because the structure of
information will invariably affect the final
procedural design, data structure is as
important as program structure to the
representation of software architecture.
27. 27
Software ProcedureSoftware Procedure
Program structure defines control hierarchy
without regard to the sequence of processing
and decisions. Software procedure focuses
on the processing details of each
module individually. Procedure must provide
a precise specification of processing,
including sequence of events, exact
decision points, repetitive operations, and
even
data organization and structure.
29. 29
Why Information Hiding?Why Information Hiding?
reduces the likelihood of “side effects”reduces the likelihood of “side effects”
limits the global impact of local designlimits the global impact of local design
decisionsdecisions
emphasizes communication throughemphasizes communication through
controlled interfacescontrolled interfaces
discourages the use of global datadiscourages the use of global data
leads to encapsulation—an attribute ofleads to encapsulation—an attribute of
high quality designhigh quality design
results in higher quality softwareresults in higher quality software