SlideShare a Scribd company logo
Information Systems 371
Lecture 3, January 29, 2019
Topic: Software Development Methodologies
Lecturer: Nicholas Davis
Let’s Start With Some
Humor Related to RAD
(Rapid Application Development)
1/28/2019 UNIVERSITY OF WISCONSIN 2
Housekeeping
• Did everyone get the email I sent on Monday? If
not, please write down your email address and
give it to me at the end of class
• Is the installation of Visual Studio going OK
• Programming assignments: What is the best way
to learn? How do we avoid having anyone left
behind?
• Is class going OK? Would you tell me if it wasn’t.
I don’t want to learn about it at the end of the
semester
• How about a visit from Epic?
1/28/2019 UNIVERSITY OF WISCONSIN 3
Interesting Article
Does Hardware Even Matter
Anymore?
• https://hbr.org/2015/06/does-
hardware-even-matter-anymore
• Are you a hardware person or a
software person?
• Which areas of information systems
interest you most, and where do you
envision the biggest opportunities?
1/28/2019 UNIVERSITY OF WISCONSIN 4
You Don’t Just “Program”,
You “Develop Software”
• In software engineering, a software
development process is the process of
dividing software development work
into distinct phases to improve design,
product management, and project
management
1/28/2019 UNIVERSITY OF WISCONSIN 5
Software Development
• Most modern development processes
can be vaguely described as agile.
Other methodologies include
waterfall, prototyping, iterative and
incremental development, spiral
development, rapid application
development, and extreme
programming.
1/28/2019 UNIVERSITY OF WISCONSIN 6
Agile
Software Development
• Agile software development describes an
approach to software development under
which requirements and solutions evolve
through the collaborative effort of self-
organizing cross-functional teams and their
customer/end users
• It advocates adaptive planning, evolutionary
development, early delivery, and continuous
improvement, and it encourages rapid and
flexible response to change
1/28/2019 UNIVERSITY OF WISCONSIN 7
“Pair Programming”
in Agile Development
1/28/2019 UNIVERSITY OF WISCONSIN 8
Waterfall (Old School)
Software Development
1. System and software requirements: captured in a
product requirements document
2. Analysis: resulting in models, schema, and business
rules
3. Design: resulting in the software architecture
4. Coding: the development, proving, and integration
of software
5. Testing: the systematic discovery and debugging of
defects
6. Operations: the installation, migration, support, and
maintenance of complete systems
1/28/2019 UNIVERSITY OF WISCONSIN 9
Waterfall Usually Has 5 or 6
Steps
1/28/2019 UNIVERSITY OF WISCONSIN 10
Prototyping
Software Development
Software prototyping is the activity of creating
prototypes of software applications, i.e., incomplete
versions of the software program being developed. It
is an activity that can occur in software development
and is comparable to prototyping as known from
other fields, such as mechanical engineering or
manufacturing.
A prototype typically simulates only a few aspects of,
and may be completely different from, the final
product.
1/28/2019 UNIVERSITY OF WISCONSIN 11
Prototyping
1/28/2019 UNIVERSITY OF WISCONSIN 12
Iterative
Software Development
• Worst definition EVER: Relating to or
involving iteration, especially of a
mathematical or computational
process.
• You start by writing a general
application, but then come back to it
to add a few more features at a time,
over and over, evolving over time
1/28/2019 UNIVERSITY OF WISCONSIN 13
Iterative
Software Development
1/28/2019 UNIVERSITY OF WISCONSIN 14
Spiral Software Development
Don’t even bother learning about this. It is rarely
used, and overly complex. Forget about it!
1/28/2019 UNIVERSITY OF WISCONSIN 15
Rapid Application Development
• RAD approaches to software development put
less emphasis on planning and more emphasis on
an adaptive process. Prototypes are often used in
addition to or sometimes even in place of design
specifications.
• RAD is especially well suited for (although not
limited to) developing software that is driven by
user interface requirements. Graphical user
interface builders are often called rapid
application development tools.
1/28/2019 UNIVERSITY OF WISCONSIN 16
Extreme Software Development
• A flat management structure, code simplicity and
clarity, expecting changes in the customer's
requirements as time passes and the problem is
better understood, and frequent communication
with the customer and among programmers
1/28/2019 UNIVERSITY OF WISCONSIN 17
Extreme Programming
1/28/2019 UNIVERSITY OF WISCONSIN 18
Software Development
Life Cycle (SDLC)
• The systems development life cycle (SDLC), also
referred to as the application development life-
cycle, is a term used in systems engineering,
information systems and software engineering to
describe a process for planning, creating, testing,
and deploying an information system.
• Uses an enhanced Waterfall methodology
• Talk about it at a job interview to sound smart
and eat up a bunch of time!
1/28/2019 UNIVERSITY OF WISCONSIN 19
SDLC
8 Phases
1. System investigation
2. System analysis
3. Design
4. Environments
5. Testing
6. Training and transition
7. Operations and maintenance
8. Evaluation
1/28/2019 UNIVERSITY OF WISCONSIN 20
SDLC
System Investigation
• The system investigates the IT proposal. During this step, we must consider all current
priorities that would be affected and how they should be handled. Before any system
planning is done, a feasibility study should be conducted to determine if creating a new or
improved system is a viable solution. This will help to determine the costs, benefits, resource
requirements, and specific user needs required for completion. The development process
can only continue once management approves of the recommendations from the feasibility
study.
• Following are different components of the feasibility study:
• Operational feasibility
• Economic feasibility
• Technical feasibility
• Human factors feasibility
• Legal/Political feasibility
1/28/2019 UNIVERSITY OF WISCONSIN 21
SDLC Systems Analysis
• The goal of system analysis is to determine where
the problem is, in an attempt to fix the system.
This step involves breaking down the system in
different pieces to analyze the situation,
analyzing project goals, breaking down what
needs to be created and attempting to engage
users so that definite requirements can be
defined.
1/28/2019 UNIVERSITY OF WISCONSIN 22
SDLC Design
• Describes desired features and operations in
detail, including screen layouts, business rules,
process diagrams, pseudocode and other
documentation.
1/28/2019 UNIVERSITY OF WISCONSIN 23
SDLC Development
• Environments are controlled areas where
systems developers can build, distribute, install,
configure, test, and execute systems that move
through the SDLC. Each environment is aligned
with different areas of the SDLC and is intended
to have specific purposes. Examples of such
environments follow on the next slide.
1/28/2019 UNIVERSITY OF WISCONSIN 24
SDLC Development
• Development environment, where developers can
work independently of each other before trying to
merge their work with the work of others,
• Common build environment, where merged work
can be built, together, as a combined system,
• Systems integration testing environment, where
basic testing of a system's integration points to other
upstream or downstream systems can be tested,
• User acceptance testing environment, where
business stakeholders can test against their original
business requirements,
• Production environment, where systems finally get
deployed to, for final use by their intended end users.
1/28/2019 UNIVERSITY OF WISCONSIN 25
Do You Know the Dos Equis Guy?
“I don’t always drink beer, but when I do,
I choose Dos Equis”
1/28/2019 UNIVERSITY OF WISCONSIN 26
In a Previous Life,
He Was a Software Developer,
But Got Fired
1/28/2019 UNIVERSITY OF WISCONSIN 27
SDLC Testing
• The code is tested at various levels in software
testing. Unit, system and user acceptance testings
are often performed. This is a grey area as many
different opinions exist as to what the stages of
testing are
1/28/2019 UNIVERSITY OF WISCONSIN 28
So Much Testing in the SDLC
• Path testing
• Data set testing
• Unit testing
• Integration testing
• System testing
• Black-box testing
• White-box testing
• Regression testing
• Automation testing
• User acceptance testing
• Software performance testing
1/28/2019 UNIVERSITY OF WISCONSIN 29
Path Testing
• Does data move through the system in the
manner you expect?
1/28/2019 UNIVERSITY OF WISCONSIN 30
Data Set Testing
• Test data is data which has been specifically
identified for use in tests, typically of a computer
program.
• Some data may be used in a confirmatory way,
typically to verify that a given set of input to a
given function produces some expected result.
Other data may be used in order to challenge the
ability of the program to respond to unusual,
extreme, exceptional, or unexpected input.
1/28/2019 UNIVERSITY OF WISCONSIN 31
Unit Testing
• Is a software testing method by which individual
units of source code, sets of one or more
computer program modules together with
associated control data, usage procedures, and
operating procedures, are tested to determine
whether they are fit for us
1/28/2019 UNIVERSITY OF WISCONSIN 32
Integration Testing
• Is the phase in software testing in which
individual software modules are combined and
tested as a group. It occurs after unit testing and
before
1/28/2019 UNIVERSITY OF WISCONSIN 33
System Testing
System testing of software or hardware is testing
conducted on a complete, integrated system to
evaluate the system's compliance with its specified
requirements.
1/28/2019 UNIVERSITY OF WISCONSIN 34
Black Box Testing
• You put something you know, into the system.
You expect to get a certain result. Does that result
match what you were expecting? You ONLY look
at the output, not what happens within each step
of the application
• There are benefits and drawbacks to Black Box
Testing
1/28/2019 UNIVERSITY OF WISCONSIN 35
White Box Testing
• White-box testing (also known as clear box
testing, glass box testing, transparent box testing,
and structural testing) is a method of testing
software that tests internal structures or
workings of an application, as opposed to its
functionality (i.e. black-box testing). In white-box
testing an internal perspective of the system, as
well as programming skills, are used to design
test cases
1/28/2019 UNIVERSITY OF WISCONSIN 36
Regression Testing
• Is a type of software testing which verifies that
software which was previously developed and
tested still performs the same way after it was
changed or interfaced with other software.
Changes may include software enhancements,
patches, configuration changes, etc. During
regression testing, new software bugs or
regressions may be uncovered.
1/28/2019 UNIVERSITY OF WISCONSIN 37
Test Automation
• Is the use of special software (separate from the
software being tested) to control the execution of
tests and the comparison of actual outcomes with
predicted outcomes.[1] Test automation can
automate some repetitive but necessary tasks in a
formalized testing process already in place, or
perform additional testing that would be difficult
to do manually.
1/28/2019 UNIVERSITY OF WISCONSIN 38
User Acceptance Testing
• UAT consists of a process of verifying that a
solution works for the user. It is not system
testing (ensuring software does not crash and
meets documented requirements), but rather
ensures that the solution will work for the user
(i.e., tests that the user accepts the solution);
software vendors often refer to this as "Beta
testing".
1/28/2019 UNIVERSITY OF WISCONSIN 39
Software Performance
Testing
• Is in general, a testing practice performed to
determine how a system performs in terms of
responsiveness and stability under a particular
workload. It can also serve to investigate,
measure, validate or verify other quality
attributes of the system, such as scalability,
reliability and resource usage.
1/28/2019 UNIVERSITY OF WISCONSIN 40
SDLC Training and Transition
• Once a system has been stabilized through adequate
testing, the SDLC ensures that proper training on the
system is performed or documented before
transitioning the system to its support staff and end
users.
• Training usually covers operational training for those
people who will be responsible for supporting the
system as well as training for those end users who
will be using the system after its delivery to a
production operating environment.
1/28/2019 UNIVERSITY OF WISCONSIN 41
Operations and Maintenance
• Release
• Installation and activation
• Deactivation
• Uninstallation
• Update
• Automated Update
• Version tracking
• Adaptation
1/28/2019 UNIVERSITY OF WISCONSIN 42
SDLC Evaluation
• The final phase of the SDLC is to measure the
effectiveness of the system and evaluate potential
enhancements.
1/28/2019 UNIVERSITY OF WISCONSIN 43
Strengths and Weaknesses of SDLC
1/28/2019 UNIVERSITY OF WISCONSIN 44
Strengths Weaknesses
Control Increased development time
Monitor large projects Increased development cost
Detailed steps Systems must be defined up front
Evaluate costs and completion targets Rigidity
Documentation
Hard to estimate costs, project
overruns
Well defined user input User input is sometimes limited
Ease of maintenance
Development and design standards
Tolerates changes in MIS staffing
1/28/2019 UNIVERSITY OF WISCONSIN 45

More Related Content

What's hot (20)

PPTX
Software development methodologies
Ankita Lachhwani
 
PPT
Spm unit 3
sweetyammu
 
PPTX
Iterative model
Vaibhav Dash
 
PPTX
Software design
Syed Muhammad Hammad-ud-Din
 
PPTX
Software Requirement Elicitation Techniques http://www.imran.xyz
Imran Hussain Khan
 
PPT
Use Case Diagram
Ashesh R
 
DOCX
Uml Common Mechanism
Satyamevjayte Haxor
 
PDF
Cause effect graphing technique
Ankush Kumar
 
PDF
Software Development Life Cycle (SDLC)
Angelin R
 
PPTX
Software requirement and specification
Aman Adhikari
 
PPTX
Waterfall model ppt final
shiva krishna
 
PDF
Sdlc
meenakshi sv
 
PPTX
Design Concept software engineering
Darshit Metaliya
 
PPTX
Software development life cycle (SDLC)
Simran Kaur
 
PPT
Pressman ch-3-prescriptive-process-models
saurabhshertukde
 
PDF
Incremental model
Hpibmx
 
PPTX
software development life cycle(SDLC)
sanoop s
 
PPT
Architecture design in software engineering
Preeti Mishra
 
PPTX
Extreme Programming
pearlcatcharro
 
Software development methodologies
Ankita Lachhwani
 
Spm unit 3
sweetyammu
 
Iterative model
Vaibhav Dash
 
Software Requirement Elicitation Techniques http://www.imran.xyz
Imran Hussain Khan
 
Use Case Diagram
Ashesh R
 
Uml Common Mechanism
Satyamevjayte Haxor
 
Cause effect graphing technique
Ankush Kumar
 
Software Development Life Cycle (SDLC)
Angelin R
 
Software requirement and specification
Aman Adhikari
 
Waterfall model ppt final
shiva krishna
 
Design Concept software engineering
Darshit Metaliya
 
Software development life cycle (SDLC)
Simran Kaur
 
Pressman ch-3-prescriptive-process-models
saurabhshertukde
 
Incremental model
Hpibmx
 
software development life cycle(SDLC)
sanoop s
 
Architecture design in software engineering
Preeti Mishra
 
Extreme Programming
pearlcatcharro
 

Similar to Software Development Methodologies (20)

PPT
Software Development Life Cycle
university of education,Lahore
 
PPTX
Software Testing Introduction
ArunKumar5524
 
PPTX
Presentation2
Ashams Joseph
 
PDF
A Survey on Design of Online Judge System
IRJET Journal
 
PPTX
Lecture 3 software_engineering
moduledesign
 
PPTX
Introduction to Software engineering ch03
YousefYassin5
 
PPTX
Lecture 3 software_engineering
moduledesign
 
PDF
SE UNIT-1 Revised.pdf
Dr. Radhey Shyam
 
PDF
Software Testing Future and Challenges
Bakr Salim
 
PPTX
software enginerring project models e.g (waterfall)
pakistannewsworldnew
 
PDF
System development life cycle(SDLC) .pdf
NipunVindula
 
PPT
Chapter 2
MarchGuzl Maishh
 
PDF
Online examination management system..pdf
Kamal Acharya
 
PPT
Week 10
adrenal
 
PPT
Week 10
adrenal
 
PPTX
The process
prakashvs7
 
PPTX
Software Engineering Introduction -UNIT 1.pptx
Kalpana Mohan
 
PPTX
20CS4103 SE UNIT 1-1.pptx software engineering
shreeabinaya413
 
Software Development Life Cycle
university of education,Lahore
 
Software Testing Introduction
ArunKumar5524
 
Presentation2
Ashams Joseph
 
A Survey on Design of Online Judge System
IRJET Journal
 
Lecture 3 software_engineering
moduledesign
 
Introduction to Software engineering ch03
YousefYassin5
 
Lecture 3 software_engineering
moduledesign
 
SE UNIT-1 Revised.pdf
Dr. Radhey Shyam
 
Software Testing Future and Challenges
Bakr Salim
 
software enginerring project models e.g (waterfall)
pakistannewsworldnew
 
System development life cycle(SDLC) .pdf
NipunVindula
 
Chapter 2
MarchGuzl Maishh
 
Online examination management system..pdf
Kamal Acharya
 
Week 10
adrenal
 
Week 10
adrenal
 
The process
prakashvs7
 
Software Engineering Introduction -UNIT 1.pptx
Kalpana Mohan
 
20CS4103 SE UNIT 1-1.pptx software engineering
shreeabinaya413
 
Ad

More from Nicholas Davis (20)

PPTX
Conducting a NIST Cybersecurity Framework (CSF) Assessment
Nicholas Davis
 
PPTX
Top Cybersecurity Challenges Facing Your Business
Nicholas Davis
 
PPTX
UW-Madison, Information Systems 371 - Decision Support Systems
Nicholas Davis
 
PPTX
Lecture blockchain
Nicholas Davis
 
PPTX
Information systems 365 - Cloud and BYOD Security
Nicholas Davis
 
PPTX
Information Security Awareness: at Work, at Home, and For Your Kids
Nicholas Davis
 
PPTX
Information Systems 365/765, Lecture 4, Policies, Data Classification, Traini...
Nicholas Davis
 
PPTX
Information Systems 371 -The Internet of Things Overview
Nicholas Davis
 
PPTX
Cyberwar Gets Personal
Nicholas Davis
 
PPTX
University of Wisconsin-Madison, Information Security 365/765 Course Summary,...
Nicholas Davis
 
PPT
Bringing the Entire Information Security Semester Together With a Team Project
Nicholas Davis
 
PPT
The Deep and Dark Web - Spooky Halloween Information Security Lecture -- Info...
Nicholas Davis
 
PPTX
Student Presentation Sample (Netflix) -- Information Security 365/765 -- UW-M...
Nicholas Davis
 
PPTX
Information Security Fall Semester 2016 - Course Wrap Up Summary
Nicholas Davis
 
PPTX
Organizational Phishing Education
Nicholas Davis
 
PPT
Security Operations -- An Overview
Nicholas Davis
 
PPT
Network Design, Common Network Terminology and Security Implications
Nicholas Davis
 
PPT
Survey Presentation About Application Security
Nicholas Davis
 
PPT
Information Security 365/765 Lecture 13 – Legal Regulations, Industry Compli...
Nicholas Davis
 
PPT
Demystifying Professional Certifications
Nicholas Davis
 
Conducting a NIST Cybersecurity Framework (CSF) Assessment
Nicholas Davis
 
Top Cybersecurity Challenges Facing Your Business
Nicholas Davis
 
UW-Madison, Information Systems 371 - Decision Support Systems
Nicholas Davis
 
Lecture blockchain
Nicholas Davis
 
Information systems 365 - Cloud and BYOD Security
Nicholas Davis
 
Information Security Awareness: at Work, at Home, and For Your Kids
Nicholas Davis
 
Information Systems 365/765, Lecture 4, Policies, Data Classification, Traini...
Nicholas Davis
 
Information Systems 371 -The Internet of Things Overview
Nicholas Davis
 
Cyberwar Gets Personal
Nicholas Davis
 
University of Wisconsin-Madison, Information Security 365/765 Course Summary,...
Nicholas Davis
 
Bringing the Entire Information Security Semester Together With a Team Project
Nicholas Davis
 
The Deep and Dark Web - Spooky Halloween Information Security Lecture -- Info...
Nicholas Davis
 
Student Presentation Sample (Netflix) -- Information Security 365/765 -- UW-M...
Nicholas Davis
 
Information Security Fall Semester 2016 - Course Wrap Up Summary
Nicholas Davis
 
Organizational Phishing Education
Nicholas Davis
 
Security Operations -- An Overview
Nicholas Davis
 
Network Design, Common Network Terminology and Security Implications
Nicholas Davis
 
Survey Presentation About Application Security
Nicholas Davis
 
Information Security 365/765 Lecture 13 – Legal Regulations, Industry Compli...
Nicholas Davis
 
Demystifying Professional Certifications
Nicholas Davis
 
Ad

Recently uploaded (20)

PDF
Ready Layer One: Intro to the Model Context Protocol
mmckenna1
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 31 2025?
utfefguu
 
PDF
Instantiations Company Update (ESUG 2025)
ESUG
 
PPTX
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
PPTX
Transforming Lending with IntelliGrow – Advanced Loan Software Solutions
Intelli grow
 
PDF
Notification System for Construction Logistics Application
Safe Software
 
PDF
ESUG 2025: Pharo 13 and Beyond (Stephane Ducasse)
ESUG
 
PDF
10 Salesforce Consulting Companies in Sydney.pdf
DianApps Technologies
 
PDF
Latest Capcut Pro 5.9.0 Crack Version For PC {Fully 2025
utfefguu
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PDF
Message Level Status (MLS): The Instant Feedback Mechanism for UAE e-Invoicin...
Prachi Desai
 
PPTX
UI5con_2025_Accessibility_Ever_Evolving_
gerganakremenska1
 
PDF
AI Software Engineering based on Multi-view Modeling and Engineering Patterns
Hironori Washizaki
 
PPTX
Transforming Insights: How Generative AI is Revolutionizing Data Analytics
LetsAI Solutions
 
PDF
Odoo Customization Services by CandidRoot Solutions
CandidRoot Solutions Private Limited
 
PPTX
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
 
PPTX
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
PDF
Windows 10 Professional Preactivated.pdf
asghxhsagxjah
 
PPTX
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
PDF
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
Ready Layer One: Intro to the Model Context Protocol
mmckenna1
 
IDM Crack with Internet Download Manager 6.42 Build 31 2025?
utfefguu
 
Instantiations Company Update (ESUG 2025)
ESUG
 
Smart Doctor Appointment Booking option in odoo.pptx
AxisTechnolabs
 
Transforming Lending with IntelliGrow – Advanced Loan Software Solutions
Intelli grow
 
Notification System for Construction Logistics Application
Safe Software
 
ESUG 2025: Pharo 13 and Beyond (Stephane Ducasse)
ESUG
 
10 Salesforce Consulting Companies in Sydney.pdf
DianApps Technologies
 
Latest Capcut Pro 5.9.0 Crack Version For PC {Fully 2025
utfefguu
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
Message Level Status (MLS): The Instant Feedback Mechanism for UAE e-Invoicin...
Prachi Desai
 
UI5con_2025_Accessibility_Ever_Evolving_
gerganakremenska1
 
AI Software Engineering based on Multi-view Modeling and Engineering Patterns
Hironori Washizaki
 
Transforming Insights: How Generative AI is Revolutionizing Data Analytics
LetsAI Solutions
 
Odoo Customization Services by CandidRoot Solutions
CandidRoot Solutions Private Limited
 
TexSender Pro 8.9.1 Crack Full Version Download
cracked shares
 
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
Windows 10 Professional Preactivated.pdf
asghxhsagxjah
 
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 

Software Development Methodologies

  • 1. Information Systems 371 Lecture 3, January 29, 2019 Topic: Software Development Methodologies Lecturer: Nicholas Davis
  • 2. Let’s Start With Some Humor Related to RAD (Rapid Application Development) 1/28/2019 UNIVERSITY OF WISCONSIN 2
  • 3. Housekeeping • Did everyone get the email I sent on Monday? If not, please write down your email address and give it to me at the end of class • Is the installation of Visual Studio going OK • Programming assignments: What is the best way to learn? How do we avoid having anyone left behind? • Is class going OK? Would you tell me if it wasn’t. I don’t want to learn about it at the end of the semester • How about a visit from Epic? 1/28/2019 UNIVERSITY OF WISCONSIN 3
  • 4. Interesting Article Does Hardware Even Matter Anymore? • https://hbr.org/2015/06/does- hardware-even-matter-anymore • Are you a hardware person or a software person? • Which areas of information systems interest you most, and where do you envision the biggest opportunities? 1/28/2019 UNIVERSITY OF WISCONSIN 4
  • 5. You Don’t Just “Program”, You “Develop Software” • In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management 1/28/2019 UNIVERSITY OF WISCONSIN 5
  • 6. Software Development • Most modern development processes can be vaguely described as agile. Other methodologies include waterfall, prototyping, iterative and incremental development, spiral development, rapid application development, and extreme programming. 1/28/2019 UNIVERSITY OF WISCONSIN 6
  • 7. Agile Software Development • Agile software development describes an approach to software development under which requirements and solutions evolve through the collaborative effort of self- organizing cross-functional teams and their customer/end users • It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change 1/28/2019 UNIVERSITY OF WISCONSIN 7
  • 8. “Pair Programming” in Agile Development 1/28/2019 UNIVERSITY OF WISCONSIN 8
  • 9. Waterfall (Old School) Software Development 1. System and software requirements: captured in a product requirements document 2. Analysis: resulting in models, schema, and business rules 3. Design: resulting in the software architecture 4. Coding: the development, proving, and integration of software 5. Testing: the systematic discovery and debugging of defects 6. Operations: the installation, migration, support, and maintenance of complete systems 1/28/2019 UNIVERSITY OF WISCONSIN 9
  • 10. Waterfall Usually Has 5 or 6 Steps 1/28/2019 UNIVERSITY OF WISCONSIN 10
  • 11. Prototyping Software Development Software prototyping is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing. A prototype typically simulates only a few aspects of, and may be completely different from, the final product. 1/28/2019 UNIVERSITY OF WISCONSIN 11
  • 13. Iterative Software Development • Worst definition EVER: Relating to or involving iteration, especially of a mathematical or computational process. • You start by writing a general application, but then come back to it to add a few more features at a time, over and over, evolving over time 1/28/2019 UNIVERSITY OF WISCONSIN 13
  • 15. Spiral Software Development Don’t even bother learning about this. It is rarely used, and overly complex. Forget about it! 1/28/2019 UNIVERSITY OF WISCONSIN 15
  • 16. Rapid Application Development • RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even in place of design specifications. • RAD is especially well suited for (although not limited to) developing software that is driven by user interface requirements. Graphical user interface builders are often called rapid application development tools. 1/28/2019 UNIVERSITY OF WISCONSIN 16
  • 17. Extreme Software Development • A flat management structure, code simplicity and clarity, expecting changes in the customer's requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers 1/28/2019 UNIVERSITY OF WISCONSIN 17
  • 19. Software Development Life Cycle (SDLC) • The systems development life cycle (SDLC), also referred to as the application development life- cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system. • Uses an enhanced Waterfall methodology • Talk about it at a job interview to sound smart and eat up a bunch of time! 1/28/2019 UNIVERSITY OF WISCONSIN 19
  • 20. SDLC 8 Phases 1. System investigation 2. System analysis 3. Design 4. Environments 5. Testing 6. Training and transition 7. Operations and maintenance 8. Evaluation 1/28/2019 UNIVERSITY OF WISCONSIN 20
  • 21. SDLC System Investigation • The system investigates the IT proposal. During this step, we must consider all current priorities that would be affected and how they should be handled. Before any system planning is done, a feasibility study should be conducted to determine if creating a new or improved system is a viable solution. This will help to determine the costs, benefits, resource requirements, and specific user needs required for completion. The development process can only continue once management approves of the recommendations from the feasibility study. • Following are different components of the feasibility study: • Operational feasibility • Economic feasibility • Technical feasibility • Human factors feasibility • Legal/Political feasibility 1/28/2019 UNIVERSITY OF WISCONSIN 21
  • 22. SDLC Systems Analysis • The goal of system analysis is to determine where the problem is, in an attempt to fix the system. This step involves breaking down the system in different pieces to analyze the situation, analyzing project goals, breaking down what needs to be created and attempting to engage users so that definite requirements can be defined. 1/28/2019 UNIVERSITY OF WISCONSIN 22
  • 23. SDLC Design • Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation. 1/28/2019 UNIVERSITY OF WISCONSIN 23
  • 24. SDLC Development • Environments are controlled areas where systems developers can build, distribute, install, configure, test, and execute systems that move through the SDLC. Each environment is aligned with different areas of the SDLC and is intended to have specific purposes. Examples of such environments follow on the next slide. 1/28/2019 UNIVERSITY OF WISCONSIN 24
  • 25. SDLC Development • Development environment, where developers can work independently of each other before trying to merge their work with the work of others, • Common build environment, where merged work can be built, together, as a combined system, • Systems integration testing environment, where basic testing of a system's integration points to other upstream or downstream systems can be tested, • User acceptance testing environment, where business stakeholders can test against their original business requirements, • Production environment, where systems finally get deployed to, for final use by their intended end users. 1/28/2019 UNIVERSITY OF WISCONSIN 25
  • 26. Do You Know the Dos Equis Guy? “I don’t always drink beer, but when I do, I choose Dos Equis” 1/28/2019 UNIVERSITY OF WISCONSIN 26
  • 27. In a Previous Life, He Was a Software Developer, But Got Fired 1/28/2019 UNIVERSITY OF WISCONSIN 27
  • 28. SDLC Testing • The code is tested at various levels in software testing. Unit, system and user acceptance testings are often performed. This is a grey area as many different opinions exist as to what the stages of testing are 1/28/2019 UNIVERSITY OF WISCONSIN 28
  • 29. So Much Testing in the SDLC • Path testing • Data set testing • Unit testing • Integration testing • System testing • Black-box testing • White-box testing • Regression testing • Automation testing • User acceptance testing • Software performance testing 1/28/2019 UNIVERSITY OF WISCONSIN 29
  • 30. Path Testing • Does data move through the system in the manner you expect? 1/28/2019 UNIVERSITY OF WISCONSIN 30
  • 31. Data Set Testing • Test data is data which has been specifically identified for use in tests, typically of a computer program. • Some data may be used in a confirmatory way, typically to verify that a given set of input to a given function produces some expected result. Other data may be used in order to challenge the ability of the program to respond to unusual, extreme, exceptional, or unexpected input. 1/28/2019 UNIVERSITY OF WISCONSIN 31
  • 32. Unit Testing • Is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for us 1/28/2019 UNIVERSITY OF WISCONSIN 32
  • 33. Integration Testing • Is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before 1/28/2019 UNIVERSITY OF WISCONSIN 33
  • 34. System Testing System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. 1/28/2019 UNIVERSITY OF WISCONSIN 34
  • 35. Black Box Testing • You put something you know, into the system. You expect to get a certain result. Does that result match what you were expecting? You ONLY look at the output, not what happens within each step of the application • There are benefits and drawbacks to Black Box Testing 1/28/2019 UNIVERSITY OF WISCONSIN 35
  • 36. White Box Testing • White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases 1/28/2019 UNIVERSITY OF WISCONSIN 36
  • 37. Regression Testing • Is a type of software testing which verifies that software which was previously developed and tested still performs the same way after it was changed or interfaced with other software. Changes may include software enhancements, patches, configuration changes, etc. During regression testing, new software bugs or regressions may be uncovered. 1/28/2019 UNIVERSITY OF WISCONSIN 37
  • 38. Test Automation • Is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes.[1] Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. 1/28/2019 UNIVERSITY OF WISCONSIN 38
  • 39. User Acceptance Testing • UAT consists of a process of verifying that a solution works for the user. It is not system testing (ensuring software does not crash and meets documented requirements), but rather ensures that the solution will work for the user (i.e., tests that the user accepts the solution); software vendors often refer to this as "Beta testing". 1/28/2019 UNIVERSITY OF WISCONSIN 39
  • 40. Software Performance Testing • Is in general, a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage. 1/28/2019 UNIVERSITY OF WISCONSIN 40
  • 41. SDLC Training and Transition • Once a system has been stabilized through adequate testing, the SDLC ensures that proper training on the system is performed or documented before transitioning the system to its support staff and end users. • Training usually covers operational training for those people who will be responsible for supporting the system as well as training for those end users who will be using the system after its delivery to a production operating environment. 1/28/2019 UNIVERSITY OF WISCONSIN 41
  • 42. Operations and Maintenance • Release • Installation and activation • Deactivation • Uninstallation • Update • Automated Update • Version tracking • Adaptation 1/28/2019 UNIVERSITY OF WISCONSIN 42
  • 43. SDLC Evaluation • The final phase of the SDLC is to measure the effectiveness of the system and evaluate potential enhancements. 1/28/2019 UNIVERSITY OF WISCONSIN 43
  • 44. Strengths and Weaknesses of SDLC 1/28/2019 UNIVERSITY OF WISCONSIN 44 Strengths Weaknesses Control Increased development time Monitor large projects Increased development cost Detailed steps Systems must be defined up front Evaluate costs and completion targets Rigidity Documentation Hard to estimate costs, project overruns Well defined user input User input is sometimes limited Ease of maintenance Development and design standards Tolerates changes in MIS staffing
  • 45. 1/28/2019 UNIVERSITY OF WISCONSIN 45