ZeePedia

Software Design and Development Methodologies

<< Low, High-Level, interpreted, compiled, structured & object-oriented programming languages
DATA TYPES & OPERATORS >>
img
Introduction to Computing ­ CS101
VU
LESSON 20
SW DEVELOPMENT METHODOLOGY
We discussed the role of programming languages in computing
We also discussed the differences among low- & high-level, interpreted & compiled, and structured &
object-oriented programming languages
We also discussed the object-oriented and the structured methodologies for SW design
Any Other SW Design Methodologies?
-- Spaghetti Design Methodology
The most popular software design (programming) methodology
Today's Lecture
Development process of reasonably complex SW systems does not consist of "coding" only
We will become familiar with the various phases of the process that developers follow to develop SW
systems of reasonable complexity
SW Life-Cycle
The sequence of phases a SW goes through from the concept to decommissioning
It is important to think about all those phases before the design work starts
Thinking about the future phases generally results in:
Shorter delivery times
Reduced costs of development
A system of higher quality
A Case in Point
I didn't discuss with the customer the specs of the HW & OS before developing a particular e-
commerce SW.
I wrote it for the HW/OS that was easily available to me.
Unfortunately that HW/OS combination differed from what was easily available to the client Result:
Huge amount of rework. Higher cost. Delayed delivery. Lower quality.
Therefore, now before designing a SW system, I first write down the installation manual, and get it
OK'd by the customer. I do the same with the Operation & Maintenance manual as well.
123
img
Introduction to Computing ­ CS101
VU
Simple SW Life Cycle
Concept
Development
Operation &
Maintenance
Decommissioning
Concept & Feasibility
Detailed View Of SW
Developoment Life Cycle
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
124
img
Introduction to Computing ­ CS101
VU
Concept & Feasibility
Concept: What needs to be done?
User Requirements
Feasibility: Preliminary exploration of possible
solutions, technologies, suppliers
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Concept & Feasibility
The user documents as much as he
knows about the job the system must
do
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
125
img
Introduction to Computing ­ CS101
VU
Detailed plan specifying
the required resources
and expected
deliverables
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Developer analyses users requirement,
Concept & Feasibility
performs further investigation, and produces
unambiguous specifications
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
126
img
Introduction to Computing ­ CS101
VU
Concept & Feasibility
Architecture: Decompose the problem into
subsystems and define their relationships
User Requirements
Developer Specs
Planning
Design
Implementation
Detailed Design:
Decompose further such
that one person can
Integration Testing
manage each sub-
subsystem
Opr. & Maintenance
Retirement
Design
Coding
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
127
img
Introduction to Computing ­ CS101
VU
Bring the sub-
subsystems together to
form subsystems and
test. Bring subsystems
together to form the
system and test
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Use
Enhance
Adapt
Correct
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
128
img
Introduction to Computing ­ CS101
VU
Phase it out when the time comes
Concept & Feasibility
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Concept & Feasibility
User Requirements
Test
Developer Specs
Test
Planning
Test
Test
Design
Test
Implementation
Integration Testing
Acceptance Test
Opr. & Maintenance
Retirement
129
img
Introduction to Computing ­ CS101
VU
Concept & Feasibility
Customer's lack of
knowledge about
User Requirements
requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Concept & Feasibility
Lag
User Requirements
Developer Specs
Planning
Design
Implementation
Integration Testing
Opr. & Maintenance
Retirement
Other Life-Cycle Models
The sequence of phases (or the life-cycle mode) that I showed is just one example of the several
sequences that SW developers follow
130
img
Introduction to Computing ­ CS101
VU
This one is called the "Waterfall" model
You will learn about some more models (e.g. the Spiral model) in your future courses
The Waterfall Lifecycle Model and its Derivatives
www.cs.qub.ac.uk/~J.Campbell/myweb/misd/node3.html
In Today's Lecture
We became familiar with the various phases of the process that developers follow to develop SW
systems of reasonable complexity
We looked at a couple of problems related to the Waterfall SW development model
Next Lecture: 2nd In the Productivity SW Series Spreadsheets
We will become familiar with the basic features and functions of spreadsheets
We will become able to perform simple data analysis using spreadsheet SW
131
Table of Contents:
  1. INTRODUCTION
  2. EVOLUTION OF COMPUTING
  3. World Wide Web, Web’s structure, genesis, its evolution
  4. Types of Computers, Components, Parts of Computers
  5. List of Parts of Computers
  6. Develop your Personal Web Page: HTML
  7. Microprocessor, Bus interface unit, Data & instruction cache memory, ALU
  8. Number systems, binary numbers, NOT, AND, OR and XOR logic operations
  9. structure of HTML tags, types of lists in web development
  10. COMPUTER SOFTWARE: Operating Systems, Device Drivers, Trialware
  11. Operating System: functions, components, types of operating systems
  12. Forms on Web pages, Components of Forms, building interactive Forms
  13. APPLICATION SOFTWARE: Scientific, engineering, graphics, Business, Productivity, Entertainment, Educational Software
  14. WORD PROCESSING: Common functions of word processors, desktop publishing
  15. Interactivity to Forms, JavaScript, server-side scripts
  16. ALGORITHMS
  17. ALGORITHMS: Pseudo code, Flowcharts
  18. JavaScript and client-side scripting, objects in JavaScript
  19. Low, High-Level, interpreted, compiled, structured & object-oriented programming languages
  20. Software Design and Development Methodologies
  21. DATA TYPES & OPERATORS
  22. SPREADSHEETS
  23. FLOW CONTROL & LOOPS
  24. DESIGN HEURISTICS. Rule of thumb learned through trial & error
  25. WEB DESIGN FOR USABILITY
  26. ARRAYS
  27. COMPUTER NETWORKS: types of networks, networking topologies and protocols
  28. THE INTERNET
  29. Variables: Local and Global Variables
  30. Internet Services: FTP, Telnet, Web, eMail, Instant messaging, VoIP
  31. DEVELOPING PRESENTATIONS: Effective Multimedia Presentations
  32. Event Handlers
  33. GRAPHICS & ANIMATION
  34. INTELLIGENT SYSTEMS: techniques for designing Artificial Intelligent Systems
  35. Mathematical Functions in JavaScript
  36. DATA MANAGEMENT
  37. DATABASE SOFTWARE: Data Security, Data Integrity, Integrity, Accessibility, DBMS
  38. String Manipulations:
  39. CYBER CRIME
  40. Social Implications of Computing
  41. IMAGES & ANIMATION
  42. THE COMPUTING PROFESSION
  43. THE FUTURE OF COMPUTING
  44. PROGRAMMING METHODOLOGY
  45. REVIEW & WRAP-UP of Introduction to Computing