This document discusses software paradigms and characteristics of good software. It defines software paradigms as the methods and steps used in designing software, which can be categorized into software development, software design, and programming paradigms. The document outlines the objectives, characteristics, and examples of each paradigm. It also describes characteristics of good software, noting it should satisfy operational, transitional, and maintenance criteria such as cost, usability, efficiency, flexibility, and reliability.
2. I. Course Code IT 226
II. Course Title Application Development and Emerging Technologies
III. Chapter 2 of 3
IV. Module Title Understanding the Requirements Gathering in Software Development
V. Overview of the
Module
This chapter will allow the students to understand the importance of
requirements gathering in software development. With this chapter,
students would be able to determine kinds of requirements
specifications in software development and demonstrate data gathering
techniques and its guidelines. In the end, readers would be able to
present requirements gathering framework as baseline for software
development.
VI. Module Outcomes As for the outcome of the module, you are about to:
Learn on how to interpret a data;
learn different ways on how to manage a data;
describe the requirements analysis process and techniques;
use the correct usability testing method for a software development;
and
4. Lesson Objectives:
At the end of this lesson, you will be able to:
a. Understand the principle of requirements gathering and
specifications.
b. Know how and what requirements to gather.
c. Define the techniques in requirements gathering.
d. Identify the importance of requirements gathering.
5. What are requirements and its
specifications?
A requirement is a statement about an intended product that
specifies what it should do or how it should perform.
• Goal: To make as specific, unambiguous, and clear as possible.
• Functional Specifications: What the system should do
• Non-Functional Specifications: What constraints there are on
the system its development.
8. What requirements should be gathered?
• Functional:
What the product should do.
• Data requirements:
Capture the type, volatility, size/amount, persistence, accuracy
and the amounts of the required data.
• Environmental requirements:
Capture the type, volatility, size/amount, persistence, accuracy
and the amounts of the required data.
9. System Software
• Helps run the computer hardware and computer system
itself. System software includes operating systems, device
drivers, diagnostic tools and more. System software is
almost always pre-installed on your computer.
10. Application software
• Allows users to accomplish one or more tasks. It includes
word processing, web browsing and almost any other task
for which you might install software. (Some application
software is pre- installed on most computer systems.)
11. Programming software
• A set of tools to aid developers in writing programs. The
various tools available are compilers, linkers, debuggers,
interpreters and text editors.
12. Basic Principles
1. Software, commonly known as programs or apps,
consists of all the instructions that tell the hardware how
to perform a task.
2. These instructions come from a software developer in the
form that will be accepted by the platform (operating
system + CPU) that they are based on.
13. Basic Principles
For example, a program that is designed for the Windows
operating system will only work for that specific
operating system. Compatibility of software will vary as
the design of the software and the operating system
differ. Software that is designed for Windows XP may
experience a compatibility issue when running under
Windows 2000 or NT.
14. Basic Principles
3. Software, in its most general sense, is a set of instructions
or programs instructing a computer to do specific tasks.
Software is a generic term used to describe computer
programs. Scripts, applications, programs and a set of
instructions are all terms often used to describe software.
16. Software Evolution
The process of developing a software product using
software engineering principles and methods is referred to
as software evolution. This includes the initial development
of software and its maintenance and updates, till desired
software product is developed, which satisfies the expected
requirements.
17. Software Evolution
Evolution starts from the requirement gathering
process. After which developers create a prototype of the
intended software and show it to the users to get their
feedback at the early stage of software product
development. The users suggest changes, on which several
consecutive updates and maintenance keep on changing
too.
18. Software Evolution
This process changes to the original software, till the
desired software is accomplished. Even after the user has
desired software in hand, the advancing technology and the
changing requirements force the software product to
change accordingly. Re-creating software from scratch and
to go one-on-one with requirement is not feasible. The only
feasible and economical solution is to update the existing
software so that it matches the latest requirements.
22. Eight laws for software evolution
1. Continuing Change
A software system must continue to adapt to the real world
changes, else it becomes progressively less useful.
23. Eight laws for software evolution
2. Increasing Complexity
A software system evolves, its complexity tends to increase
unless work is done to maintain or reduce it.
24. Eight laws for software evolution
3. Conservation of familiarity
The familiarity with the software or the knowledge about
how it was developed, why was it developed in that
particular manner etc. must be retained at any cost, to
implement the changes in the system.
25. Eight laws for software evolution
4. Continuing Growth
In order for a system intended to resolve some business
problem, its size of implementing the changes grows
according to the lifestyle changes of the business.
26. Eight laws for software evolution
5. Reducing Quality
A software system declines in quality unless rigorously
maintained and adapted to a changing operational
environment.
27. Eight laws for software evolution
6. Feedback Systems
The software systems constitute multi-loop, multi-level
feedback systems and must be treated as such to be
successfully modified or improved.
28. Eight laws for software evolution
7. Self-regulation
A system evolution processes are self-regulating with the
distribution of product and process measures close to
normal.
29. Eight laws for software evolution
8. Organization Stability
The average effective global activity rate in an evolving a
system is invariant over the lifetime of the product.
30. Eight laws for software evolution
8. Organization Stability
The average effective global activity rate in an evolving a
system is invariant over the lifetime of the product.
34. 1. The following are examples of system software except.
a. Windows 10
b. Microsoft Office
c. Unix
d. Linux
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
35. 2. The following are examples of Application Software except.
a. Microsoft Powerpoint
b. Microsoft Edge
c. Google Chrome
d. Disk Defragmenter
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
36. 3. Which of the following is an example Programming Software?
a. Microsoft Word
b. Android Studio
c. Avast Anti-virus
d. Windows Operating System
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
37. 4. The following are true except
a. Software consists of instructions that tell the hardware how to
perform a task.
b. Software is collection of executable programming code.
c. Software is capable of performing many tasks, as opposed to
hardware.
d. Software can run without the support of hardware components.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
38. 5. Allows users to accomplish one or more tasks. It includes word
processing, web browsing and almost any other task for which
you might install software.
a. System Software
b. Application Software
c. Programming Software
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
39. 6. Class of software that helps run the computer hardware and
computer system itself.
a. System Software
b. Application Software
c. Programming Software
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
40. 7. Class of software that helps run the computer hardware and
computer system itself.
a. System Software
b. Application Software
c. Programming Software
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
41. 8. Operating systems, device drivers, and diagnostic tools is
categorized as?
a. System Software
b. Application Software
c. Programming Software
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
42. 9. Software that aids developers in writing programs.
a. System Software
b. Application Software
c. Programming Software
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
43. 10. This class of software includes word processors, web browser
and almost any other application that helps users to
accomplish many more task.
a. System Software
b. Application Software
c. Programming Software
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
44. 11. Class of software that includes tools like compilers, linkers,
debuggers, interpreters and text editors.
a. System Software
b. Application Software
c. Programming Software
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
45. 12. The process of developing a software product using software
engineering principles and methods is referred to as.
a. Software development
b. Software evolution
c. Software update
d. Software application
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
46. 13. Software Evolution starts with?
a. Creating a prototype
b. Getting users feedback
c. Requirements gathering
d. Observing the software functions
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
47. 14. Data/information that are gathered by the software developers
to evolved software mostly came from.
a. gossips
b. memes
c. user feedback
d. user observation
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
48. 15. Software evolution means
a. maintenance a software
b. improvement a software
c. creating new software
d. using a software
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
50. 1. Software that is design for newer version platform may
experience compatibility issue in older version of the same
platform.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
51. 2. A software design with complexity tends to evolve on its own if
let alone.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
52. 3. Re-creating software is more feasible that updating the
software.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
53. 4. Software designed for mobile platform will work on any other
platform.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
54. 5. One of the main purposes of software development is to
satisfies the expected requirements of the users.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
55. 6. After the user has a desired software in hand, the advancing
technology and the changing requirements force the software
product to change accordingly.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
56. 7. The most feasible and economical solution in software evolution
is to update the existing software so that it matches the latest
requirements.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
57. 8. Software is more than just a program code. A program is an
executable code, which serves some computational purpose and
can learn on its own.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
58. 9. Self-regulating software are capable of maintaining and
upgrading itself and adapt depending on the changing operational
environment.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
59. 10. A software system must continue to adapt to the real world
changes, software often evolve without the intervention of
software developers.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
61. a. Continuing change
b. Increasing
complexity
c. Conservation of
familiarity
d. Continuing growth
e. Reducing quality
f. Feedback systems
g. Self-regulation
h. Organizational
stability
i. Platform
j. Software product
1. Operating system + CPU
2. A software system evolves, its complexity tends to increase unless work is
done to maintain or reduce it.
3. A software system must continue to adapt to the real-world changes, else
it becomes progressively less useful.
4. A software system declines in quality unless rigorously maintained and
adapted to a changing operational environment.
5. The familiarity with the software or the knowledge about how it was
developed, why was it developed in that particular manner etc. must be
retained at any cost, to implement the changes in the system.
6. The software systems constitute multi-loop, multi-level feedback systems
and must be treated as such to be successfully modified or improved.
7. Software, when made for a specific requirement is called
8. System evolution processes are self-regulating with the distribution of
product and process measures close to normal.
9. In order for a system intended to resolve some business problem, its size
of implementing the changes grows according to the lifestyle changes of
the business.
10. The average effective global activity rate in evolving a system is invariant
over the lifetime of the product.
65. Software Paradigm
• Software paradigms refer to the methods and steps, which
are taken while designing the software.
• These can be combined into various categories, though
each of them is contained in one another.
68. Software Development
Paradigm
• This Paradigm is known as software engineering
paradigms where all the engineering concepts pertaining
to the development of software are applied. It includes
various researches and requirement gathering which helps
the software product to build. It consists of the following:
• Requirement gathering
• Software design
• Programming
72. Programming Paradigm
• This paradigm is related closely to programming aspect of
software development. This includes –
• Coding
• Testing
• Integration
74. Characteristics of good
software
• A software product can be judged by what it offers and
how well it can be used. This software must satisfy on the
following grounds:
• Operational
• Transitional
• Maintenance
75. Operational
• This tells us how well software works in operations. It can
be measured on:
1. Budget – cost
2. Usability – the degree of ease with which products
such as software and Web applications can be used
to achieve required goals effectively and efficiently.
76. Operational
3. Efficiency – is defined as a level of performance that
uses the lowest amount of inputs to create the
greatest amount of outputs.
4. Correctness – adherence to the specifications that
determine how users can interact with the software
and how the software should behave when it is used
correctly.
5. Functionality – is the ability of the system to do the
work for which it was intended.
77. Operational
6. Dependability – is the ability to provide services that
can defensibly be trusted within a time-period.
7. Security – secured system
8. Safety
78. Transitional
• This aspect is important when the software is moved from
one platform to another:
1. Portability - the usability of the same software in
different environments
2. Interoperability - the ability of computer systems or
software to exchange and make use of information
79. Transitional
• Reusability - the use of existing assets in some form
within the software product development process;
these assets are products and by-products of the
software development life cycle and include code,
software components, test suites, designs and
documentation.
• Adaptability - an open system that is able to fit its
behavior according to changes in its environment or in
parts of the system itself
80. Maintenance
• This aspect briefs about how well a software has the
capabilities to maintain itself in the ever-changing
environment:
1. Modularity - the extent to which a software/Web
application may be divided into smaller modules.
2. Maintainability - is defined as the degree to which an
application is understood, repaired, or enhanced.
81. Maintenance
3. Flexibility - it normally refers to the ability for the
solution to adapt to possible or future changes in its
requirements.
4. Scalability - is the ability of a program to scale
82. QUIZ #2
IT 226 - APPLICATIONS DEVELOPMENT AND EMERGING
TECHNOLOGIES
84. 1. This is where all the engineering concepts pertaining to
the development of software are applied.
a. Software Development Methods
b. Software Development Paradigm
c. Software Design Paradigm
d. Programming Paradigm
0
1
2
3
4
5
6
7
8
9
10
85. 2. This aspect is important when the software is moved
from one platform to another.
a. Operational
b. Transitional
c. Maintenance
d. None of the above
0
1
2
3
4
5
6
7
8
9
10
Non-Functional Specifications: For example that a work processor runs on different platforms
Non-Functional Specifications: (For example that a work processor runs on different platforms)
Non-Functional Specifications: (For example that a work processor runs on different platforms)
At the end of this lesson, you should be able to
There are many methods proposed and are in work today, but we need to see where in the software engineering these paradigms stand.
We discussed from our first lesson that the process of developing a software product using software engineering principles and methods is called/referred to as software evolution.
Programming paradigm is a subset of Software design paradigm which is further a subset of Software development paradigm.
Software design does not only refer to the visual appearance of a software, this includes the design of how the system should work or the flow of the developed software.
Integrating means, adding your new code or program into an existing software, program or code.
Software is more than just a program code. A program is an executable code, which serves some computational purpose. Software is considered to be collection of executable programming code, associated libraries and documentations. Software, when made for a specific requirement is called software product.
Budget/cost – or the cost required or needed to procure/produce such software. This includes the components (hardware) that are needed by the software.