Event-Driven Chapter - 1

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 33

Chapter One

Introduction to EDP

Event Driven Programming Jun 21, 2024


Jun 21, 2024
Introduction to Software Development
What is Software?
 Is a computer program used to perform a certain task.
 products may be developed for a particular customer or a general
market.
 Software products may be
 Generic - developed to be sold to a range of different customers.

Event Driven Programming


 Custom - developed for a single customer according to their
specification
What is Software Development?
 Is the process of creating new software solutions or modifying
existing software solutions
 It includes all that is involved between the conception of the
desired software through to the final manifestation of the software,
ideally in a planned and structured process 2
Cont’d…

Jun 21, 2024


Software Engineering:- is
 concerned with theories, methods and tools for
professional software development.
 an engineering discipline which is concerned with all
aspects of software production.

Event Driven Programming


 concerned with cost-effective software development.
 Software engineers should adopt a systematic and
organised approach to their work and use appropriate tools
and techniques depending on the problem to be solved, the
development constraints and the resources available
3
Cont’d…

Jun 21, 2024


Attributes of good software
 software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and usable.
 Maintainability - must evolve to meet changing needs.

Event Driven Programming


 Dependability - must be trustworthy.
 Efficiency - should not make wasteful use of system resources
 Usability - must be usable by the users for which it was
designed.

4
Cont’d…

Jun 21, 2024


What is a Software Process (software life cycle)?
 Coherent sets of activities for specifying, designing, implementing and
testing software systems
 Generic activities in all software processes are:
 Specification - what the system should do and its development
constraints.
 Development - production of the software system

Event Driven Programming


 Design and implementation of the software.
 Validation - checking that the software is what the customer wants
 To ensure that the software does what the customer requires.
 Evolution - changing the software in response to changing demands.
 Adaptation and modification of the software to cope with changing
customer and market requirements.
 Generic activities may be organized in different ways and described in
different levels of detail for different types of software
5
Software Development Approaches

Jun 21, 2024


 Software can be designed and developed in many different
ways.
 The approach taken to design & develop a software package can
vary from the very simple, limited planning approach to a very
detailed, formal and structured approach
 The commonly used approaches are:-

Event Driven Programming


 Structured Approach
 JAD Approach
 Prototyping Approach
 Rapid Application Development Approach
 Method:-
 which approach and language is best?
 what happens if you get it wrong?
6
Cont’d…

Jun 21, 2024


1. Structured
 involves the use of the program development cycle:
 Defining the problem – necessary to understand the problem in as much
detail as possible.
 Planning the solution – involves determining data types, developing
algorithms & diagrams, whether ‘start from scratch approach' needed,
determine the programming language used

Event Driven Programming


 Building the solution – converting the specifications and algorithms
developed during the planning stage into code.
 Checking the solution – check that is operates correctly.
 Modifying the solution – may be necessary if errors are detected, or the
users' feedback means that the program doesn't meet their needs, or the
underlying processes change, or the existing system changes, etc.
 Accurate documentation is extremely important because the modifications
may be made by programmer who were not part of the original team.
7
Cont’d…

Jun 21, 2024


 Used when there is a high budget, where there is a long time period
to complete the project, and is where it is preferable for the project
to be completed by teams.
 It is characterized by distinct stages, with each stage being
completed before moving onto the next stage
 Characteristics

Event Driven Programming


 Long time periods from start to implementation of the final product
(can be many months or even years.)
 used for large-scale projects, or difficult projects, or new concept
projects
 associated with large budgets and large organizations
 involves a number of different personnel (analysts, designers,
programmers, users and management)
 Eg. Operating Systems 8
Cont’d…

Structured Approach

Event Driven Programming Jun 21, 2024


Cont’d…

Jun 21, 2024


2. Prototyping
 Is the process of designing and building a scaled down version of
the desired information system.
 activity of creating prototypes of software applications, i.e.,
incomplete versions of the software program being developed.
 developer makes a small scale model of the proposed program so

Event Driven Programming


that users can give feedback and ensure it meets their needs.
 Prototypes are useful in seeking user reactions, suggestions,
innovations, and revision plans before the final version of the
system is developed.
 Involves development of a working model which may then be
developed further into a fully functioning solution
10
Cont’d…

Jun 21, 2024


Initial
Requireme
nts To validate the user requirements for new software
Design
before progressing too far in the development
process, prototypes of the software system may be
Review
&
Prototy
pe
developed.
Update

Custom

Event Driven Programming


er
Evaluat
ion
Whether a low-fidelity prototype that
illustrates the look-and-feel of the design or a
high-fidelity prototype that implements part
Custome
r Developmen of the system’s functionality, approval by the
t
Satisfact
ion customer is required before full system
implementation is begun.
Test
Prototyping

Maintain
11
Cont’d…

Jun 21, 2024


 Characteristics
 Prototypes focus on what the users interacts with, the input and
output requirements only
 Prototypes are not interested in the code behind the interfaces
 It encourages end user participation
 It improves communication between programmer/s and end user/s

Event Driven Programming


 developer can develop typical screens and then quickly modify
them after user feedback
 quickly create the look and feel for the proposed/final product in
comparison to other approaches
 They typically results in a lower required budget and shorter
development time
 They are a good approach for small scale projects
12
Cont’d…

Jun 21, 2024


Advantages
 Potential for changing the system early in its development.
 Opportunity to stop development on an unworkable system.
 Possibility of developing a system that closely addresses users'
needs and expectations.

Event Driven Programming


Disadvantages
 Managing the prototyping process is difficult because of its rapid,
iterative nature.
 Requires feedback on the prototype.
 Incomplete prototypes may be regarded as complete systems.
 E.g.: Multimedia, website’s, online enquiry
13
Cont’d…

Jun 21, 2024


3. Rapid Application Development (RAD)
 Is a methodology created to radically decrease the time needed to
design and build an information system.
 Efficient and Cheaper
 Allows systems developers and end users work together from the
beginning

Event Driven Programming


 Is an object-oriented approach
 group (team-based) approach, but goes much further.
 Component based construction approach
 less emphasis on planning and more on process (Developing
instead of planning)
 lack of pre-planning generally allows software to be written much
faster, and makes it easier to change requirements
14
Cont’d…

Event Driven Programming Jun 21, 2024


15
Cont’d…

Jun 21, 2024


 Characteristics
 Extremely good approach for small scale projects
 Reuse of code is encouraged which allowing the program to be
developed quickly
 Automated tools are used to make the software
 Lacks the formal stages of other approaches
 Fast development time

Event Driven Programming


 Relatively cheap to develop; relative to Structured approach
 incorporate all parts of the development cycle, including project
management, requirement gathering, some code generation, test
documentation, evaluation, etc
 Personal (developer & end user)

16
Cont’d…

16-Sep-23
Advantages
 Systems can be developed more quickly with significant
cost savings.
Disadvantages
 May try and hurry the project too much.

Event Driven Programming


 Loosely documented.
 May not address pressing business problems.
 Potentially steep learning curve for programmers
inexperienced with RAD tools

17
Cont’d…

Jun 21, 2024


4. Joint Application Design (JAD)
 Process in which users, managers, and analysts work together for
several days in a series of intensive meetings to specify or review
system requirements.
 involves the client or end user in the design and development of an
application, through a succession of collaborative workshops called

Event Driven Programming


JAD sessions
 User Involvement
 Users have a vital stake in an information system, and they should
participate fully
 Successful systems must be user-oriented and users need to be
involved
 JAD participants should be insulated from the distraction of day-to-
day operations
18
Cont’d…

Jun 21, 2024


 Objective: to analyze the existing system, obtain user input and
expectations, and document user requirements for the new system

Event Driven Programming


19
Cont’d…

Jun 21, 2024


Advantages
 Allows key users to participate effectively.
 When properly used, JAD can result in a more accurate statement
of system requirements, a better understanding of common goals,
and a stronger commitment to the success of the new system.

Event Driven Programming


Disadvantages
 More expensive and can be cumbersome if the group is too large
relative to the size of the project.

20
Rapid Application Development

Jun 21, 2024


 a development life cycle designed to give much faster development
and higher quality results than those achieved with the traditional
life cycle.
 Because of rapidly changing business environments, businesses
have to respond to new opportunities and competition.
 RAD objective is to cut development time and expense by:

Event Driven Programming


 Involving the users in the development process.
 Using integrated CASE (computer-aided software engineering) tools.
 Using faster software development techniques.
 RAD relies on:
 Extensive user involvement
 Joint application design session
 Prototyping
 Integrated CASE tools, Code generators
21
RAD Principles & Phases

Jun 21, 2024


RAD Principles
 To delay producing detailed system design documents until often user
requirements are clear.
 To enable quality products to be developed faster, saving valuable resources.
 To compresses the step by step development of conventional methods into an
iterative process to develop a quality software

Event Driven Programming


RAD Phases - There are three broad phases to RAD:
 Requirements planning
 RAD design workshop
 Implementation (construction)

22
RAD Phases

Jun 21, 2024


• Requirements Planning Phase
 Users and analysts meet to identify objectives of the application or system
 Oriented toward solving business problems
• RAD Design Workshop
 Design and refine phase
 Use group decision support systems to help users agree on designs
 Programmers and analysts can build and show visual representations of the

Event Driven Programming


designs and workflow to users
 Users respond to actual working prototypes
 Analysts refine designed modules based on user responses
• Implementation Phase
 As the systems are built and refined, the new systems or partial systems are
tested and introduced to the organization
 When creating new systems, there is no need to run old systems in parallel

23
RAD Phases and Activities

Event Driven Programming Jun 21, 2024


24
RAD=Speed, Quality & Productivity
Cont’d…

Event Driven Programming Jun 21, 2024


25
When to Use RAD

Jun 21, 2024


RAD is used when
 Reasonably well-known requirements
 User involved throughout the life cycle
 Project can be time-boxed
 Functionality delivered in increments
 High performance not required
 Low technical risks

Event Driven Programming


 System can be modularized
 programmers and analysts who are experienced
 There are pressing reasons for speeding up application development
 The project involves a novel ecommerce application and needs quick
results
 Users are sophisticated and highly engaged with the goals of the
company
26
Software Development Principles

Jun 21, 2024


1st Principle: The Reason It All Exists
 A software system exists for one reason: to provide value to its users.
 Before anything else ask yourself questions such as:
 "Does this add real VALUE to the system?"
 If the answer is "no", don't do it.
 All other principles support this one.
2nd Principle: KISS (Keep It Simple, Stupid!)

Event Driven Programming


 Software design is not a haphazard process.
 There are many factors to consider in any design effort.
 All design should be as simple as possible, but no simpler.
 This facilitates having a more easily understood, and easily maintained
system.
Note:
- This is not to say that features, even internal features, should be discarded in the name
of simplicity.
- Indeed, the more elegant designs(well-designed) are usually the more simple ones.
- Simple also does not mean "quick and dirty." 27
Cont’d…

Jun 21, 2024


3rd Principle: Maintain the Vision
 clear vision is essential to the success of a software project
 Without conceptual integrity, a system threatens to become a
patchwork of incompatible designs, held together by the wrong
kind of screws.
 Conceptual integrity is the most important consideration in

Event Driven Programming


system design.
 Compromising the architectural vision of a software system
weakens and will eventually break even the most well designed
systems.
 Having an empowered Architect who can hold the vision and
enforce compliance helps ensure a very successful software project.
28
Cont’d…

Jun 21, 2024


4th Principle: What You Produce, Others Will Consume
 Seldom is an industrial-strength software system constructed and used
in a vacuum.
 In some way or other, someone else will use, maintain, document, or
otherwise depend on being able to understand your system.
 always specify, design, & implement knowing someone else will have

Event Driven Programming


to understand what you are doing.
 audience for any product of software development is potentially large.
Specify with an eye to the users.
 Design, keeping the implementers in mind. Code with concern for
those that must maintain and extend the system.
 Someone may have to debug the code you write, and that makes them
a user of your code. Making their job easier adds value to the system.
29
Cont’d…

Jun 21, 2024


5th Principle: Be Open to the Future
 A system with a long lifetime has more value.
 True "industrial-strength" software systems must endure far
longer.
 To do this successfully, these systems must be ready to adapt

Event Driven Programming


future changes.
 Systems that do this successfully are those that have been
designed this way from the start.
 Never design yourself into a corner.

30
Cont’d…

Jun 21, 2024


6th Principle: Plan Ahead for Reuse
 Reusing saves time and effort.
 Achieving a high level of reuse is arguably the hardest goal to
accomplish in developing a software system.
 reuse of code and designs has been proclaimed as a major benefit of
using object-oriented technologies.

Event Driven Programming


 To leverage the reuse possibilities that OO programming provides
requires forethought and planning.
 Planning ahead for reuse reduces the cost and increases the value of
both the reusable components and the systems into which they are
incorporated.

31
Cont’d…

Jun 21, 2024


7th Principle: Think!
 This last principle is probably the most overlooked.
 Placing clear, complete thought before action almost always
produces better results.
 When clear thought has gone into a system, value comes out.

Event Driven Programming


 Applying the first six principles requires intense thought, for
which the potential rewards are enormous.

32
Thank You

Event Driven Programming Jun 21, 2024


33

You might also like