ASE CS6401 Lecture 9
ASE CS6401 Lecture 9
(CS6401)
Autumn Semester (2024-2025)
2
Rapid application development (RAD)
• Major goals:
• To decrease the time taken and the cost incurred to
develop software systems.
• Non-critical software:
• a quick-and-dirty software developed is usually far
from being optimal in performance and reliability.
• Highly constrained project schedule:
• It aims to reduce development time at the expense of
good documentation, performance and reliability.
• It is preferred for projects with very aggressive time
schedules
• Large Software:
• Software having many features can have incremental
development and delivery be meaningfully carried out.
Characteristics that render RAD unsuitable
• Generic products (wide distribution)
• Software products are generic in nature and
usually have wide distribution.
• Optimal performance and reliability are imperative
in a competitive market.
• Requirement of optimal performance and/or
reliability
• Categories of products require performance or
reliability
• Example, Operating System (high reliability
required)
Characteristics that render RAD unsuitable
• Simplicity:
• Simplest code ignores the aspects such as efficiency,
reliability, maintainability, etc.
• Once the basic functionality works then these aspects
can be introduced through refactoring.
• Design:
• Everybody should design daily.
• Quality design can be achieved through refactoring
(improve the nonfunctional attributes (such as
readability, and maintainability) of the software without
affecting the external behavior).
Good practices recognized
• Integration Testing:
• Helps identify bugs at the interfaces
• Developers should achieve continuous integration by
building and performing integration testing several times
a day.
XP prescribes several basic activities
Coding:
• Utmost care and attention needed for coding activity
• Without coding it is not possible to have a working
system
• Coding in XP has a slightly different meaning.
• Example: coding activity includes drawing diagrams
(modeling) that will be transformed to code, scripting a
web-based system and choosing among several
alternative solutions.
XP prescribes several basic activities
Testing:
• High importance for testing and considers it as a
primary means for developing a fault-free software
Listening:
• Developers need to listen to the customers carefully
• Customers usually have the domain knowledge but
programmers may not have in-depth knowledge of the
domain
XP prescribes several basic activities
Designing:
• Without good design implementation becomes too
complex, and dependencies within the system become
too numerous, and it becomes very difficult to
comprehend the solution.
• Maintenance difficult and expensive
• Emphasizes use of a suitable design technique
Feedback:
• Understanding the exact requirement
• Feedback is critical to learning and making changes
• Frequent contact with the customer makes the
development effective
XP prescribes several basic activities
Simplicity:
• Build something simple that will work today rather
something taking a lot of time never getting used
• Attention on making specific functions that are
immediately needed
Applicability of XP model
• Small projects
• face to face meeting is easier to achieve.
Characteristics not suited to use of XP
model
• Stable requirements
• Almost no change to the gathered
requirements
• Mission critical or safety critical systems
• It can not ensure the required reliability
Reference
43