SlideShare a Scribd company logo
1 of 27
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

What's hot

Archibald di filippo_comprehensive_plc_model_final
Archibald di filippo_comprehensive_plc_model_finalArchibald di filippo_comprehensive_plc_model_final
Archibald di filippo_comprehensive_plc_model_finalsansharmajs
 
Technology Integration Pattern For Distributed Scrum of Scrum
Technology Integration Pattern For Distributed Scrum of ScrumTechnology Integration Pattern For Distributed Scrum of Scrum
Technology Integration Pattern For Distributed Scrum of ScrumIOSR Journals
 
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...
A MAPPING MODEL FOR TRANSFORMING TRADITIONAL SOFTWARE DEVELOPMENT METHODS TO ...ijseajournal
 
White paper - Adhoc 2.0
White paper - Adhoc 2.0White paper - Adhoc 2.0
White paper - Adhoc 2.0Nuno Brito
 
Restructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality ApproachRestructuring Technical Debt - A Software and System Quality Approach
Restructuring Technical Debt - A Software and System Quality ApproachAdnan Masood
 
TAPUniversity - Use Case Driven Vendor Selection
TAPUniversity - Use Case Driven Vendor SelectionTAPUniversity - Use Case Driven Vendor Selection
TAPUniversity - Use Case Driven Vendor SelectionDave Kohrell
 
Understanding Customer Voice of Project Portfolio Management Software
Understanding Customer Voice of Project Portfolio Management SoftwareUnderstanding Customer Voice of Project Portfolio Management Software
Understanding Customer Voice of Project Portfolio Management SoftwarePeachy Essay
 
Accelerate Innovation & Productivity With Rapid Prototyping & Development - ...
Accelerate Innovation & Productivity With Rapid Prototyping & Development -  ...Accelerate Innovation & Productivity With Rapid Prototyping & Development -  ...
Accelerate Innovation & Productivity With Rapid Prototyping & Development - ...Attivio
 
FISHBONE ANALYSIS ON WASTES IN SOFTWARE DEVELOPMENT USING THE LEAN I.T. PRINC...
FISHBONE ANALYSIS ON WASTES IN SOFTWARE DEVELOPMENT USING THE LEAN I.T. PRINC...FISHBONE ANALYSIS ON WASTES IN SOFTWARE DEVELOPMENT USING THE LEAN I.T. PRINC...
FISHBONE ANALYSIS ON WASTES IN SOFTWARE DEVELOPMENT USING THE LEAN I.T. PRINC...ecij
 
About the Zero Deviation Lifecycle
About the Zero Deviation LifecycleAbout the Zero Deviation Lifecycle
About the Zero Deviation LifecycleSteve Ross-Talbot
 
“Scrumbear” framework for solving traditional scrum model problems
“Scrumbear” framework for solving traditional scrum model problems“Scrumbear” framework for solving traditional scrum model problems
“Scrumbear” framework for solving traditional scrum model problemsjournalBEEI
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9Ian Sommerville
 
7 Steps to Pay Down the Interest on Your IT Technical Debt
7 Steps to Pay Down the Interest on Your IT Technical Debt7 Steps to Pay Down the Interest on Your IT Technical Debt
7 Steps to Pay Down the Interest on Your IT Technical DebtCAST
 

What's hot (19)

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

Similar to Vb ch 1-introduction

International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
A Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationA Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationQuekelsBaro
 
Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model Saad, Ph.D (Health IT)
 
A novel risk management model in the Scrum and extreme programming hybrid me...
A novel risk management model in the Scrum and extreme  programming hybrid me...A novel risk management model in the Scrum and extreme  programming hybrid me...
A novel risk management model in the Scrum and extreme programming hybrid me...IJECEIAES
 
Agile Methodology For Software Development
Agile Methodology For Software DevelopmentAgile Methodology For Software Development
Agile Methodology For Software DevelopmentDiane Allen
 
Software For Software Development Life Cycle
Software For Software Development Life CycleSoftware For Software Development Life Cycle
Software For Software Development Life CycleChristina Padilla
 
Management Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxManagement Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxcroysierkathey
 
An Inside Look At Extreme Programming Essay
An Inside Look At Extreme Programming EssayAn Inside Look At Extreme Programming Essay
An Inside Look At Extreme Programming EssaySharon Roberts
 
Project Planning, Execution And Closure Essay
Project Planning, Execution And Closure EssayProject Planning, Execution And Closure Essay
Project Planning, Execution And Closure EssayJennifer Letterman
 
SE - Ch.03 - Agile Software Development.pptx
SE - Ch.03 - Agile Software Development.pptxSE - Ch.03 - Agile Software Development.pptx
SE - Ch.03 - Agile Software Development.pptxproxymail1
 
Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsNicole Gomez
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software developmentbizpresenter
 

Similar to Vb ch 1-introduction (20)

introduction to vb.net
introduction to vb.netintroduction to vb.net
introduction to vb.net
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
A Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationA Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements Specification
 
Agile Dev. II
Agile Dev. IIAgile Dev. II
Agile Dev. II
 
Report
ReportReport
Report
 
Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model Usability Evaluation Techniques for Agile Software Model
Usability Evaluation Techniques for Agile Software Model
 
A novel risk management model in the Scrum and extreme programming hybrid me...
A novel risk management model in the Scrum and extreme  programming hybrid me...A novel risk management model in the Scrum and extreme  programming hybrid me...
A novel risk management model in the Scrum and extreme programming hybrid me...
 
Agile Methodologies & Key Principles
Agile Methodologies & Key Principles Agile Methodologies & Key Principles
Agile Methodologies & Key Principles
 
Agile Methodology For Software Development
Agile Methodology For Software DevelopmentAgile Methodology For Software Development
Agile Methodology For Software Development
 
Software For Software Development Life Cycle
Software For Software Development Life CycleSoftware For Software Development Life Cycle
Software For Software Development Life Cycle
 
Management Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docxManagement Information Systems – Week 7 Lecture 2Developme.docx
Management Information Systems – Week 7 Lecture 2Developme.docx
 
Agile Development
Agile DevelopmentAgile Development
Agile Development
 
An Inside Look At Extreme Programming Essay
An Inside Look At Extreme Programming EssayAn Inside Look At Extreme Programming Essay
An Inside Look At Extreme Programming Essay
 
Project Planning, Execution And Closure Essay
Project Planning, Execution And Closure EssayProject Planning, Execution And Closure Essay
Project Planning, Execution And Closure Essay
 
SE - Ch.03 - Agile Software Development.pptx
SE - Ch.03 - Agile Software Development.pptxSE - Ch.03 - Agile Software Development.pptx
SE - Ch.03 - Agile Software Development.pptx
 
Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming Teams
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software development
 
Dsdm
DsdmDsdm
Dsdm
 
Lecture 2
Lecture 2Lecture 2
Lecture 2
 
What is Rapid Innovation
What is Rapid InnovationWhat is Rapid Innovation
What is Rapid Innovation
 

More from bantamlak dejene

object oriented fundamentals in vb.net
object oriented fundamentals in vb.netobject oriented fundamentals in vb.net
object oriented fundamentals in vb.netbantamlak dejene
 
html forms and server side scripting
html forms and server side scriptinghtml forms and server side scripting
html forms and server side scriptingbantamlak dejene
 
server side scripting basics
server side scripting basicsserver side scripting basics
server side scripting basicsbantamlak dejene
 
server side scripting basics by Bantamlak Dejene
server side scripting basics by Bantamlak Dejeneserver side scripting basics by Bantamlak Dejene
server side scripting basics by Bantamlak Dejenebantamlak dejene
 
Vb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.netVb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.netbantamlak dejene
 
Vb ch 2-introduction_to_.net
Vb ch 2-introduction_to_.netVb ch 2-introduction_to_.net
Vb ch 2-introduction_to_.netbantamlak dejene
 
Php ch-2_html_forms_and_server_side_scripting
Php ch-2_html_forms_and_server_side_scriptingPhp ch-2_html_forms_and_server_side_scripting
Php ch-2_html_forms_and_server_side_scriptingbantamlak dejene
 
Php ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basicsPhp ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basicsbantamlak dejene
 

More from bantamlak dejene (9)

object oriented fundamentals in vb.net
object oriented fundamentals in vb.netobject oriented fundamentals in vb.net
object oriented fundamentals in vb.net
 
introduction to .net
introduction to .netintroduction to .net
introduction to .net
 
html forms and server side scripting
html forms and server side scriptinghtml forms and server side scripting
html forms and server side scripting
 
server side scripting basics
server side scripting basicsserver side scripting basics
server side scripting basics
 
server side scripting basics by Bantamlak Dejene
server side scripting basics by Bantamlak Dejeneserver side scripting basics by Bantamlak Dejene
server side scripting basics by Bantamlak Dejene
 
Vb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.netVb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.net
 
Vb ch 2-introduction_to_.net
Vb ch 2-introduction_to_.netVb ch 2-introduction_to_.net
Vb ch 2-introduction_to_.net
 
Php ch-2_html_forms_and_server_side_scripting
Php ch-2_html_forms_and_server_side_scriptingPhp ch-2_html_forms_and_server_side_scripting
Php ch-2_html_forms_and_server_side_scripting
 
Php ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basicsPhp ch-1_server_side_scripting_basics
Php ch-1_server_side_scripting_basics
 

Recently uploaded

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

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.….