SlideShare a Scribd company logo
Chapter One:
Introduction
11/27/2019
BantamlakDejene,Information
Technology
1
Introduction to Software Development
Software development is a complicated process. It requires
careful planning and execution to meet the goals. Sometimes a
developer must react quickly and aggressively to meet ever
changing market demands. Maintaining software quality hinders
fast-paced software development, as many testing cycles are
necessary to ensure quality products.
11/27/2019
BantamlakDejene,Information
Technology
2
A commercial software product is usually derived from market demands.
Sales and marketing people have first-hand knowledge of their customers’
requirements. Based upon these market requirements, senior software
developers create architecture for the products along with functional and
design specifications. Then the development process starts. After the initial
development phase, software testing begins, and many times it is done in
parallel with the development process. Documentation is also part of the
development process because a product cannot be brought to market without
manuals. Once development and testing are done, the software is released and
the support cycle begins. This phase may include bug fixes and new releases.
11/27/2019
BantamlakDejene,Information
Technology
3
Cont.….
Software Development Approaches
The Waterfall Model
The waterfall model particularly expresses the interaction between subsequent
phases. Testing software is not an activity which strictly follows the
implementation phase. In each phase of the software development process, we
have to compare the results obtained against those that are required. In all
phases, quality has to be assessed and controlled. Verification asks if the
system meets its requirements (are we building the system right) and thus tries
to assess the correctness of the transition to the next phase. Validation asks if
the system meets the user’s requirements (are we building the right system).
11/27/2019
BantamlakDejene,Information
Technology
4
Cont.….
Agile Methods
When using a heavyweight development method, it is difficult to change
direction. Once the contract has been signed, the development team’s job is
to deliver the functionality as laid down in the contract. If reality changes
or the user gets a different insight, such is difficult to accomplish. It does
not fit the architecture, it requires rework not accounted for, it lengthens the
agreed upon schedule, and so on. It is a train that does not easily change
direction.
11/27/2019
BantamlakDejene,Information
Technology
5
Cont.….
True agile methods view the world as fundamentally chaotic.
They assume change is inevitable. Their focus is to deliver
value to the customer as quickly as possible, and not bother
about extensive plans and processes that won’t be followed
anyway. The key values of the agile movement are:
Individuals and interactions: - over processes and tools.
Working software: - over comprehensive documentation.
Customer collaboration: - over contract negotiation.
Responding to change: - over following a plan.
11/27/2019
BantamlakDejene,Information
Technology
6
Cont.….
Agile methods involve the users in every step taken. The
development cycles are small and incremental. The series of
development cycles is not extensively planned in advance, but
the new situation is reviewed at the end of each cycle. Agile
methods do not have an extensive architectural or design phase
up front. It is more effective to only do the design as far as
needed for the immediate next step. Agile methods often have a
separate activity to improve the design after each increment,
known as refactoring.
11/27/2019
BantamlakDejene,Information
Technology
7
Cont.….
Agile methods are people-oriented, rather than process-
oriented. They emphasize the human element in software
development. Team spirit is considered very important. Team
relationships are close. Often, an agile team occupies one big
room. Finally, agile methods do not spend much energy on
documentation. It will have to change anyhow, so why spend
time on something that will soon be outdated.
11/27/2019
BantamlakDejene,Information
Technology
8
Cont.….
The Rational Unified Process (RUP)
The Rational Unified Process is an iterative development process, geared
towards the development of object-oriented systems. It comes with a lot of
tool support, inter/intranet sources and templates for different kinds of
documents. It has a well-defined process, includes reasonably extensive
upfront requirements engineering activities, and yet emphasizes stakeholder
involvement through its use-case driven nature. RUP distinguishes four
phases: inception, elaboration, construction and transition. Within each
phase, several iterations may occur.
11/27/2019
BantamlakDejene,Information
Technology
9
Cont.….
Rapid Application Development
Rapid Application Development (RAD) has a lot in common with other
iterative development process models. It emphasizes user involvement,
prototyping, reuse, the use of automated tools, and small development
teams. In addition to that, it employs the notion of a time box, a fixed time
frame within which activities are done. Within RAD, the time frame is
decided upon first and then the project tries to realize the requested
functionality within that time frame. If it turns out that not all of the
functionality can be realized within the time frame, some of the
functionality is sacrificed. The agreed deadline however is immovable.
11/27/2019
BantamlakDejene,Information
Technology
10
Cont.….
The RAD life cycle consists of four phases:
 Requirements planning,
 User design,
 Construction,
 Cutover.
The result of this process is often a prioritization denoted by the acronym
MoSCoW:
 Must haves are requirements that are definitely needed.
 Should haves are requirements that are important, but not absolutely
needed for a usable system.
 Could haves are requirements that are only implemented if time allows so.
 Won’t haves are requirements that will be left for the next iteration.
11/27/2019
BantamlakDejene,Information
Technology
11
Cont.….
Extreme Programming
Extreme Programming, XP for short, is a pure agile method. XP is based on
a number of best practices that have been known for long. XP takes these
practices to extreme levels. In XP, one does this all the time: two
programmers work together behind one computer screen. One of them does
the coding, the other one looks over his/er shoulder, gives advice, notices
small slips, asks questions, and the like. They act as pilot and co-pilot. At
any point in time, the roles may shift. This practice is called pair
programming.
11/27/2019
BantamlakDejene,Information
Technology
12
Cont.….
In XP, the design is kept as simple as possible. Since the future
is, after all, unclear, there is no use to design a grand scheme
that will not be followed anyhow. So the design only covers the
current version of the system. After a task is accomplished, the
system is checked to see how it can be improved (remove
duplicate code, make it simpler, make it more flexible). This is
called refactoring.
11/27/2019
BantamlakDejene,Information
Technology
13
Cont.….
XP is based on five principles that drive its practices:
Rapid feedback is obtained quickly, within hours, or at most a few days.
Assume simplicity Today’s job is done today, and tomorrows job is left for
tomorrow.
Incremental change In XP, things change in small increments.
Embracing change by not planning, designing, coding more than is needed
right now, the most options for the futures are kept.
Quality work Quality is a must. The team should find pride in delivering
excellent quality.
11/27/2019
BantamlakDejene,Information
Technology
14
Rapid Application Development
Rapid applications development (RAD) appears to have first
become topical with the publication of a text by James Martin
with the same title. Martin defines the key objectives of RAD as:
high quality systems, fast development and delivery and low
costs. These objectives can be summed up in one sentence: the
commercial need to deliver working business applications in
shorter timescales and for less investment.
11/27/2019
BantamlakDejene,Information
Technology
15
Cont.….
Components
The following appear to be the common components of RAD
approaches discussed in the literature:
Joint application design (JAD
RAD seems to be characterized by small development teams of typically four
to eight persons. Such teams are made up of both developers and users who are
empowered to make design decisions. This means that all RAD team members
must be skilled both socially and in terms of the business. Users must possess
detailed knowledge of the application area; developers must be skilled in the
use of advanced tools. Hence, ‘team-building’ activities such as team dinners
are seen as an important part of a RAD project.
11/27/2019
BantamlakDejene,Information
Technology
16
Cont.….
Rapidity of development
RAD projects seem to be typically of relatively small scale and
of short duration. Also, two to six months is frequently
discussed as being a normal project length. The main rationale
being that any project taking more than six months to complete
is likely to be overtaken by business developments.
11/27/2019
BantamlakDejene,Information
Technology
17
Cont.….
Clean rooms
JAD workshops are usually expected to take place away from
the business and developer environments in ‘clean’ rooms—that
is, places free from everyday work interruptions and full of
requisite support facilities. The emphasis is on highly focused
problem solving.
11/27/2019
BantamlakDejene,Information
Technology
18
Cont.….
Time boxing
Project control in RAD is seen to involve scoping the project by
prioritizing development and defining delivery deadlines or
‘time boxes’. If projects start to slip, the emphasis in RAD
projects is on reducing the requirements to fit the time box, not
in increasing the deadline.
11/27/2019
BantamlakDejene,Information
Technology
19
Cont.….
Incremental prototyping
RAD is frequently discussed in terms of incremental
prototyping and phased deliverables. Prototyping is essentially
the process of building a system in an iterative way. In RAD,
prototyping may be used at any stage of development:
requirements gathering; application design; application build;
testing; delivery.
11/27/2019
BantamlakDejene,Information
Technology
20
Cont.….
Rapid development tools
It is not surprising to find that modern approaches to RAD
demand good support from tools for rapid developmental
change. This normally means some combination of fourth
generation languages, graphical user interface builders,
database management systems and computer-aided software
engineering tools.
11/27/2019
BantamlakDejene,Information
Technology
21
Cont.….
Highly interactive, low complexity projects
Most RAD projects seem to be conducted on applications that are
highly interactive, have a clearly defined user group and are not
computationally complex. The tendency is to rule out the
applicability of RAD for large-scale, infrastructure projects,
particularly the construction of large, distributed information
systems such as corporate-wide databases. This is perhaps not
surprising when one considers that most RAD tools work off a
database in some way. Therefore, the database needs to be created
before application development begins.
11/27/2019
BantamlakDejene,Information
Technology
22
Software Development Principles
Criteria for a set of basic principles
The criteria for a set of basic principles should be similar to
those for a set of basis vectors for a vector space:
1. They should be independent.
2. The entire space (of useful software principles) should be
representable (or implied) by combinations of the basic
principles.
11/27/2019
BantamlakDejene,Information
Technology
23
Seven basic principles are involved. These are:
1. Manage using a phased life-cycle plan.
Create and Maintain a Life-Cycle Project Plan.
Importance of the project plan.
Essentials of a software project plan.
Orient the Plan around a Phased Development Approach.
Use the Plan to Manage the Project.
2. Perform continuous validation.
Problem Symptoms.
Getting Errors Out Early.
11/27/2019
BantamlakDejene,Information
Technology
24
Cont.….
3. Maintain disciplined product control.
The Need for Product Control.
Baseline Configuration Management.
4. Use modern programming practices.
Results to Date.
5. Maintain clear accountability for results.
Macro scale Accountability.
Intermediate-Scale Accountability.
Individual Accountability.
Summary.
11/27/2019
BantamlakDejene,Information
Technology
25
Cont.….
6. Use better and fewer people.
 Variability among Personnel.
 Interpersonal Communications Overhead.
 Automated Aids.
7. Maintain a commitment to improve the process.
 Data Collection and Analysis.
 Maintaining Perspective.
11/27/2019
BantamlakDejene,Information
Technology
26
Cont.….
THANK YOU
11/27/2019
BantamlakDejene,Information
Technology
27

More Related Content

PPT
JAD - Joint Applications Development
PDF
Interaction Room - Creating Space for Developments (Software Projects)
PDF
Software Engineering Past Papers Notes
PPTX
SE - Ch.02 - Software Developmnet Process Model.pptx
PDF
BEST PRACTICES FOR IMPROVING USER INTERFACE DESIGN
PDF
Scalable light weight processes
DOCX
Understanding Alternative Approaches for System Development
PPTX
Information Technology Project Management - part 01
JAD - Joint Applications Development
Interaction Room - Creating Space for Developments (Software Projects)
Software Engineering Past Papers Notes
SE - Ch.02 - Software Developmnet Process Model.pptx
BEST PRACTICES FOR IMPROVING USER INTERFACE DESIGN
Scalable light weight processes
Understanding Alternative Approaches for System Development
Information Technology Project Management - part 01

What's hot (19)

PDF
Archibald di filippo_comprehensive_plc_model_final
PPTX
Project management
PDF
Technology Integration Pattern For Distributed Scrum of Scrum
PDF
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...
PDF
Hci practices-in-agile-software-development
PDF
Software modernization
PDF
White paper - Adhoc 2.0
PPTX
Restructuring Technical Debt - A Software and System Quality Approach
PPTX
Ch22 project management
PDF
TAPUniversity - Use Case Driven Vendor Selection
PDF
Understanding Customer Voice of Project Portfolio Management Software
PDF
Accelerate Innovation & Productivity With Rapid Prototyping & Development - ...
PDF
FISHBONE ANALYSIS ON WASTES IN SOFTWARE DEVELOPMENT USING THE LEAN I.T. PRINC...
PPTX
About the Zero Deviation Lifecycle
PDF
“Scrumbear” framework for solving traditional scrum model problems
PPTX
Ch3-Software Engineering 9
PDF
IBM Rational
PPTX
Sdlc models
PDF
7 Steps to Pay Down the Interest on Your IT Technical Debt
Archibald di filippo_comprehensive_plc_model_final
Project management
Technology Integration Pattern For Distributed Scrum of Scrum
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...
Hci practices-in-agile-software-development
Software modernization
White paper - Adhoc 2.0
Restructuring Technical Debt - A Software and System Quality Approach
Ch22 project management
TAPUniversity - Use Case Driven Vendor Selection
Understanding Customer Voice of Project Portfolio Management Software
Accelerate Innovation & Productivity With Rapid Prototyping & Development - ...
FISHBONE ANALYSIS ON WASTES IN SOFTWARE DEVELOPMENT USING THE LEAN I.T. PRINC...
About the Zero Deviation Lifecycle
“Scrumbear” framework for solving traditional scrum model problems
Ch3-Software Engineering 9
IBM Rational
Sdlc models
7 Steps to Pay Down the Interest on Your IT Technical Debt
Ad

Similar to Vb ch 1-introduction (20)

PPTX
introduction to vb.net
PDF
International Journal of Engineering Research and Development (IJERD)
PDF
A Basic Introduction to Creating a Software Requirements Specification
PDF
Agile Dev. II
PDF
Report
PDF
Usability Evaluation Techniques for Agile Software Model
PDF
A novel risk management model in the Scrum and extreme programming hybrid me...
PDF
Agile Methodologies & Key Principles
PDF
Agile Methodology For Software Development
DOCX
Lesson 03 - Utilize Software Methodology.docx
PDF
Software For Software Development Life Cycle
DOCX
Management Information Systems – Week 7 Lecture 2Developme.docx
PDF
Agile Development
PDF
An Inside Look At Extreme Programming Essay
PDF
Project Planning, Execution And Closure Essay
PPTX
SE - Ch.03 - Agile Software Development.pptx
PDF
Different Methodologies Used By Programming Teams
PPT
Project Requriement Management Vs Agile software development
PDF
PPT
Lecture 2
introduction to vb.net
International Journal of Engineering Research and Development (IJERD)
A Basic Introduction to Creating a Software Requirements Specification
Agile Dev. II
Report
Usability Evaluation Techniques for Agile Software Model
A novel risk management model in the Scrum and extreme programming hybrid me...
Agile Methodologies & Key Principles
Agile Methodology For Software Development
Lesson 03 - Utilize Software Methodology.docx
Software For Software Development Life Cycle
Management Information Systems – Week 7 Lecture 2Developme.docx
Agile Development
An Inside Look At Extreme Programming Essay
Project Planning, Execution And Closure Essay
SE - Ch.03 - Agile Software Development.pptx
Different Methodologies Used By Programming Teams
Project Requriement Management Vs Agile software development
Lecture 2
Ad

More from bantamlak dejene (9)

PPTX
object oriented fundamentals in vb.net
PPTX
introduction to .net
PPTX
html forms and server side scripting
PPTX
server side scripting basics
PPTX
server side scripting basics by Bantamlak Dejene
PPTX
Vb ch 3-object-oriented_fundamentals_in_vb.net
PPTX
Vb ch 2-introduction_to_.net
PPTX
Php ch-2_html_forms_and_server_side_scripting
PPTX
Php ch-1_server_side_scripting_basics
object oriented fundamentals in vb.net
introduction to .net
html forms and server side scripting
server side scripting basics
server side scripting basics by Bantamlak Dejene
Vb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 2-introduction_to_.net
Php ch-2_html_forms_and_server_side_scripting
Php ch-1_server_side_scripting_basics

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
1. Introduction to Computer Programming.pptx
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
A Presentation on Artificial Intelligence
PPTX
Big Data Technologies - Introduction.pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Approach and Philosophy of On baking technology
PPTX
MYSQL Presentation for SQL database connectivity
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
SOPHOS-XG Firewall Administrator PPT.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
1. Introduction to Computer Programming.pptx
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks
A Presentation on Artificial Intelligence
Big Data Technologies - Introduction.pptx
Getting Started with Data Integration: FME Form 101
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Weekly Chronicles - August'25-Week II
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectroscopy.pptx food analysis technology
Approach and Philosophy of On baking technology
MYSQL Presentation for SQL database connectivity

Vb ch 1-introduction

  • 2. Introduction to Software Development Software development is a complicated process. It requires careful planning and execution to meet the goals. Sometimes a developer must react quickly and aggressively to meet ever changing market demands. Maintaining software quality hinders fast-paced software development, as many testing cycles are necessary to ensure quality products. 11/27/2019 BantamlakDejene,Information Technology 2
  • 3. A commercial software product is usually derived from market demands. Sales and marketing people have first-hand knowledge of their customers’ requirements. Based upon these market requirements, senior software developers create architecture for the products along with functional and design specifications. Then the development process starts. After the initial development phase, software testing begins, and many times it is done in parallel with the development process. Documentation is also part of the development process because a product cannot be brought to market without manuals. Once development and testing are done, the software is released and the support cycle begins. This phase may include bug fixes and new releases. 11/27/2019 BantamlakDejene,Information Technology 3 Cont.….
  • 4. Software Development Approaches The Waterfall Model The waterfall model particularly expresses the interaction between subsequent phases. Testing software is not an activity which strictly follows the implementation phase. In each phase of the software development process, we have to compare the results obtained against those that are required. In all phases, quality has to be assessed and controlled. Verification asks if the system meets its requirements (are we building the system right) and thus tries to assess the correctness of the transition to the next phase. Validation asks if the system meets the user’s requirements (are we building the right system). 11/27/2019 BantamlakDejene,Information Technology 4
  • 5. Cont.…. Agile Methods When using a heavyweight development method, it is difficult to change direction. Once the contract has been signed, the development team’s job is to deliver the functionality as laid down in the contract. If reality changes or the user gets a different insight, such is difficult to accomplish. It does not fit the architecture, it requires rework not accounted for, it lengthens the agreed upon schedule, and so on. It is a train that does not easily change direction. 11/27/2019 BantamlakDejene,Information Technology 5
  • 6. Cont.…. True agile methods view the world as fundamentally chaotic. They assume change is inevitable. Their focus is to deliver value to the customer as quickly as possible, and not bother about extensive plans and processes that won’t be followed anyway. The key values of the agile movement are: Individuals and interactions: - over processes and tools. Working software: - over comprehensive documentation. Customer collaboration: - over contract negotiation. Responding to change: - over following a plan. 11/27/2019 BantamlakDejene,Information Technology 6
  • 7. Cont.…. Agile methods involve the users in every step taken. The development cycles are small and incremental. The series of development cycles is not extensively planned in advance, but the new situation is reviewed at the end of each cycle. Agile methods do not have an extensive architectural or design phase up front. It is more effective to only do the design as far as needed for the immediate next step. Agile methods often have a separate activity to improve the design after each increment, known as refactoring. 11/27/2019 BantamlakDejene,Information Technology 7
  • 8. Cont.…. Agile methods are people-oriented, rather than process- oriented. They emphasize the human element in software development. Team spirit is considered very important. Team relationships are close. Often, an agile team occupies one big room. Finally, agile methods do not spend much energy on documentation. It will have to change anyhow, so why spend time on something that will soon be outdated. 11/27/2019 BantamlakDejene,Information Technology 8
  • 9. Cont.…. The Rational Unified Process (RUP) The Rational Unified Process is an iterative development process, geared towards the development of object-oriented systems. It comes with a lot of tool support, inter/intranet sources and templates for different kinds of documents. It has a well-defined process, includes reasonably extensive upfront requirements engineering activities, and yet emphasizes stakeholder involvement through its use-case driven nature. RUP distinguishes four phases: inception, elaboration, construction and transition. Within each phase, several iterations may occur. 11/27/2019 BantamlakDejene,Information Technology 9
  • 10. Cont.…. Rapid Application Development Rapid Application Development (RAD) has a lot in common with other iterative development process models. It emphasizes user involvement, prototyping, reuse, the use of automated tools, and small development teams. In addition to that, it employs the notion of a time box, a fixed time frame within which activities are done. Within RAD, the time frame is decided upon first and then the project tries to realize the requested functionality within that time frame. If it turns out that not all of the functionality can be realized within the time frame, some of the functionality is sacrificed. The agreed deadline however is immovable. 11/27/2019 BantamlakDejene,Information Technology 10
  • 11. Cont.…. The RAD life cycle consists of four phases:  Requirements planning,  User design,  Construction,  Cutover. The result of this process is often a prioritization denoted by the acronym MoSCoW:  Must haves are requirements that are definitely needed.  Should haves are requirements that are important, but not absolutely needed for a usable system.  Could haves are requirements that are only implemented if time allows so.  Won’t haves are requirements that will be left for the next iteration. 11/27/2019 BantamlakDejene,Information Technology 11
  • 12. Cont.…. Extreme Programming Extreme Programming, XP for short, is a pure agile method. XP is based on a number of best practices that have been known for long. XP takes these practices to extreme levels. In XP, one does this all the time: two programmers work together behind one computer screen. One of them does the coding, the other one looks over his/er shoulder, gives advice, notices small slips, asks questions, and the like. They act as pilot and co-pilot. At any point in time, the roles may shift. This practice is called pair programming. 11/27/2019 BantamlakDejene,Information Technology 12
  • 13. Cont.…. In XP, the design is kept as simple as possible. Since the future is, after all, unclear, there is no use to design a grand scheme that will not be followed anyhow. So the design only covers the current version of the system. After a task is accomplished, the system is checked to see how it can be improved (remove duplicate code, make it simpler, make it more flexible). This is called refactoring. 11/27/2019 BantamlakDejene,Information Technology 13
  • 14. Cont.…. XP is based on five principles that drive its practices: Rapid feedback is obtained quickly, within hours, or at most a few days. Assume simplicity Today’s job is done today, and tomorrows job is left for tomorrow. Incremental change In XP, things change in small increments. Embracing change by not planning, designing, coding more than is needed right now, the most options for the futures are kept. Quality work Quality is a must. The team should find pride in delivering excellent quality. 11/27/2019 BantamlakDejene,Information Technology 14
  • 15. Rapid Application Development Rapid applications development (RAD) appears to have first become topical with the publication of a text by James Martin with the same title. Martin defines the key objectives of RAD as: high quality systems, fast development and delivery and low costs. These objectives can be summed up in one sentence: the commercial need to deliver working business applications in shorter timescales and for less investment. 11/27/2019 BantamlakDejene,Information Technology 15
  • 16. Cont.…. Components The following appear to be the common components of RAD approaches discussed in the literature: Joint application design (JAD RAD seems to be characterized by small development teams of typically four to eight persons. Such teams are made up of both developers and users who are empowered to make design decisions. This means that all RAD team members must be skilled both socially and in terms of the business. Users must possess detailed knowledge of the application area; developers must be skilled in the use of advanced tools. Hence, ‘team-building’ activities such as team dinners are seen as an important part of a RAD project. 11/27/2019 BantamlakDejene,Information Technology 16
  • 17. Cont.…. Rapidity of development RAD projects seem to be typically of relatively small scale and of short duration. Also, two to six months is frequently discussed as being a normal project length. The main rationale being that any project taking more than six months to complete is likely to be overtaken by business developments. 11/27/2019 BantamlakDejene,Information Technology 17
  • 18. Cont.…. Clean rooms JAD workshops are usually expected to take place away from the business and developer environments in ‘clean’ rooms—that is, places free from everyday work interruptions and full of requisite support facilities. The emphasis is on highly focused problem solving. 11/27/2019 BantamlakDejene,Information Technology 18
  • 19. Cont.…. Time boxing Project control in RAD is seen to involve scoping the project by prioritizing development and defining delivery deadlines or ‘time boxes’. If projects start to slip, the emphasis in RAD projects is on reducing the requirements to fit the time box, not in increasing the deadline. 11/27/2019 BantamlakDejene,Information Technology 19
  • 20. Cont.…. Incremental prototyping RAD is frequently discussed in terms of incremental prototyping and phased deliverables. Prototyping is essentially the process of building a system in an iterative way. In RAD, prototyping may be used at any stage of development: requirements gathering; application design; application build; testing; delivery. 11/27/2019 BantamlakDejene,Information Technology 20
  • 21. Cont.…. Rapid development tools It is not surprising to find that modern approaches to RAD demand good support from tools for rapid developmental change. This normally means some combination of fourth generation languages, graphical user interface builders, database management systems and computer-aided software engineering tools. 11/27/2019 BantamlakDejene,Information Technology 21
  • 22. Cont.…. Highly interactive, low complexity projects Most RAD projects seem to be conducted on applications that are highly interactive, have a clearly defined user group and are not computationally complex. The tendency is to rule out the applicability of RAD for large-scale, infrastructure projects, particularly the construction of large, distributed information systems such as corporate-wide databases. This is perhaps not surprising when one considers that most RAD tools work off a database in some way. Therefore, the database needs to be created before application development begins. 11/27/2019 BantamlakDejene,Information Technology 22
  • 23. Software Development Principles Criteria for a set of basic principles The criteria for a set of basic principles should be similar to those for a set of basis vectors for a vector space: 1. They should be independent. 2. The entire space (of useful software principles) should be representable (or implied) by combinations of the basic principles. 11/27/2019 BantamlakDejene,Information Technology 23
  • 24. Seven basic principles are involved. These are: 1. Manage using a phased life-cycle plan. Create and Maintain a Life-Cycle Project Plan. Importance of the project plan. Essentials of a software project plan. Orient the Plan around a Phased Development Approach. Use the Plan to Manage the Project. 2. Perform continuous validation. Problem Symptoms. Getting Errors Out Early. 11/27/2019 BantamlakDejene,Information Technology 24 Cont.….
  • 25. 3. Maintain disciplined product control. The Need for Product Control. Baseline Configuration Management. 4. Use modern programming practices. Results to Date. 5. Maintain clear accountability for results. Macro scale Accountability. Intermediate-Scale Accountability. Individual Accountability. Summary. 11/27/2019 BantamlakDejene,Information Technology 25 Cont.….
  • 26. 6. Use better and fewer people.  Variability among Personnel.  Interpersonal Communications Overhead.  Automated Aids. 7. Maintain a commitment to improve the process.  Data Collection and Analysis.  Maintaining Perspective. 11/27/2019 BantamlakDejene,Information Technology 26 Cont.….