You are on page 1of 36

Introduction to Software Development

What is a Software?
• Software is a set of instructions, data or programs used
to operate computers and execute specific tasks. It is
the opposite of hardware, which describes the physical
aspects of a computer. Software is a generic term used
to refer to applications, scripts and programs that run
on a device.
What is a computer software?
• Computer software is a program that enables a
computer to perform a specific task, as opposed to the
physical components of the system (hardware). This
includes application software such as a word processor,
which enables a user to perform a task, and system
software such as an operating system, which enables
other software to run properly, by interfacing with
hardware and with other software.
Types computer software
• 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.
Types computer software
• 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.
Types computer software
• 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.
Types computer software
• 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.
Types computer software
• 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.
Software licenses
• Proprietary software
A software that has restrictions on using and copying it, usually
enforced by a proprietor.
Software licenses
• Free software
• As defined by the Free Software Foundation, is software which
can be used, copied, studied, modified, and redistributed
without restriction.
Software licenses
• Open-source software
Computer software whose source code is available under a copyright
license that permits users to study, change, and improve the software,
and to redistribute it in modified or unmodified form. It is the most
prominent example of open source development.
Software licenses
• Freeware
Copyrighted computer software which is made available for use free of
charge, for an unlimited time, as opposed to shareware, in which the
user is required to pay (for example, after some trial period).
Software licenses
• Shareware
• A marketing method for commercial software, whereby a trial
version is distributed in advance and without payment, as is
common for proprietary software. Shareware software is
typically obtained free of charge, either by downloading from
the Internet or on magazine cover-disks.
Design and implementation
• Software Development Life Cycle
A framework that project managers use to describe the stages
and tasks associated with designing software.
Software Design Process
• Transforms user requirements into a form that
computer programmers can use to do the software
coding and implementation. The software engineers
develop the software design iteratively, adding detail
and correcting the design as they develop it.
Types of Software Design
• Architectural design. This is the foundational design,
which identifies the overall structure of the system, its
main components and their relationships with one
another using architectural design tools.
Types of Software Design
• High-level design. This is the second layer of design
that focuses on how the system, along with all its
components, can be implemented in forms of modules
supported by a software stack. A high-level design
describes the relationships between data flow and the
various modules and functions of the system.
Types of Software Design
• Detailed design. This third layer of design focuses on
all the implementation details necessary for the
specified architecture.
The Evolution of Computers and Software
• Babbage’s Difference Engine
Charles Babbage, a mathematician
from England born in 1791, is credited
with designing the first automatic
computing machine. Although he
designed it, he was unable to actually
build it. The idea of the steam-driven
calculating machine was to have the
ability to compute tables of numbers.
His project was funded by the English
government. It failed, and the first
Babbage Difference Engine wasn’t built
until 2002 in London.
The Evolution of Computers and Software
• Herman Hollerith’s Punch
Card System
Considered the first statistical
engineer, Herman Hollerith developed
a punch card system to help with the
1890 census. The government was
able to do the census in much less
time, saving millions of dollars. His
punch card system was a step towards
automated computation. In 1896,
Hollerith founded the Tabulating
Machine Company which became part
of IBM in 1924.
The Evolution of Computers and Software
• J.V. Atanasoff and Clifford Barry’s
Information Storing Computer
The father of the computer, John Vincent
(J.V.) Atanasoff was born in 1903. He taught
at Iowa State College in the 1940s, and with
the help of one of his students, the first
electric digital computer was designed. His
electrical engineering student, Clifford Barry
is credited with creating what they called the
ABC computer, a large system weighing over
700 pounds. The computer was not
considered a general purpose computer, as
it could only do what it was created to do,
which was solve a specific set of linear
equations.
The Evolution of Computers and Software
• John Mauchly and J. Presper
Eckert’s Electronic Numerical
Integrator and Calculator
The Electronic Numerical Integrator and
Calculator (ENIAC) is considered the first
general purpose computer. It was invented
by John Mauchly and J. Presper Eckert at
the University of Pennsylvania in 1946.
The initial goal of the computer was to
calculate artillery firing tables for the U.S.
Army’s Ballistic Research Laboratory and
to help fight against the German forces in
WWII. The massive machine weighed over
50 tons and cost around $500,000 to make.
The Evolution of Computers and Software
• COBOL and FORTRAN
FORTRAN is known as one of the oldest computer programming
languages. Published in 1957, its main function was to translate math
formulas into codes. Common Business-Oriented Language (COBOL)
was developed in 1959 by Grace Hopper. It was primarily developed
for use in business, finance, and administrative systems for
companies and governments.
The Evolution of Computers and Software
• Jack Kilby and Robert Noyce’s
Integrated Circuit
Jack Kilby is credited with having invented
the first solid circuit as a new employee of
a company in Dallas called Texas
Instruments. His invention was patented
and made public in 1960. Around the
same time, another man in a different part
of the country was working on building a
whole circuit on a single chip. In 1961,
Robert Noyce’s integrated circuit was
patented. Both men are credited with
building the first integrated circuit, but it
was Kilby who received the Nobel Prize in
the year 2000 for its invention.
The Evolution of Computers and Software
• Douglas Engelbart’s Modern
Computer
Known as the father of the computer mouse,
Douglas Engelbart also oversaw the creation
of the On-Line System (NLS). This system,
developed at the Stanford Research Institute,
allowed for instant communication over
computer networks. Done with a computer
mouse and graphical user interface, this kind
of personal computing paved the way for the
Apple Macintosh computer. Engelbart’s
inspiration for the invention is thought to
have come from the radar consoles he used
while in the Navy during WWII.
The Evolution of Computers and Software
• Intel’s First DRAM Chip
The first Dynamic Random Access
Memory (DRAM) Chip was released
in 1970 by Intel. The Mountain View,
California, company was just a few
years old when the DRAM Chip was
released. Known as the i1103, it
became the best-selling
semiconductor chip in the world. The
i1103 became commercially
available for use on the HP 9800
series computer.
The Evolution of Computers and Software
• IBM’s Floppy Disk
The first floppy disk, or diskette, was
used in 1967 by IBM. The disks
became an affordable and reliable
way to load microcode into their
mainframe computers. The floppy
disk became commercially available
in 1971. Throughout the years, the
floppy disk decreased in size and
increased in the amount of memory
space available.
The Evolution of Computers and Software
• The IBM 5100
In 1975, the first portable computer
became available. Known as the IBM
5100, it weighed over 50 pounds and
cost anywhere from $8,975 to nearly
$20,000. The size of a small
suitcase, it could be transported in a
large carrying case. It was not very
successful and was discontinued in
1978.
The Evolution of Computers and Software
• Steve Jobs and Steve
Wozniak’s Apple 1 and Apple
2
The first Apple computer known as
Apple-1 was created by the Apple
Computer Company, which formed in
1976. It was designed and built by
Steve Wozniak. His friend, Steve
Jobs came up with the idea of
selling the computer. The Apple-2
was introduced in 1977.
The Evolution of Computers and Software
• The First IBM Personal
Computer
The first personal computer (PC)
was released by IBM in 1981. The
operating system was developed
with the help of Bill Gates from
Microsoft. It ran on a 4.77 MHz Intel
8088 microprocessor and contained
16 kilobytes of memory. The first PC
cost nearly $1,500.
The Evolution of Computers and Software
• The First IBM Personal
Computer
The first personal computer (PC)
was released by IBM in 1981. The
operating system was developed
with the help of Bill Gates from
Microsoft. It ran on a 4.77 MHz Intel
8088 microprocessor and contained
16 kilobytes of memory. The first PC
cost nearly $1,500.
The Evolution of Computers and Software
• The Birth of Microsoft
Windows
In 1983, a company called Microsoft
Corporation announced a Graphical
User Interface (GUI) for its operating
system. The product was first called
Interface Manager. Marketing
professionals convinced Bill Gates
to change the name to Windows.
Microsoft 1.0 was introduced in
1985.
The Evolution of Computers and Software
• Tim Berners-Lee’s HTML
The basics for hypertext were first proposed in 1945. It wasn’t until
1990 that hypertext markup language (HTML) was created. Tim
Berners-Lee was the lead author of the new computer language. Its
primary function was to create documents on the World Wide Web.
The Evolution of Computers and Software
• The Pentium Processor
Replacing the 486, Intel’s Pentium processor was introduced in 1993.
With it, the use of music and graphics on PCs became highly advanced.
Through the years, the Pentium has evolved to help produce faster
speeds for both personal computers and servers for multiple users.
The Evolution of Computers and Software
• Mac OSX and Windows XP
A series of Unix-based graphical
interface operating systems, Mac
OSX was developed and designed
by Apple in the late 1990s. The
operating system has been pre-
installed on all Macintosh
computers since 2002. Windows XP
is an operating system produced by
Microsoft. Development began in
the late 1990s, and it was first
released in 2001.
The Evolution of Computers and Software
• Apple Ipad/Tablet Computers
• The first system for tablet computers
was demonstrated back in 1956 with
the use of handwriting recognition in
the place of a keyboard. In 1987,
Apple dabbled in the development of
a tablet computer, but didn’t get very
far. In 1999, Microsoft developed its
first tablet, but it didn’t gain
popularity due to ongoing technical
problems. The introduction of Apple’s
iPad in 2010 renewed interest in the
tablet computer market and has since
proven to be extremely successful.

You might also like