SlideShare une entreprise Scribd logo
1  sur  40
Debre Tabor University
Faculty of Technology
Department of Information Technology
Event-Driven Programming
Prepared By: Gezahegn M.
Email:-gezielove@gmail.com
Saturday, May 7, 2022
DTU, Ethiopia
Chapter One:
Introduction
What is software development?
Software development refers to a set of activities dedicated to the process of creating, designing, deploying and
supporting software.
Software itself is the set of instructions or programs that tell a computer what to do. It is independent of hardware
and makes computers programmable.
Cont.
System software to provide core functions such as operating systems, disk management, utilities, hardware
management, and other operational necessities.
Programming software to give programmers tools such as text editors, compilers, linkers, debuggers, and other
tools to create code.
Application software to help users perform tasks.
Programmers, or coders, write source code to program computers for specific tasks like merging databases,
processing online orders, routing communications, conducting searches, or displaying text and graphics.
Software developers have a less formal role than engineers and can be closely involved with specific project
areas such like writing code.
Steps in the software development process
Developing software typically
involves the following steps:
Selecting a methodology to establish
a framework in which the steps of
software development are applied
Methodologies can include Agile
development, DevOps, Rapid
Application Development , Scaled
Agile Framework , Waterfall and
others
The steps of the software
development process fit
into application lifecycle
management
The IBM Engineering Management
solution is a superset of ALM that
enables the management of parallel
mechanical, electrical, and software
development
Steps in the software development process
Requirements analysis and specification, Maintenance and support Software development process steps can
be grouped into the phases of the lifecycle, but the importance of the lifecycle is that it recycles to enable
continuous improvement.
Q. Understand why developers use
Agile vs Waterfall processes?
Why is software development important?
1. Promote your business:-Software Development takes your business to new heights
incorporation. It helps promote and spread your business as it enables your brand to be
visible for everyone and almost anywhere through a computer smartphone.
2. Improve sales and services:- It is important to know how your customers think about
your brand and products.
3. Direct Communication:- Software development is the only thing that can help you
have direct communication with the clients. It is the fastest way to increase your brand
awareness.
4. Increase Customers Engagement:-you can boost the customer’ engagement with the
help of a mobile app or website and make them come back to you and not to your rival.
5. Helps in marketing your business:-Software development helps to apply on the go
marketing of your business thus promoting your products and service at any places
without any additional money spent or extra time required.
Key features of effective software development
Using software development to
differentiate brands and gain competitive
advantage requires proficiency with the
techniques and technologies that can
accelerate software deployment, quality,
and efficacy
Artificial intelligence : AI enables
software to emulate human decision-
making and learning
Neural networks, machine learning,
natural language processing, and cognitive
capabilities present developers and
businesses with the opportunity to offer
products and services that disrupt
marketplaces and leap ahead of the
competition
IBM Watson offers developers a way to
connect with and use artificial intelligence
services as part of their applications
through application programming
interfaces or APIs
Key features of effective software development
Cloud-native development: Cloud-native development is a way of building
applications to exploit cloud environments
A cloud-native application consists of discrete, reusable components known as
micro services that are designed to integrate into any cloud environment
Block chain: Block chain is a secure, digitally linked ledger that eliminates
the cost and vulnerability introduced by parties like banks, regulatory bodies,
and other intermediaries
Types of Software Development
THERE ARE MANY DIFFERENT TYPES
OF SOFTWARE DEVELOPMENT
OFTEN, THE VARIOUS KINDS OF
DEVELOPERS WORK TOGETHER TO
BRING YOUR PROJECT TO FRUITION
SOME OF THEM OVERLAP AND CAN
BE FOUND IN A SINGLE
PROFESSIONAL, WHILE OTHERS
REQUIRE A DISTINCT SKILL SET
1. Frontend Development
FRONTEND DEVELOPERS WORK ON THE PART OF
THE PRODUCT WITH WHICH THE USER INTERACTS
THEY ARE PRIMARILY CONCERNED WITH THE USER
INTERFACE
THEY MUST BE HIGHLY PROFICIENT IN
PROGRAMMING AND WORK CLOSELY WITH THE
BACKEND DEVELOPERS TO ENSURE THAT THE TWO
ASPECTS OF THE PRODUCT FUNCTION COHESIVELY
2. Backend Development
In contrast, a backend developer works with the part of the
product users can’t see — the back end
This professional builds the infrastructure that powers the
website, app, or program, focusing on functionality, integration
of systems, and core logic
They will also deal with the complex, underlying structure,
ensuring strong performance, scalability, and security
3. Full-Stack
Development
A full-stack developer works on all
aspects of the product, including
both the front and back ends
4. Desktop Development
Desktop developers exclusively create applications that run on a
desktop operating system, such as Windows, Mac, or Linux
This is opposed to developers that create applications that run
on mobile, tablet, or other devices
This type of specialization was more ubiquitous in the early days
of programming, back before the days of mobile applications
5. Web Development
WEB DEVELOPMENT IS THE PROCESS OF
BUILDING WEB APPLICATIONS
THIS IS DIFFERENT FROM A MOBILE APP, WHICH
RUNS ON A PHONE OR TABLET AND DOESN’T
NECESSARILY REQUIRE AN INTERNET
CONNECTION TO RUN
WEB DEVELOPMENT IS AN UMBRELLA TERM
ENCOMPASSING BOTH FRONT AND BACKEND
DEVELOPMENT
6. Database Development
Not to be confused with a database administrator, who typically works with daily database upkeep and
troubleshooting and implements the system, a database developer is responsible for building the database,
modifying and designing existing or new programs, and ensuring that they satisfy the requirements of the
users
Sometimes, the roles of database administrator and developer do overlap — this depends on the needs of
the client or employer
7. Mobile Development
As is probably obvious from the name, a mobile developer builds applications
that run natively on mobile devices, including smartphones, tablets, and
some types of smartwatches
However, many companies will work with developers who are experts in
just one
That’s because they tend to be more knowledgeable about the intricacies
of each type of development than those who dabble in both of them
since the tools, frameworks, and languages tend to be different
8. Cloud Computing
Cloud computing encompasses services, programs, and
applications that run over the cloud
Some developers specialize in cloud computing — that is, the
creation of cloud platforms
They will build cloud applications and facilitate cloud
deployment and migration, as well as manage cloud services
and provide maintenance to users
9. DevOps Engineering
DEVOPS IS A SET OF PRACTICES AND
PHILOSOPHIES THAT ARE FOCUSED ON THE
QUICK, EFFICIENT, AND CUSTOMER-CENTRIC
DELIVERY OF SOFTWARE
RELATED TO AGILE, THIS STYLE HAS BEEN
WIDELY ADOPTED BY SOFTWARE DEVELOPERS
AND TEAMS AROUND THE WORLD
DEVOPS ENGINEERS WORK WITH TEAMS THAT
PRACTICE THE PRINCIPLES
10. Security Engineering
EVERYONE KNOWS HOW
IMPORTANT SECURITY IN SOFTWARE IS IN THIS
DAY AND AGE
ETHICAL HACKERS ARE ONE EXAMPLE OF THIS
TYPE OF PROFESSIONAL
THIS IS BY NO MEANS A COMPREHENSIVE LIST
OF ALL THE TYPES OF SOFTWARE
DEVELOPMENT — THE FIELD IS WIDE AND
VARIED
Software Development Approaches
Waterfall Approach Incremental
Approach
Spiral Approach
Advertisements
The waterfall model is often also referred to as
the linear and sequential model, for the flow of
activities in this model are rather linear and
sequential as the name suggests
In this model, the software development
activities move to the next phase only after the
activities in the current phase are over
However, like is the case with a waterfall, one
cannot return to the previous stage
Incremental Approach
Determines user needs and defines the overall architecture,
but then delivers the system in a series of increments
Spiral Approach
A risk-driven controlled prototyping approach that develops prototypes early in the
development process to specifically address risk areas followed by an assessment of
prototyping results and further determination of risk areas to prototype
Prototyping continues until high-risk areas are resolved and mitigated to an
acceptable level
Appropriate for exploratory projects that are working in an unfamiliar domain or
with unproven technical approaches
What Is Rapid Application Development?
Rapid application development is an agile software development approach that
focuses more on ongoing software projects and user feedback and less on
following a strict plan
Though often mistaken for a specific model, rapid application development is
the idea that we benefit by treating our software projects like clay, rather than
steel, which is how traditional development practices treat them
In this post, we take a deep dive into RAD, examining the methodology,
reviewing its advantages and disadvantages, comparing it to agile, and
exploring the tools
RAD Methodology
Though exact practices and tools vary between specific
methods, the underlying rapid application development phases
remain the same
1. Define Requirements
Rather than making you spend months developing
specifications with users, RAD begins by defining a loose set of
requirements
2. Prototype
In this rapid application development phase, the developer’s goal is to build something that they can
demonstrate to the client
3. Absorb Feedback
WITH A RECENT PROTOTYPE PREPARED, RAD
DEVELOPERS PRESENT THEIR WORK TO THE
CLIENT OR END-USERS
THEY COLLECT FEEDBACK ON EVERYTHING
FROM INTERFACE TO FUNCTIONALITY—IT IS
HERE WHERE PRODUCT REQUIREMENTS MIGHT
COME UNDER SCRUTINY
CLIENTS MAY CHANGE THEIR MINDS OR
DISCOVER THAT SOMETHING THAT SEEMED
RIGHT ON PAPER MAKES NO SENSE IN
PRACTICE
4. Finalize Product
DURING THIS STAGE,
DEVELOPERS MAY OPTIMIZE
OR EVEN RE-ENGINEER
THEIR IMPLEMENTATION TO
IMPROVE STABILITY,
MAINTAINABILITY, AND A
THIRD WORD ENDING IN ‘-
ILITY.’ THEY MAY ALSO
SPEND THIS PHASE
CONNECTING THE BACK-END
TO PRODUCTION DATA,
WRITING THOROUGH
DOCUMENTATION, AND
DOING ANY OTHER
MAINTENANCE TASKS
REQUIRED BEFORE HANDING
THE PRODUCT OVER WITH
CONFIDENCE
BOTH BOEHM’S SPIRAL
MODEL AND JAMES
MARTIN’S RAD MODEL MAKE
USE OF THESE FOUR STEPS
TO HELP DEVELOPMENT
TEAMS REDUCE RISK AND
BUILD EXCELLENT PRODUCTS
HOWEVER, RAPID APP
DEVELOPMENT HAS ITS
DRAWBACKS AS WELL
What is rapid application development, and
what are its benefits?
Enhanced flexibility and
adaptability as
developers can make
adjustments quickly
during the development
process
Quick iterations that
reduce development
time and speed up
delivery
Encouragement of code
reuse, which means less
manual coding, less room
for errors, and shorter
testing times
Increased customer
satisfaction due to high-
level collaboration and
coordination between
stakeholders
Better risk management
as stakeholders can
discuss and address code
vulnerabilities while
keeping development
processes going
Fewer surprises as, unlike
the Waterfall method,
RAD includes integrations
early on in the software
development process
5 steps or
phases in RAD
Step 1. Define and finalize
project requirements
During this step, stakeholders sit together to define and finalize
project requirements such as project goals, expectations,
timelines, and budget
Step 2: Begin building prototypes
As soon as you finish scoping the project, you can begin
development
Designers and developers will work closely with clients to create and
improve upon working prototypes until the final product is ready
Step 3: Gather user
feedback
In this step, prototypes and beta systems are converted into
working models
Step 4: Test, test, test
This step requires you to test your software product and ensure
that all its moving parts work together as per client expectations
Continue incorporating client feedback as the code is tested and
retested for its smooth functioning
Step 5: Present your system
THIS IS THE FINAL STEP BEFORE THE
FINISHED PRODUCT GOES TO LAUNCH
IT INVOLVES DATA CONVERSION AND
USER TRAINING
Questions!!
Thank You!

Contenu connexe

Similaire à Introducton of event-driven edited.pptx

Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfchristiemarie4
 
Software Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSoftware Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSeasiaInfotech2
 
Software Development 101 A Comprehensive Introduction
Software Development 101 A Comprehensive IntroductionSoftware Development 101 A Comprehensive Introduction
Software Development 101 A Comprehensive IntroductionBitCot
 
SciPy Technologies.pdf
SciPy Technologies.pdfSciPy Technologies.pdf
SciPy Technologies.pdfshanscipy
 
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdfMaximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdfJamesEddie2
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdfPriyajit Sen
 
application development complete knoeledge
application development complete knoeledgeapplication development complete knoeledge
application development complete knoeledgesthlmteachpartner
 
Comprehensive Guide on Software Development Process.pdf
Comprehensive Guide on Software Development Process.pdfComprehensive Guide on Software Development Process.pdf
Comprehensive Guide on Software Development Process.pdfSmith Daniel
 
Cross-Platform App Development
Cross-Platform App DevelopmentCross-Platform App Development
Cross-Platform App DevelopmentTechAhead Corp
 
Mobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdfMobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdfPolyxer Systems
 
Scube's mobile application development
Scube's mobile application developmentScube's mobile application development
Scube's mobile application developmentarti yadav
 
S cube's mobile application development
S cube's mobile application developmentS cube's mobile application development
S cube's mobile application developmentarti yadav
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxYaseenNazir3
 
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobile
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobileMobilizing Enterprise Data - Strategies to succeed in enterprise mobile
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobileAlex Zaltsman
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVYamunaP6
 
Mobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key DifferencesMobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key DifferencesPolyxer Systems
 
14 Software Development Trends to Follow in 2022
14 Software Development Trends to Follow in 202214 Software Development Trends to Follow in 2022
14 Software Development Trends to Follow in 202275waytechnologies
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering OverviewPrachi Sasankar
 
Mobilizing Enterprise Data for mobile apps and platforms
Mobilizing Enterprise Data for mobile apps and platformsMobilizing Enterprise Data for mobile apps and platforms
Mobilizing Enterprise Data for mobile apps and platformsAlex Zaltsman
 

Similaire à Introducton of event-driven edited.pptx (20)

Software Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdfSoftware Development Today Everything You Need To Know.pdf
Software Development Today Everything You Need To Know.pdf
 
Software Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSoftware Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdf
 
Software Development 101 A Comprehensive Introduction
Software Development 101 A Comprehensive IntroductionSoftware Development 101 A Comprehensive Introduction
Software Development 101 A Comprehensive Introduction
 
SciPy Technologies.pdf
SciPy Technologies.pdfSciPy Technologies.pdf
SciPy Technologies.pdf
 
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdfMaximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
 
Software Engineering Basics.pdf
Software Engineering Basics.pdfSoftware Engineering Basics.pdf
Software Engineering Basics.pdf
 
application development complete knoeledge
application development complete knoeledgeapplication development complete knoeledge
application development complete knoeledge
 
Comprehensive Guide on Software Development Process.pdf
Comprehensive Guide on Software Development Process.pdfComprehensive Guide on Software Development Process.pdf
Comprehensive Guide on Software Development Process.pdf
 
Cross-Platform App Development
Cross-Platform App DevelopmentCross-Platform App Development
Cross-Platform App Development
 
Mobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdfMobile App Development V_S Software Development_ 7 Key Differences.pdf
Mobile App Development V_S Software Development_ 7 Key Differences.pdf
 
Scube's mobile application development
Scube's mobile application developmentScube's mobile application development
Scube's mobile application development
 
S cube's mobile application development
S cube's mobile application developmentS cube's mobile application development
S cube's mobile application development
 
Lecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptxLecture-1,2-Introduction to SE.pptx
Lecture-1,2-Introduction to SE.pptx
 
DevOps
DevOps DevOps
DevOps
 
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobile
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobileMobilizing Enterprise Data - Strategies to succeed in enterprise mobile
Mobilizing Enterprise Data - Strategies to succeed in enterprise mobile
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IV
 
Mobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key DifferencesMobile App Development Vs Software Development 7 Key Differences
Mobile App Development Vs Software Development 7 Key Differences
 
14 Software Development Trends to Follow in 2022
14 Software Development Trends to Follow in 202214 Software Development Trends to Follow in 2022
14 Software Development Trends to Follow in 2022
 
Software Engineering Overview
Software Engineering OverviewSoftware Engineering Overview
Software Engineering Overview
 
Mobilizing Enterprise Data for mobile apps and platforms
Mobilizing Enterprise Data for mobile apps and platformsMobilizing Enterprise Data for mobile apps and platforms
Mobilizing Enterprise Data for mobile apps and platforms
 

Dernier

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Dernier (20)

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

Introducton of event-driven edited.pptx

  • 1. Debre Tabor University Faculty of Technology Department of Information Technology Event-Driven Programming Prepared By: Gezahegn M. Email:-gezielove@gmail.com Saturday, May 7, 2022 DTU, Ethiopia
  • 3. What is software development? Software development refers to a set of activities dedicated to the process of creating, designing, deploying and supporting software. Software itself is the set of instructions or programs that tell a computer what to do. It is independent of hardware and makes computers programmable.
  • 4. Cont. System software to provide core functions such as operating systems, disk management, utilities, hardware management, and other operational necessities. Programming software to give programmers tools such as text editors, compilers, linkers, debuggers, and other tools to create code. Application software to help users perform tasks. Programmers, or coders, write source code to program computers for specific tasks like merging databases, processing online orders, routing communications, conducting searches, or displaying text and graphics. Software developers have a less formal role than engineers and can be closely involved with specific project areas such like writing code.
  • 5. Steps in the software development process Developing software typically involves the following steps: Selecting a methodology to establish a framework in which the steps of software development are applied Methodologies can include Agile development, DevOps, Rapid Application Development , Scaled Agile Framework , Waterfall and others The steps of the software development process fit into application lifecycle management The IBM Engineering Management solution is a superset of ALM that enables the management of parallel mechanical, electrical, and software development
  • 6. Steps in the software development process Requirements analysis and specification, Maintenance and support Software development process steps can be grouped into the phases of the lifecycle, but the importance of the lifecycle is that it recycles to enable continuous improvement.
  • 7. Q. Understand why developers use Agile vs Waterfall processes?
  • 8. Why is software development important? 1. Promote your business:-Software Development takes your business to new heights incorporation. It helps promote and spread your business as it enables your brand to be visible for everyone and almost anywhere through a computer smartphone. 2. Improve sales and services:- It is important to know how your customers think about your brand and products. 3. Direct Communication:- Software development is the only thing that can help you have direct communication with the clients. It is the fastest way to increase your brand awareness. 4. Increase Customers Engagement:-you can boost the customer’ engagement with the help of a mobile app or website and make them come back to you and not to your rival. 5. Helps in marketing your business:-Software development helps to apply on the go marketing of your business thus promoting your products and service at any places without any additional money spent or extra time required.
  • 9. Key features of effective software development Using software development to differentiate brands and gain competitive advantage requires proficiency with the techniques and technologies that can accelerate software deployment, quality, and efficacy Artificial intelligence : AI enables software to emulate human decision- making and learning Neural networks, machine learning, natural language processing, and cognitive capabilities present developers and businesses with the opportunity to offer products and services that disrupt marketplaces and leap ahead of the competition IBM Watson offers developers a way to connect with and use artificial intelligence services as part of their applications through application programming interfaces or APIs
  • 10. Key features of effective software development Cloud-native development: Cloud-native development is a way of building applications to exploit cloud environments A cloud-native application consists of discrete, reusable components known as micro services that are designed to integrate into any cloud environment Block chain: Block chain is a secure, digitally linked ledger that eliminates the cost and vulnerability introduced by parties like banks, regulatory bodies, and other intermediaries
  • 11. Types of Software Development THERE ARE MANY DIFFERENT TYPES OF SOFTWARE DEVELOPMENT OFTEN, THE VARIOUS KINDS OF DEVELOPERS WORK TOGETHER TO BRING YOUR PROJECT TO FRUITION SOME OF THEM OVERLAP AND CAN BE FOUND IN A SINGLE PROFESSIONAL, WHILE OTHERS REQUIRE A DISTINCT SKILL SET
  • 12. 1. Frontend Development FRONTEND DEVELOPERS WORK ON THE PART OF THE PRODUCT WITH WHICH THE USER INTERACTS THEY ARE PRIMARILY CONCERNED WITH THE USER INTERFACE THEY MUST BE HIGHLY PROFICIENT IN PROGRAMMING AND WORK CLOSELY WITH THE BACKEND DEVELOPERS TO ENSURE THAT THE TWO ASPECTS OF THE PRODUCT FUNCTION COHESIVELY
  • 13. 2. Backend Development In contrast, a backend developer works with the part of the product users can’t see — the back end This professional builds the infrastructure that powers the website, app, or program, focusing on functionality, integration of systems, and core logic They will also deal with the complex, underlying structure, ensuring strong performance, scalability, and security
  • 14. 3. Full-Stack Development A full-stack developer works on all aspects of the product, including both the front and back ends
  • 15. 4. Desktop Development Desktop developers exclusively create applications that run on a desktop operating system, such as Windows, Mac, or Linux This is opposed to developers that create applications that run on mobile, tablet, or other devices This type of specialization was more ubiquitous in the early days of programming, back before the days of mobile applications
  • 16. 5. Web Development WEB DEVELOPMENT IS THE PROCESS OF BUILDING WEB APPLICATIONS THIS IS DIFFERENT FROM A MOBILE APP, WHICH RUNS ON A PHONE OR TABLET AND DOESN’T NECESSARILY REQUIRE AN INTERNET CONNECTION TO RUN WEB DEVELOPMENT IS AN UMBRELLA TERM ENCOMPASSING BOTH FRONT AND BACKEND DEVELOPMENT
  • 17. 6. Database Development Not to be confused with a database administrator, who typically works with daily database upkeep and troubleshooting and implements the system, a database developer is responsible for building the database, modifying and designing existing or new programs, and ensuring that they satisfy the requirements of the users Sometimes, the roles of database administrator and developer do overlap — this depends on the needs of the client or employer
  • 18. 7. Mobile Development As is probably obvious from the name, a mobile developer builds applications that run natively on mobile devices, including smartphones, tablets, and some types of smartwatches However, many companies will work with developers who are experts in just one That’s because they tend to be more knowledgeable about the intricacies of each type of development than those who dabble in both of them since the tools, frameworks, and languages tend to be different
  • 19. 8. Cloud Computing Cloud computing encompasses services, programs, and applications that run over the cloud Some developers specialize in cloud computing — that is, the creation of cloud platforms They will build cloud applications and facilitate cloud deployment and migration, as well as manage cloud services and provide maintenance to users
  • 20. 9. DevOps Engineering DEVOPS IS A SET OF PRACTICES AND PHILOSOPHIES THAT ARE FOCUSED ON THE QUICK, EFFICIENT, AND CUSTOMER-CENTRIC DELIVERY OF SOFTWARE RELATED TO AGILE, THIS STYLE HAS BEEN WIDELY ADOPTED BY SOFTWARE DEVELOPERS AND TEAMS AROUND THE WORLD DEVOPS ENGINEERS WORK WITH TEAMS THAT PRACTICE THE PRINCIPLES
  • 21. 10. Security Engineering EVERYONE KNOWS HOW IMPORTANT SECURITY IN SOFTWARE IS IN THIS DAY AND AGE ETHICAL HACKERS ARE ONE EXAMPLE OF THIS TYPE OF PROFESSIONAL THIS IS BY NO MEANS A COMPREHENSIVE LIST OF ALL THE TYPES OF SOFTWARE DEVELOPMENT — THE FIELD IS WIDE AND VARIED
  • 22. Software Development Approaches Waterfall Approach Incremental Approach Spiral Approach
  • 23. Advertisements The waterfall model is often also referred to as the linear and sequential model, for the flow of activities in this model are rather linear and sequential as the name suggests In this model, the software development activities move to the next phase only after the activities in the current phase are over However, like is the case with a waterfall, one cannot return to the previous stage
  • 24. Incremental Approach Determines user needs and defines the overall architecture, but then delivers the system in a series of increments
  • 25. Spiral Approach A risk-driven controlled prototyping approach that develops prototypes early in the development process to specifically address risk areas followed by an assessment of prototyping results and further determination of risk areas to prototype Prototyping continues until high-risk areas are resolved and mitigated to an acceptable level Appropriate for exploratory projects that are working in an unfamiliar domain or with unproven technical approaches
  • 26. What Is Rapid Application Development? Rapid application development is an agile software development approach that focuses more on ongoing software projects and user feedback and less on following a strict plan Though often mistaken for a specific model, rapid application development is the idea that we benefit by treating our software projects like clay, rather than steel, which is how traditional development practices treat them In this post, we take a deep dive into RAD, examining the methodology, reviewing its advantages and disadvantages, comparing it to agile, and exploring the tools
  • 27. RAD Methodology Though exact practices and tools vary between specific methods, the underlying rapid application development phases remain the same
  • 28. 1. Define Requirements Rather than making you spend months developing specifications with users, RAD begins by defining a loose set of requirements
  • 29. 2. Prototype In this rapid application development phase, the developer’s goal is to build something that they can demonstrate to the client
  • 30. 3. Absorb Feedback WITH A RECENT PROTOTYPE PREPARED, RAD DEVELOPERS PRESENT THEIR WORK TO THE CLIENT OR END-USERS THEY COLLECT FEEDBACK ON EVERYTHING FROM INTERFACE TO FUNCTIONALITY—IT IS HERE WHERE PRODUCT REQUIREMENTS MIGHT COME UNDER SCRUTINY CLIENTS MAY CHANGE THEIR MINDS OR DISCOVER THAT SOMETHING THAT SEEMED RIGHT ON PAPER MAKES NO SENSE IN PRACTICE
  • 31. 4. Finalize Product DURING THIS STAGE, DEVELOPERS MAY OPTIMIZE OR EVEN RE-ENGINEER THEIR IMPLEMENTATION TO IMPROVE STABILITY, MAINTAINABILITY, AND A THIRD WORD ENDING IN ‘- ILITY.’ THEY MAY ALSO SPEND THIS PHASE CONNECTING THE BACK-END TO PRODUCTION DATA, WRITING THOROUGH DOCUMENTATION, AND DOING ANY OTHER MAINTENANCE TASKS REQUIRED BEFORE HANDING THE PRODUCT OVER WITH CONFIDENCE BOTH BOEHM’S SPIRAL MODEL AND JAMES MARTIN’S RAD MODEL MAKE USE OF THESE FOUR STEPS TO HELP DEVELOPMENT TEAMS REDUCE RISK AND BUILD EXCELLENT PRODUCTS HOWEVER, RAPID APP DEVELOPMENT HAS ITS DRAWBACKS AS WELL
  • 32. What is rapid application development, and what are its benefits? Enhanced flexibility and adaptability as developers can make adjustments quickly during the development process Quick iterations that reduce development time and speed up delivery Encouragement of code reuse, which means less manual coding, less room for errors, and shorter testing times Increased customer satisfaction due to high- level collaboration and coordination between stakeholders Better risk management as stakeholders can discuss and address code vulnerabilities while keeping development processes going Fewer surprises as, unlike the Waterfall method, RAD includes integrations early on in the software development process
  • 34. Step 1. Define and finalize project requirements During this step, stakeholders sit together to define and finalize project requirements such as project goals, expectations, timelines, and budget
  • 35. Step 2: Begin building prototypes As soon as you finish scoping the project, you can begin development Designers and developers will work closely with clients to create and improve upon working prototypes until the final product is ready
  • 36. Step 3: Gather user feedback In this step, prototypes and beta systems are converted into working models
  • 37. Step 4: Test, test, test This step requires you to test your software product and ensure that all its moving parts work together as per client expectations Continue incorporating client feedback as the code is tested and retested for its smooth functioning
  • 38. Step 5: Present your system THIS IS THE FINAL STEP BEFORE THE FINISHED PRODUCT GOES TO LAUNCH IT INVOLVES DATA CONVERSION AND USER TRAINING

Notes de l'éditeur

  1. DevOps (a portmanteau of “development” and “operations”) is the combination of practices and tools designed to increase an organization’s ability to deliver applications and services faster than traditional software development processes. Application Lifecycle management:-coordination of development activates to produce software application or component and supports the life cycle managements of assets and their relationships.