0% found this document useful (0 votes)
17 views

Software Fundamentals

Computer software consists of instructions and programs that enable computers to perform specific tasks, playing a crucial role in modern computing by enhancing productivity, facilitating communication, and managing information. The software development life cycle (SDLC) outlines a structured process for creating high-quality software through stages such as planning, requirement analysis, design, development, testing, and deployment. Various types of software exist, including system software, application software, development software, business software, and embedded software, each serving distinct functions.

Uploaded by

I’m the Batman
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Software Fundamentals

Computer software consists of instructions and programs that enable computers to perform specific tasks, playing a crucial role in modern computing by enhancing productivity, facilitating communication, and managing information. The software development life cycle (SDLC) outlines a structured process for creating high-quality software through stages such as planning, requirement analysis, design, development, testing, and deployment. Various types of software exist, including system software, application software, development software, business software, and embedded software, each serving distinct functions.

Uploaded by

I’m the Batman
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 17

What is Computer Software?

Computer Software refers to the collection of instructions, data, or


programs that are used to operate computers and execute specific
tasks. These are important for the functioning of modern
computing systems.
1. Intangible: Computer software cannot be seen or touched
like hardware.
2. Provides User Interface: Computer Software provides a
user interface that allows users to interact with the
computer.
3. Enhances Efficiency: Efficient computer software makes
optimal use of system resources such as memory,
processing power, and storage.
4. Portability: Computer software is designed with the ability
to run on different hardware platforms or operating
systems with minimal modifications.
5. Documentation: Detailed comprehensive documentation
provides information on how to install, use, and maintain
the computer software.
Role in Modern Computing
Computer software plays a pivotal role in modern computing. Here
are some of the key aspects of the role of computer software in
modern computing:
1. Enhance Productivity: Computer software applications
streamline business processes, enhance productivity, and
reduce manual effort.
2. Seamless Communication: Computer software enables
seamless communication across different platforms. Email
clients, messaging apps, and video conferencing tools have
become essential for personal and professional
interactions.
3. Information Management: DBMS helps in storing,
retrieving, and managing large amounts of data efficiently.
4. E-Learning: E-Learning platforms have provided access to
learning resources and interactive tools that enhance the
educational experience.
5. Security Software: Security Software like Antivirus
programs, firewalls, and encryption software applications
protect data and systems from cyber threats, thus ensuring
the integrity and confidentiality of the information.
History of Computer Software
Timeli
ne Development Description

Development of early computers


Early Software
1940s ENIAC and EDSAC.

1. FORTRAN: For scientific


and engineering
calculations
High-level Languages
2. COBOL: For business
applications
1950s 3. LISP: For AI research

1. IBM’s OS/360 developed.


Operating Systems 2. Multics Project laid the
1960s groundwork for Unix.

1. Unix was developed.


2. C programming language
Expansion of High-level
was created.
Languages and Unix
3. DBMSs such as those
1970s using SQL emerged.

1. MS-DOS became a
standard operating
system for IBM PCs.
Personal Computing 2. Apple introduced the
and Graphical User Macintosh with GUI.
Interfaces 3. Microsoft Windows was
invented.
4. Spreadsheet software
1980s Lotus 1-2-3 was invented.

1990s Internet and Open 1. WWW was developed.


Source 2. Linux emerged as a
powerful OS.
3. Java programming
Timeli
ne Development Description

language was developed.


4. Microsoft released
Windows 95.

1. Cloud computing services


Web 2.0 and Mobile began with Amazon AWS.
Computing 2. The iPhone was
2000s introduced in 2007.

1. Microsoft launched
Windows 10.
2. Mobile apps have become
Mobile Apps and
ubiquitous.
Artificial Intelligence
3. AI and machine learning
saw significant
2010s advancements.

1. Quantum computing
software started to
Cloud Native and develop.
Quantum Computing 2. Cloud-native applications
started to become more
2020s popular.

Types of Computer Software


Here are the different types of Computer Software based on their
functionalities, purposes, and usage:

1. System Software
System software manages hardware and basic system operations
and serves as a foundation for application software. It serves as a
bridge between hardware and use r and ensures that the system
operates efficiently and effectively. This includes Operating
Systems, Device Drivers, and Utility Software.

2. Application Software
Application Software refers to the programs designed to perform
specific tasks for end-users such as web browsing, gaming, word
processing, etc. This includes Productivity Software (Microsoft
Office, Google Workspace), Database Software (MySQL, Oracle
Database), Communication Software (Slack, Skype), and Graphics
Software (Adobe Photoshop, CoralDraw).

3. Development Software
Development Software includes tools and environments that are
used by developers and programmers to create, debug, and
maintain software applications. This includes
IntegerateDevelopmentnt Environments (Eclipse, Microsoft Visual
Studio), Code Editors (Atom, Visual Studio Code), and Version
Control Software (Git, GitHub).

4. Business Software
Business Software refers to the applications that assist
organizations in managing their operations, improving productivity,
and facilitating various business activities. This includes Enterprise
Resource Planning (ERP), Customer Relationship Management
(CRM), and Accounting Software (QuickBooks, Xero).

5. Embedded Software
Embedded software is computer software that is designed to
operate hardware and perform specific tasks within a larger
system. It is optimized for particular functions and integrated into
the hardware it controls. This includes Firmware (BIOS in computer)
and Control Systems (Software in automotive control systems).

How Does Computer Software Work?


Here are the explanation of how the computer software works:
1. Coding: Software developers write the instructions using
programming languages like Java, Python, etc. These
instructions are in the form of algorithms and logic to
achieve specific tasks.
2. Compilation/ Interpretation: Depending upon the
programming language the code is either compiled or
interpreted. Programming languages like C, C++, and C# in
which code is compiled and programming languages like
PHP, Python, and Ruby in which code is interpreted.
3. Execution: Once the software is compiled/ interpreted, it
can be executed by the CPU. The CPU reads and executes
the machine instructions generated from the code.
4. Interaction: The software interacts with OS and hardware
to perform tasks as instructed.
5. Output: The software produces output based on its
instructions which may include generating reports,
controlling hardware devices, etc.

How is Computer Software Distributed?


Here are some of the primary ways in which software is distributed:
1. Physical Media: This includes CDs/ DVDs and USB Drives.
Software is packaged and distributed on these physical
media, often with installation instructions.
2. Digital Downloads: Users download the software directly
from the developer’s website or platforms like Apple App
Store, Google Play Store, and Microsoft Store.
3. Cloud-based Services: Users access the software over
the internet on a subscription basis or some software can
be stored and accessed via cloud storage services like
Dropbox or Google Drive.
4. Open-source Repositories: Developers can share and
distribute open-source software projects through platforms
like GitHub. Many programming languages and operating
systems have package managers such as npm for Node.js
that distribute software libraries and tools.
5. Pre-installed on Devices: Software is often pre-installed
on computers, smartphones, and other devices before they
are sold to customers.

Computer Software Examples


Here are some of the examples of Computer Software:
1. Operating Systems: These include Windows, macOS,
Linux, and Mobile OS such as Android, and iOS.
2. Productivity Software: This includes Microsoft Office,
Google Workspace, Note-taking software such as Evernote,
and OneNote, and Project Management Software such as
Trello, and Microsoft Project.
3. Web Browsers: Some of the popular web browsers are
Google Chrome, Mozilla Firefox, Safari, and Microsoft Edge.
4. Security Software: Security software includes Antivirus,
Firewall, and Password Managers.
5. Database Management Software: DBMS includes
Relational Database such as MySQL, PostgreSQL, and
Oracle Database and Non-Relational Database such as
MongoDB, and Redis.

Security in Computer Software


Security in Computer Software refers to the practices that are
designed to protect the software from unauthorized access, cyber-
attacks, malware, and data breaches. Here are some key aspects
of the security of software applications:
1. Authorization: Granting permission to users based on
their roles and responsibilities.
2. Encryption: Protecting information by encrypting it so that
it can be accessed by only authorized users.
3. Vulnerability Management: Regularly identifying,
accessing, and mitigating the security vulnerabilities in
software through regular updates and patches.
4. Secure Coding Practices: Following the best practices for
writing the code to minimize the vulnerabilities such as
buffer overflows.
5. Regular Security Audits: Conduct regular security audits
of the software to identify and address security
weaknesses.
Future of Computer Software
Here are some of the developments expected to affect the future of
software:
1. Artificial Intelligence and Machine Learning: AI and
ML will enhance the capabilities of the software such as
automation, data analysis, and personalized user
experiences.
2. Quantum Computing: Software will need to be developed
to use quantum computing to solve complex problems
faster than the classic computers.
3. Internet of Things (IoT): Software will need to manage,
analyze, and secure the vast amount of data generated by
IoT devices.
4. Augmented Reality (AR) and Virtual Reality
(VR): Software will be more focused on creating realistic
interactive environments using AR and VR.
5. Decentralized Applications (DApps): DApps will gain
popularity in finance, supply chain, and voting systems.
(Geeks for Geeks , 2024)

References
Geeks for Geeks . (2024, Jun 19). What is a Computer Software? Retrieved from Geeks for Geeks website:
https://www.geeksforgeeks.org/what-is-a-computer-software/

Software Development Life Cycle (SDLC)


Last Updated : 18 Jul, 2024


Software development life cycle (SDLC) is a structured


process that is used to design, develop, and test good-
quality software. SDLC, or software development life cycle, is a
methodology that defines the entire procedure of software
development step-by-step.
Software Development Life Cycle (SDLC)

The goal of the SDLC life cycle model is to deliver high-quality,


maintainable software that meets the user’s requirements. SDLC in
software engineering models outlines the plan for each stage so that
each stage of the software development model can perform its task
efficiently to deliver the software at a low cost within a given time
frame that meets users’ requirements.

Full Form of SDLC


SDLC stands for Software Development Life Cycle.
What is Software Development Life
Cycle (SDLC)?
SDLC is a process followed for software building within a
software organization. SDLC consists of a precise plan that
describes how to develop, maintain, replace, and enhance specific
software. The life cycle defines a method for improving the quality
of software and the all-around development process.
Stages of the Software Development Life Cycle
SDLC specifies the task(s) to be performed at various stages by a
software engineer or developer. It ensures that the end product is
able to meet the customer’s expectations and fits within the overall
budget. Hence, it’s vital for a software developer to have prior
knowledge of this software development process.
Stages of the Software Development Life Cycle Model SDLC

The SDLC model involves six phases or stages while


developing any software. SDLC is a collection of these six stages,
and the stages of SDLC are as follows:
Stage-1: Planning and Requirement Analysis
Planning is a crucial step in everything, just as in software
development. In this same stage, requirement analysis is also
performed by the developers of the organization. This is attained
from customer inputs, and sales department/market surveys.
The information from this analysis forms the building blocks of a
basic project. The quality of the project is a result of planning.
Thus, in this stage, the basic project is designed with all the
available information.
Stage-1 : Planning and Requirement Analysis

Stage-2: Defining Requirements


In this stage, all the requirements for the target software are specified. These
requirements get approval from customers, market analysts, and stakeholders.
This is fulfilled by utilizing SRS (Software Requirement Specification). This is a sort
of document that specifies all those things that need to be defined and created during
the entire project cycle.
Stage-2 : Defining Requirements

Stage-3: Designing Architecture


SRS is a reference for software designers to come up with the best architecture for the
software. Hence, with the requirements defined in SRS, multiple designs for the
product architecture are present in the Design Document Specification (DDS).
This DDS is assessed by market analysts and stakeholders. After evaluating all the
possible factors, the most practical and logical design is chosen for development.
Stage 3: Design

Stage-4: Developing Product


At this stage, the fundamental development of the product starts. For this, developers
use a specific programming code as per the design in the DDS. Hence, it is important
for the coders to follow the protocols set by the association. Conventional
programming tools like compilers, interpreters, debuggers, etc. are also put into use at
this stage. Some popular languages like C/C++, Python, Java, etc. are put into use as
per the software regulations.
>
Stage 4: Development

Stage-5: Product Testing and Integration


After the development of the product, testing of the software is
necessary to ensure its smooth execution. Although, minimal
testing is conducted at every stage of SDLC. Therefore, at this
stage, all the probable flaws are tracked, fixed, and retested. This
ensures that the product confronts the quality requirements of
SRS.

Documentation, Training, and Support: Software


documentation is an essential part of the software development life
cycle. A well-written document acts as a tool and means to
information repository necessary to know about software
processes, functions, and maintenance. Documentation also
provides information about how to use the product. Training in an
attempt to improve the current or future employee performance by
increasing an employee’s ability to work through learning, usually
by changing his attitude and developing his skills and
understanding.

Stage 5: Testing

Stage-6: Deployment and Maintenance of Products


After detailed testing, the conclusive product is released in phases
as per the organization’s strategy. Then it is tested in a real
industrial environment. It is important to ensure its smooth
performance. If it performs well, the organization sends out the
product as a whole. After retrieving beneficial feedback, the
company releases it as it is or with auxiliary improvements to make
it further helpful for the customers. However, this alone is not
enough. Therefore, along with the deployment, the product’s
supervision.
Stage 6: Deployment and Maintenance

Software Development Life Cycle Models


To this day, we have more than 50 recognized SDLC models in use.
But None of them is perfect, and each brings its favorable aspects
and disadvantages for a specific software development project or a
team.
In this article, We’ve listed the top five most popular SDLC
models below.
1. Waterfall Model
It is the fundamental model of the software development life cycle.
This is a very simple model. The waterfall model is not in practice
anymore, but it is the basis for all other SDLC models. Because of
its simple structure, the waterfall model is easier to use and
provides a tangible output. In the waterfall model, once a phase
seems to be completed, it cannot be changed, and due to this less
flexible nature, the waterfall model is not in practice anymore.
2. Agile Model
The agile model in SDLC was mainly designed to adapt to changing
requests quickly. The main goal of the Agile model is to facilitate
quick project completion. The agile model refers to a group of
development processes. These processes have some similar
characteristics but also possess certain subtle differences among
themselves.

3. Iterative Model
In the Iterative model in SDLC, each cycle results in a semi-
developed but deployable version; with each cycle, some
requirements are added to the software, and the final cycle results
in the software with the complete requirement specification.

4. Spiral Model
The spiral model in SDLC is one of the most crucial SDLC models
that provides support for risk handling. It has various spirals in its
diagrammatic representation; the number of spirals depends upon
the type of project. Each loop in the spiral structure indicates
the Phases of the Spiral model.

5. V-Shaped Model
The V-shaped model in SDLC is executed in a sequential manner
in V-shape. Each stage or phase of this model is integrated with a
testing phase. After every development phase, a testing phase is
associated with it, and the next phase will start once the previous
phase is completed, i.e., development & testing. It is also known as
the verification or validation model.

6. Big Bang Model


The Big Bang model in SDLC is a term used to describe an informal
and unstructured approach to software development, where there
is no specific planning, documentation, or well-defined phases.

What is the need for SDLC?


SDLC is a method, approach, or process that is followed by a
software development organization while developing any
software. SDLC models were introduced to follow a disciplined and
systematic method while designing software. With the software
development life cycle, the process of software design is divided
into small parts, which makes the problem more understandable
and easier to solve. SDLC comprises a detailed description or step-
by-step plan for designing, developing, testing, and maintaining the
software.
(Geeks for Geeks, 2024)

References
Geeks for Geeks. (2024, Jul 18). Software Development Life Cycle (SDLC). Retrieved from Geeks for Geeks
website: https://www.geeksforgeeks.org/software-development-life-cycle-sdlc/

You might also like