Caala Assegment (Autosaved) 12431
Caala Assegment (Autosaved) 12431
DEPARTMANT OF MANAGEMENT
INDIVIDUAL ASSIGMENT
NAME ID NUMBER
Table of Contents
ACKNOWLEDGE............................................................................................................................1
OBJECTIVE OF ASSIGNMENT.........................................................................................................4
BACKGROUND OF SOFTWARE..............................................................................................4
Introduction
Background of software
The two main categories of software are application software and system software. An
application is software that fulfills a specific need or performs tasks. System software is designed
to run a computer's hardware and provides a platform for applications to run on top of.
Other types of software include programming software, which provides the programming tools
software developers need; middleware which sits between system software and applications; and
driver software, which operates computer devices and peripherals.
Early software was written for specific computers and sold with the hardware it ran on. In the
1980s, software began to be sold on floppy disks, and later on CDs and DVDs. Today, most
software is purchased and directly downloaded over the internet. Software can be found on
vendor websites or application service provider websites.
Software is a set of instructions or programs that tell a computer how to perform specific tasks. It
is a collection of data or computer instructions that tell the computer how to work.
Among the various categories of software, the most common types include the following:
1.1.2 Application software. The most common type of software, application software is a
computer software package that performs a specific function for a user, or in some cases, for
another application. An application can be self-contained, or it can be a group of programs that
run the application for the user. Examples of modern applications include office suites, graphics
software, databases and database management programs, web browsers, word processors,
software development tools, image editors and communication platforms.
1.1.3 System software. These software programs are designed to run a computer's application
programs and hardware. System software coordinates the activities and functions of the hardware
and software. In addition, it controls the operations of the computer hardware and provides an
environment or platform for all the other types of software to work in. The OS is the best
example of system software; it manages all the other computer programs. Other examples of
system software include the firmware, computer language translators and system utilities.
1.1.4 Driver software. Also known as device drivers, this software is often considered a type of
system software. Device drivers control the devices and peripherals connected to a computer,
enabling them to perform their specific tasks. Every device that is connected to a computer needs
at least one device driver to function. Examples include software that comes with any
nonstandard hardware, including special game controllers, as well as the software that enables
standard hardware, such as USB storage devices, keyboards, headphones and printers.
1.1.5 Middleware. The term middleware describes software that mediates between application
and system software or between two different kinds of application software. For example,
middleware enables Microsoft Windows to talk to Excel and Word. It is also used to send a
remote work request from an application in a computer that has one kind of OS, to an application
in a computer with a different OS. It also enables newer applications to work with legacy ones.
1.1.6 Programming software. Computer programmers use programming software to write code.
Programming software and programming tools enable developers to develop, write, test
and debug other software programs. Examples of programming software include assemblers,
compilers, debuggers and interpreters.
Application software consists of many programs that perform specific functions for end users,
such as writing reports and navigating websites. Applications can also perform tasks for other
applications. Applications on a computer cannot run on their own; they require a computer's OS,
along with other supporting system software programs, to work.
These desktop applications are installed on a user's computer and use the computer memory to
carry out tasks. They take up space on the computer's hard drive and do not need an internet
connection to work. However, desktop applications must adhere to the requirements of the
hardware devices they run on.
Web applications, on the other hand, only require internet access to work; they do not rely on the
hardware and system software to run. Consequently, users can launch web applications from
devices that have a web browser. Since the components responsible for the application
functionality are on the server, users can launch the app from Windows, Mac, Linux or any other
OS.
1.2.2 System software
System software sits between the computer hardware and the application software. Users do not
interact directly with system software as it runs in the background, handling the basic functions
of the computer. This software coordinates a system's hardware and software so users can run
high-level application software to perform specific actions. System software executes when a
computer system boots up and continues running as long as the system is on.
2.1.2 Application-Specific Programs: These are software applications that are designed to
perform specific tasks or functions tailored to a particular industry or field. They are specialized
programs that cater to the unique needs of a specific user group. Examples of application-
specific programs include accounting software, CAD (Computer-Aided Design) software,
medical billing software, and video editing software.
Both general purpose application programs and application-specific programs play important
roles in meeting the diverse needs of users across different sectors and industries. They provide
tools and functionalities that help users accomplish their tasks efficiently and effectively.
System software is used to manage the computer itself. It runs in the background, maintaining
the computer's basic functions so users can run higher-level application software to perform
certain tasks. Essentially, system software provides a platform for application software to be run
on top of.
System software refers to the software that manages and controls the hardware components of a
computer system. It provides a platform for running application software and interacts with the
computer hardware to facilitate the execution of programs. System software includes operating
systems, device drivers, utilities, and other essential programs that help in the proper functioning
of the computer system.
3.1.1 System Management Programs: These are software programs designed to monitor,
control, and manage various aspects of a computer system. They help in optimizing system
performance, ensuring security, and maintaining system stability. Examples of system
management programs include antivirus software, backup utilities, disk defragmentation tools,
and system monitoring tools.
3.1.2 System Development Programs: These are software tools used by developers to create,
test, and maintain software applications. They provide an integrated development environment
(IDE) that includes tools for writing, compiling, debugging, and deploying software programs.
Examples of system development programs include programming languages, code editors,
compilers, debuggers, and version control systems.
System management programs and system development programs are essential components of
the software ecosystem that support the efficient operation and development of computer
systems. They help in ensuring the reliability, security, and performance of the system while
enabling developers to create and maintain software applications effectively.
3.2.1 High speed. System software must be as efficient as possible to provide an effective
platform for higher-level software in the computer system.
3.2.2 Hard to manipulate. It often requires the use of a programming language, which is more
difficult to use than a more intuitive user interface (UI).
3.2.4 Close to the system. It connects directly to the hardware that enables the computer to run.
3.2.5 Versatile. System software must communicate with both the specialized hardware it runs
on and the higher-level application software that is usually hardware-agnostic and often has no
direct connection to the hardware it runs on. System software also must support other programs
that depend on it as they evolve and change.
Database management software plays a crucial role in modern information systems by enabling
organizations to store, retrieve, and analyze large volumes of data efficiently. It helps ensure data
integrity, security, and availability while providing tools for data manipulation, querying, and
reporting.
The DBMS provides a centralized view of data that can be accessed by multiple users from
multiple locations in a controlled manner. A DBMS can limit what data end users see and how
they view the data, providing many views of a single database schema. End users and software
programs are free from having to understand where the data is physically located or on what type
of storage medium it resides because the DBMS handles all requests.
The DBMS can offer both logical and physical data independence to protect users and
applications from having to know where data is stored or from being concerned about changes to
the physical structure of data. So long as programs use the application programming interface
(API) for the database that the DBMS provides, developers won't have to modify programs just
because changes have been made to the database. In a relational database management system
(RDBMS) -- the most widely used type of DBMS -- the API is SQL, a standard programming
language for defining, protecting and accessing data.
4.3.1 Storage engine. This basic element of a DBMS is used to store data. The DBMS must
interface with a file system at the operating system (OS) level to store data. It can use
additional components to store data or interface with the actual data at the file system level.
4.3.2 Metadata catalog. Sometimes called a system catalog or database dictionary, a
metadata catalog functions as a repository for all the database objects that have been created.
When databases and other objects are created, the DBMS automatically registers information
about them in the metadata catalog. The DBMS uses this catalog to verify user requests for
data, and users can query the catalog for information about the database structures that exist
in the DBMS. The metadata catalog can include information about database objects,
schemas, programs, security, performance, communication and other environmental details
about the databases it manages.
4.3.3 Database access language. The DBMS also must provide an API to access the data,
typically in the form of a database access language to access and modify data but may also
be used to create database objects and secure and authorize access to the data. SQL is an
example of a database access language and encompasses several sets of commands,
including Data Control Language for authorizing data access, Data Definition Language for
defining database structures and Data Manipulation Language for reading and modifying
data.
4.3.4 Optimization engine. A DBMS may also provide an optimization engine, which is
used to parse database access language requests and turn them into actionable commands for
accessing and modifying data.
4.3.5 Query processor. After a query is optimized, the DBMS must provide a means for
running the query and returning the results.
4.3.6 Lock manager. This crucial component of the DBMS manages concurrent access to
the same data. Locks are required to ensure multiple users aren't trying to modify the same
data simultaneously.
4.3.7 Log manager. The DBMS records all changes made to data managed by the DBMS.
The record of changes is known as the log, and the log manager component of the DBMS is
used to ensure that log records are made efficiently and accurately. The DBMS uses the log
manager during shutdown and startup to ensure data integrity, and it interfaces with database
utilities to create backups and run recoveries.
4.3.8 Data utilities. A DBMS also provides a set of utilities for managing and controlling
database activities. Examples of database utilities include reorganization, runstats, backup
and copy, recover, integrity check, load data, unload data and repair database.
4.4.1 RDBMS. Sometimes referred to as a SQL DBMS and adaptable to most use cases,
RDBMS presents data as rows in tables with a fixed schema and relationships defined by values
in key columns. RDBMS Tier-1 products can be quite expensive, but there are high quality, open
source options such as PostgreSQL that can be cost-effective. Other examples of popular
RDBMS products include Oracle, MySQL, Microsoft SQL Server and IBM Db2.
4.4.2 NoSQL DBMS. Well-suited for loosely defined data structures that may evolve over
time, NoSQL DBMS may require more application involvement for schema management. There
are four types of NoSQL database systems: document databases, graph databases, key-value
stores and wide-column stores. Each uses a different type of data model, resulting in significant
differences between each NoSQL type.
Document databases store semi-structured data and descriptions of that data in document
format, usually JavaScript Object Notation (JSON). They're useful for flexible schema
requirements such as those common with content management and mobile applications.
Popular document databases include MongoDB and Couchbase.
Graph databases organize data as nodes and relationships instead of tables or documents.
Because it stores the relationship between nodes, the graph system can support richer
representations of data relationships. The graph data model doesn't rely on a strict schema,
and it can evolve over time. Graph databases are useful for applications that map
relationships, such as social media platforms, reservation systems or customer relationship
management. Examples of popular graph databases include Neo4j and GraphDB.
Key-value stores are based on a simple data model that pairs a unique key with an associated
value. Due to this simplicity, key-value stores can be used to develop highly scalable and
performant applications such as those for session management and caching in web
applications or for managing shopping cart details for online buyers. Examples of popular
key-value databases include Redis and Memcached.
Wide-column stores use the familiar tables, columns and rows of relational database systems,
but column names and formatting can differ from row to row in a single table. Each column
is also stored separately on disk. As opposed to traditional row-orientated storage, a wide-
column store is optimal when querying data by columns, such as in recommendation engines,
catalogs, fraud detection and event logging. Cassandra and HBase are examples of wide-
column stores.
4.4.3 New SQL DBMS. Modern relational systems that use SQL, New SQL database systems
offer the same scalable performance as NoSQL systems. But New SQL systems also provide
ACID (atomicity, consistency, isolation and durability) support for data consistency. A New
SQL DBMS is engineered as a relational, SQL database system with a distributed, fault-tolerant
architecture. Other typical features of NewSQL system offerings include in-memory capability
and clustered database services with the ability to be deployed in the cloud. Many NewSQL
DBMS packages have fewer features and components and a smaller footprint than legacy
relational offerings, making them easier to support and understand. Some vendors now eschew
the NewSQL label and describe their technologies as distributed SQL databases. Cockroach DB,
Google Cloud Spanner, NuoDB, Volt Active Data and YugabyteDB are examples of database
systems in this category.
4.4.5 CDBMS. A columnar database management system stores data in tables focused on
columns instead of rows, resulting in more efficient data access when only a subset of columns is
required. It's well-suited for data warehouses that have a large number of similar data items.
Popular columnar database products include Snowflake and Amazon Redshift.
4.4.6 Multimodel DBMS. This system supports more than one database model. Users can
choose the model most appropriate for their application requirements without having to switch to
a different DBMS. For example, IBM Db2 is a relational DBMS, but it also offers a columnar
option. Many of the most popular database systems similarly qualify as multimodel through add-
ons, including Oracle, PostgreSQL and MongoDB. Other products, such as Azure Cosmos DB
and Mark Logic, were developed specifically as multimodel databases.
4.4.7 Cloud DBMS. Built in and accessed through the cloud, the DBMS may be any type
(relational, NoSQL, etc.) and a conventional system that's deployed and managed by a user
organization or a managed service provided by the database vendor. Popular cloud services that
enable cloud database implementation include Microsoft Azure, Google Cloud and AWS.
Central storage and management of data within the DBMS provide the following:
data security;
an efficient handler to balance the needs of multiple applications using the same data;
Another advantage of a DBMS is that database administrators (DBAs) can use it to impose a
logical, structured organization on the data. A DBMS delivers economy of scale for processing
large amounts of data because it's optimized for such operations.
A DBMS can also provide many views of a single database schema. A view defines what data
the user sees and how that user sees the data. The DBMS provides a level of abstraction between
the conceptual schema that defines the logical structure of the database and the physical schema
that describes the files, indexes and other physical mechanisms the database uses. A DBMS
enables users to modify systems much more easily when business requirements change. A DBA
can add new categories of data to the database without disrupting the existing system, thereby
insulating applications from how data is structured and stored.
However, a DBMS must perform additional work to provide these advantages, thereby incurring
overhead. A DBMS will use more memory and CPU than a simple file storage system, and
different types of DBMSes will require different types and levels of system resources.
From a personnel perspective, using a DBMS requires hiring a DBA staff, training developers in
the proper usage of the DBMS, and possibly hiring additional systems programmers for
managing installation and integrating the DBMS into the IT infrastructure. Dealing with
additional complexity is also a concern when implementing a DBMS.
The DBMS software is complex and requires in-depth knowledge to properly implement and
manage. But the DBMS interfaces with many other IT components, such as the OS, transaction
processing systems, programming languages and networking software. Ensuring the proper
configuration and efficiency of such a complicated setup can be difficult and cause performance
slowdowns or even system outages.
Some of the cost and administrative overhead of running enterprise database systems can
be alleviated by the cloud computing model. For example, the cloud service provider (CSP)
installs and manages the hardware, which can be shared across cloud users. Furthermore,
storage, memory and other resources can be scaled up and down as required based on usage
needs. And basic DBA tasks like patching and simple backups become the responsibility of the
CSP. Therefore, it can be easier and more cost-effective for some databases to be deployed in the
cloud instead of on-premises.
Applications can include storing customer and account information, tracking account
transactions such as withdrawals and deposits, and tracking loan payments. ATMs are a good
example of a banking system that relies on a DBMS to track and manage that activity.
DBMSes manage sales for any type of business, including storing product, customer and
salesperson information and recording the sale, tracking fulfillment and maintaining sales
history information.
Most commercial airlines rely on a DBMS for data-intensive applications such as scheduling
flight plans and managing customer flight reservations.
In 2019, Gartner also said that cloud databases were driving most of the growth in the DBMS
market, describing the cloud as "the default platform for managing data." In 2021, Gartner
concluded that "by 2022, cloud database management system revenue will account for 50% of
the total DBMS market revenue." In connection with the increasing shift toward the cloud,
numerous DBMS vendors have introduced managed cloud database services that offer to free IT
and data management teams from many of the tasks required to deploy, configure and administer
database systems.
Another growing trend is what Gartner refers to as HTAP -- using a single DBMS to deliver both
transaction processing and analytics without requiring a separate DBMS for each operation. To
support this trend, more DBMS vendors are creating hybrid database systems that deliver
multiple database engines within a single DBMS. Most hybrid DBMSes provide a combination
of relational and multiple NoSQL engines and APIs. Examples include Airbase, Microsoft's
Azure Cosmos DB and Data tax Enterprise.
SUMMARY
1. A piece of software is a computer program which has been written to carry out a particular
task.
4. Systems software controls the operation of a computer. The operating system and utility
programs are systems software.
5. Application software is software that is written to solve a particular problem or carry out a
particular job. Application software can be either generic or application specific :
6. If you need a piece of software that will perform a specific task then you will have to choose
from one of three options :
Off-the-shelf: If a package already exists that performs exactly the task that you need
then you can buy it "off-the-shelf" from a shop.
Customize a Generic Software Package: Modify a generic package such as a database
to carry out the task.
Custom Written Software: Pay a computer programmer to write a new piece of
software to perform the task.
7. To select a piece of software for a particular job it is useful to draw up a set of comparison
criteria, based upon what you need the software to do.
Database, Collection of data or information organized for rapid search and retrieval, especially
by a computer. Databases are structured to facilitate storage, retrieval, modification, and deletion
of data in conjunction with various data-processing operations. A database consists of a file or
set of files that can be broken down into records, each of which consists of one or more fields.
Fields are the basic units of data storage. Users retrieve database information primarily through
queries. Using keywords and sorting commands, users can rapidly search, rearrange, group, and
select the field in many records to retrieve or create reports on particular aggregates of data
according to the rules of the database management system being used.
Assignment question
What is software?
Drawback of DBMS
Methodology (sources of assignment)
The information in this assignment is based on the thorough research of a reliable primary
sources of different school text book, article, and dependable online research like google.com
Reference.
1. Aaby, Anthony (2004). Introduction to Programming Languages
2. ^ Wexelblat, Richard L. History of Programming Languages
3. ^ Stallings (2005). Operating Systems, Internals and Design Principles. Pearson
4. ^ Kurose, James; Ross, Keith (2005). Computer Networking: A Top-Down Approach.
Pearson.
5. ^ Wayne Carlson (2003) A Critical History of Computer Graphics and Animation
6. ^ Ferguson, R. Stuart. (2013) Practical Algorithms for 3D Computer Graphics
7. ^ Narayan, K. Lalit (2008). Computer Aided Design and Manufacturing. Prentice Hall
8. Baron, Michael. (2006) Probability and Statistics for Computer Scientists
9. Jean E. Sammet (1969). Programming Languages: History and Fundamentals, Prentice
Hall, Englewood Cliffs, New Jersey.
10. ^ R.W. Bemer (1969). A politico-social history of Algol, Annual Review in Automatic
Programming, pp 151-237. Pergamon Press, Oxford.
Millner, W. W.; Montgomery-Smith, Ann (2022). Information and Communication
Technology for Intermediate GNVQ. p. 126.
An Introduction to Database systems, C.J. Date, A.Kannan, S.Swami Nadhan, Pearson, Eight
Edition for UNIT III.