The Nature of Software
• An Overview of Software Concepts,
Application Domains, and Legacy Systems
What is Software?
• Software is a collection of programs,
procedures, and associated documentation
and data.
Characteristics of Software
• • Intangible
• • Developed, not manufactured
• • Doesn’t wear out
• • Custom-built or generic
Software vs Hardware
• • Software: Logical & intangible
• • Hardware: Physical & tangible
• • Software controls hardware
Defining Software – IEEE
• IEEE defines software as: ‘Computer programs,
procedures, and possibly associated
documentation and data’.
Components of Software
• 1. Programs
• 2. Data
• 3. Documentation
Types of Software
• • System Software
• • Application Software
• • Embedded Software
• • AI and Scientific Software
System vs Application Software
• • System: OS, device drivers
• • Application: Word processors, games
Embedded Software
• Software embedded in hardware devices like
washing machines, cars, routers.
Web and Mobile Applications
• Apps that run on the internet or mobile
devices.
• E.g., Browsers, Banking apps
AI and Scientific Applications
• Used in machine learning, simulations, and
scientific research.
Software Application Domains
• • Business
• • Engineering and Scientific
• • Embedded Systems
• • Web/Mobile Apps
Business Software Domain
• Examples: ERP, CRM, Billing systems.
• Supports business operations and decision
making.
Legacy Software
• Old software still in use due to functionality
and cost of replacement.
• Often lacks documentation.
Challenges of Legacy Software
• • Difficult maintenance
• • Integration issues
• • Poor documentation
• • Risky replacement
Software Engineering: McCall's Quality
Factors
• Understanding software quality using McCall's
model.
What is Software Quality?
• Software quality refers to how well software is
designed and how well it conforms to
functional requirements.
Introduction to McCall’s Quality Model
• Developed in 1977 by Jim McCall to bridge the
gap between users and developers.
McCall’s Model Structure
• Three major perspectives:
• • Product Operation
• • Product Revision
• • Product Transition
Product Operation Factors
• Focus on the operational characteristics of the
software:
• • Correctness
• • Reliability
• • Efficiency
• • Integrity
• • Usability
Correctness
• The extent to which software performs its
intended functions.
Reliability
• The ability of software to maintain its
performance over time without failure.
Efficiency
• How well software uses system resources and
its responsiveness.
Integrity
• Protection of software from unauthorized
access or modifications.
Usability
• Ease with which users can learn and operate
the software.
Product Revision Factors
• Relate to the ease of modifying the software:
• • Maintainability
• • Flexibility
• • Testability
Maintainability
• Ease with which software can be corrected or
modified.
Flexibility
• Ease of changing software to meet new
requirements.
Testability
• Ease with which software can be tested to
ensure quality.
Product Transition Factors
• Concerned with adapting software to new
environments:
• • Portability
• • Reusability
• • Interoperability
Portability
• Ease of transferring software to different
environments.
Reusability
• Extent to which software components can be
reused in other applications.
Interoperability
• Ability of software to interact with other
systems or software.
Summary of McCall’s Quality Factors
• Total of 11 quality factors grouped into 3
categories:
• Operation, Revision, Transition.
Conclusion
• McCall’s model provides a foundational
framework for evaluating and improving
software quality.

Software Engineering BSC DS UNIT 1 .pptx