The document provides an overview of event-driven programming and the software development process. It discusses different types of software including system software, programming software, and application software. It also summarizes key steps in software development like requirements analysis, design, implementation, testing, deployment and maintenance. Different software development approaches like waterfall, incremental and spiral are compared. Rapid application development focuses on iterative development and user feedback. The 5 main steps of RAD are defined as: 1) defining requirements, 2) building prototypes, 3) gathering user feedback, 4) testing, and 5) presenting the final system.
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.
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
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
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
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
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.