Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
MCA-5 unit1
1. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 1
Unit 1
System Programming
Software is the set of programs (instructions) that tell a computer what to
do”
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. It can be of various types such as Application
Software, System Software, Firmware, Driver Software, Freeware, Shareware,
Open Source Software, Closed Source Software, Utility Software etc. Other
types of software include programming software, which provides the
programming tools software developers need; middleware, which sits between
system software and applications
Software can take the form of one line of code or, like Microsoft‟s Windows
operating system, span into millions. Software also works with other software
to join as a cohesive system. Your smartphone is a collection of thousands of
software components designed to work together. Code languages and styles
vary in size and scope. The software used to work a modern microwave is very
different from the code that runs an Apple Mac.
Software engineering is an engineering branch associated with development of
software product using well-defined scientific principles, methods and
procedures. The outcome of software engineering is an efficient and reliable
software product.
Software paradigms refer to the methods and steps, which are taken while
designing the software. There are many methods proposed and are in work
today, but we need to see where in the software engineering these paradigms
stand. These can be combined into various categories, though each of them is
contained in one another:
Software project management has wider scope than software engineering
process as it involves communication, pre and post-delivery support etc. For
example, it can lead for software to update, maintain, test(testing), write code,
Design, analyse, deploy etc.
2. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 2
Software Evolution Laws
Lehman has given laws for software evolution. He divided the software into
three different categories:
S-type (static-type) - This is a software, which works strictly according
to defined specifications and solutions. The solution and the method to
achieve it, both are immediately understood before coding. The s-type
software is least subjected to changes hence this is the simplest of all. For
example, calculator program for mathematical computation.
P-type (practical-type) - This is a software with a collection
of procedures. This is defined by exactly what procedures can do. In this
software, the specifications can be described but the solution is not
obvious instantly. For example, gaming software.
E-type (embedded-type) - This software works closely as the
requirement of real-world environment. This software has a high degree
of evolution as there are various changes in laws, taxes etc. in the real-
world situations. For example, Online trading software.
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:
1) Operational [Budget, Usability, Efficiency, Correctness, Functionality,
Dependability, Security, Safety]
2) Transitional [portability, re-usability, Adaptability, Interoperability]
3) Maintenance [Scalability, upgradability, extensibility, troubleshoot ability
etc]
Types of Software
System software
System software is software that directly operates the computer hardware and
provides the basic functionality to the users as well as to the other software to
operate smoothly. Or in other words, system software basically controls a
computer‟s internal functioning and also controls hardware devices such as
monitors, printers, and storage devices, etc. It is like an interface between
hardware and user applications, it helps them to communicate with each other
3. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 3
because hardware understands machine language (i.e. 1 or 0) whereas user
applications are work in human-readable languages like English, Hindi,
German, etc. so system software converts the human-readable language into
machine language and vice versa.
System software is a type of computer program that is designed to run a
computer's hardware and application programs.
System software provides a platform for other software and includes the
programs managing the computer itself, such as the computer‟s operating
system, file management utilities and disk operating system (or DOS). The
system‟s files consist of libraries of functions, system services, drivers for
printers and other hardware, system preferences and other configuration files.
The programs in system software encompass assemblers, compilers, file
management tools, system utilities and debuggers.
While application software is non-essential and won‟t shut down your device by
being uninstalled, system software is essential and creates a platform that apps
sit inside.
Types of system software:
Operating System: It is the main program of a computer system. When the
computer system ON it is the first software that loads into the computer‟s
memory. Basically, it manages all the resources such as memory, CPU, printer,
hard disk, etc., and provides an interface to the user, which helps the user to
interact with the computer system. It also provides various services to another
computer software. Examples of operating systems are Linux, Apple macOS,
Microsoft Windows, etc.
Device Driver: A device driver is a program or software that controls a device
and helps that device to perform its functions. Every device like a printer,
mouse, modem, etc. needs a driver to connect with the computer system
eternally. So, when you connect a new device with your computer system, first
you need to install the driver of that device so that your operating system knows
how to control or manage that device. For example
Other examples include game engines, computational science software,
industrial automation software and software as a service application.
Graphic cards
Network cards
Mouse and keyboard
4. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 4
When you insert a USB flash drive into your computer, the OS recognises it as a
new device. The driver then gets installed automatically to make it functional.
Drivers are part of the system software category. Without them, nothing would
work. Hardware manufacturers are usually responsible for creating driver
software. However, Linux and Chromebook often get overlooked because of
their small market share. Thankfully the coding community comes to the rescue.
Someone writes the code to make the device work correctly on their system.
They then share the driver online for others to download and use.
Firmware
Firmware is software that‟s stored on a computer‟s motherboard or chipset. Its
job is to ensure the device works directly. When you switch on your laptop,
the Basic Input Output System (BIOS) wakes everything up.
It checks the drive for errors then queries if the operating system is present. If
so, it then turns control over to the likes of Windows 10.
Programming software, also known as a programming tool or software
development tool, is a program that assists software developers or programmers
with creating, debugging and maintaining other programs and applications.
Programming software is considered to be a subset of system software, although
there is still a debate regarding this.
Compilers, assemblers, debuggers, interpreters etc. are examples of
programming software. Integrated development environments (IDEs) are
combinations of all this software. IDEs have tools like highlighting errors in
code. They also contain in-built compilers and preview how the app will work
before testing it on a phone.
Trying to track down a bug over thousands of lines of code is next to impossible
in a simple text editor. Yet an IDE makes that easier resulting in quicker
development time and robust software.
For Example:
GitHub, GitLab, Android Studio, Visual Studio Code, Eclipse, XCode,
Notepad++, Atom etc
Features of System Software:
1. System Software is closer to the computer system.
5. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 5
2. System Software is written in a low-level language in general.
3. System software is difficult to design and understand.
4. System software is fast in speed (working speed).
5. System software is less interactive for the users in comparison to
application software.
Applications software
An application is any program, or group of programs, that is designed for the
end user. Applications software (also called end-user programs) include such
things as database programs, word processors, Web browsers and spreadsheets.
Types of Application Software and Examples
1. General Purpose Software: This type of application software is used for
a variety of tasks and it is not limited to performing a specific task only.
For example, MS-Word, MS-Excel, PowerPoint, etc.
2. Customized Software: This type of application software is used or
designed to perform specific tasks or functions or designed for specific
organizations. For example, railway reservation system, airline
reservation system, invoice management system, etc.
3. Utility Software: This type of application software is used to support the
computer infrastructure. It is designed to analyze, configure, optimize and
maintains the system, and take care of its requirements as well. For
example, antivirus, disk fragmenter, memory tester, disk repair, disk
cleaners, registry cleaners, disk space analyzer, etc.
Word Processing Software: Google Docs, Microsoft Word, WordPad and
Notepad
Database Software: MySQL, Microsoft SQL Server, Microsoft Access,
Oracle, IBM DB2 and FoxPro
Spreadsheet Software: Google Sheets, Apple Numbers and Microsoft
Excel
Multimedia Software: Media Player, Winamp, QuickTime and VLC
Media Player
Presentation Software: Google Slides, Microsoft Powerpoint, Keynotes,
Prezzy
6. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 6
Enterprise Software: customer relationship management (CRM) software
(HubSpot, Microsoft Dynamic 365)), project management tools (Jira,
Monday), marketing automation tools (Marketo, HubSpot), enterprise
resource planning (ERP) software (SAGE, Oracle, Microsoft Dynamics),
treasury management system (TMS) software (SAP S/4HANA Finance,
Oracle Treasury), business intelligence (BI) software (SAP Business
Intelligence, MicroStrategy, Microsoft Power BI)
Information Worker Software: Documentation tools, resource
management tools
Communication Software: Zoom, Google Meet, Skype
Educational Software: Dictionaries – Encarta, Britannica; Mathematical:
MATLAB; Others: Google Earth, NASA World Wind
Simulation Software: Flight and scientific simulators
Content Access Software: Accessing content through media players, web
browsers
Application Suites: Apache OpenOffice, Microsoft Office365, Apple‟s
iWork, LibreOffice, G-Suite, Oracle E-Business Suite
Software for Engineering and Product Development: IDE or Integrated
Development Environments
Email Software: Microsoft Outlook, Gmail, Apple Mail
Features of Application Software:
1. An important feature of application software is it performs more
specialized tasks like word processing, spreadsheets, email, etc.
2. Mostly, the size of the software is big, so it requires more storage space.
3. Application software is more interactive for the users, so it is easy to use
and design.
4. The application software is easy to design and understand.
5. Application software is written in a high-level language in general.
Some 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.
7. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 7
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.
Freeware: Freeware sounds like free software or open-source software but
there‟s a difference. Freeware software does not expose or share its source code.
Yet the software owner does not charge others to use it. Freeware licences vary
as to what the software can be used for and who can share it.
Some developers only allow their freeware for private or personal use.
Businesses need a paid licence or get written permission. Only approved
developers and marketers can get access to the program.
Always read the small print and be wary of the copyright of freeware licences.
Freeware software examples cover a wide base of useful applications from
audio to virtual machines. Benefits: You pay nothing for fully developed
software. You can uninstall it if you don‟t like the features. There are no
companies „forcing‟ you to upgrade.
Freeware also helps the online community to share and grow. Developers can
showcase their talents while businesses can avail of some excellent apps.
Shareware
Like freeware, shareware is free to use and share with others, but only for a
short time. It acts as an evaluation. You can try some or all of the features
before committing to a purchase. Examples of Shareware: WinZip is one of the
most established shareware apps.
It started in 1991 when compression software wasn‟t included in Windows.
Nearly thirty years later, it still sees high download volumes. The free trial is
time-limited but all versions include encryption.
Benefits: Shareware lets you try the software for free before purchasing a full
licence. Some give a limited feature set or are time-locked. “Try before you
buy” is a great way to check if the software is right for your business‟s needs.
Open Source Software
Open source means you can explore the actual code that the app was written in.
8. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 8
Strict software licences restrict what another developer is able to do with the
code. However, the ethos behind open-source is to encourage development.
Open source means evolving the code to make it better for everyone.
The Linux OS is the perfect example of open-source software. Developers can
download the source code and edit it as they see fit. New flavours of Linux help
target a certain need as a result.
Benefits: Github.com is the top destination for coders to save and share their
code.
Repositories are often open source and developers can find the right solution to
their issues easily. They can clone whole projects or download elements for
free.
Closed Source Software
Most applications are closed source in that they do not expose the original code.
Licences are stringent. No unauthorised copying or cracking is allowed. The
app can be commercial or private but it requires payment of some kind to use.
Any app that hides or encrypts its source code is considered closed-source.
For example, Skype allows video conferencing. It‟s owned by Microsoft and
although free to use, the corporation charges high-volume users a fee.
Benefits: Closed source software is designed for commercial use.
Developers are often employed to write code. That costs money. Therefore,
companies don‟t want their investment shared without recompense.
Utility Software
Utility software is designed to analyse and optimise a device. These apps are
usually bundled with an OS. They track performance and alert the system if
there‟s a problem like overheating.
Examples: The Windows Task Manager shows all open processes in Windows.
It details performance over time and showcases how much memory each uses,
anti-virus software and backup apps.
Benefits: Keeping a close eye on overheating is essential as is scanning for
malware. Utility software helps to keep things stable. It‟s designed to make your
system run smooth and not get damaged due to overuse.
9. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 9
System Software Application Software
It is designed to manage the resources of
the computer system, like memory and
process management, etc.
It is designed to fulfill the
requirements of the user for
performing specific tasks.
Written in a low-level language Written in a high-level language
Less interactive for the users More interactive for the users
System software plays vital role for the
effective functioning of a system.
Application software is not so
important for the functioning of the
system, as it is task specific.
It is independent of the application
software to run. It needs system software to run.
Language Processor:
As we know that system software (compilers, Interpreters etc) converts the
human-readable language into a machine language and vice versa. So, the
conversion is done by the language processor. It converts programs written in
high-level programming languages like Java, C, C++, etc (known as source
code), into sets of instructions that are easily readable by machines (known as
object code or machine code).
In the compilation process, there are several stages. To help programmers write
error-free code, tools are available.
Assembly language is machine-dependent, yet mnemonics used to represent
instructions in it are not directly understandable by machine and high-Level
language is machine-independent. A computer understands instructions in
machine code, i.e. in the form of 0s and 1s. It is a tedious task to write a
computer program directly in machine code. The source code cannot be
executed directly by the computer and must be converted into machine language
to be executed. Hence, a special translator system software is used to translate
10. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 10
the program written in a high-level language into machine code is called
Language Processor and the program after translated into machine code (object
program/object code).
The language processors can be any of the following three types:
1. Compiler: The language processor that reads the complete source
program written in high-level language as a whole in one go and translates it
into an equivalent program in machine language is called a
Compiler. Example: C, C++, C#, Java. In a compiler, the source code is
translated to object code successfully if it is free of errors. The compiler
specifies the errors at the end of the compilation with line numbers when
there are any errors in the source code. The errors must be removed before
the compiler can successfully recompile the source code again.
2. Assembler: The Assembler is used to translate the program written in
Assembly language into machine code. The source program is an input of
an assembler that contains assembly language instructions. The output
generated by the assembler is the object code or machine code
understandable by the computer. Assembler is basically the 1st interface
that is able to communicate humans with the machine. We need an
Assembler to fill the gap between human and machine so that they can
communicate with each other. code written in assembly language is some
sort of mnemonics(instructions) like ADD, MUL, MUX, SUB, DIV, MOV
and so on. and the assembler is basically able to convert these mnemonics
in Binary code. Here, these mnemonics also depend upon the architecture
of the machine. For example, the architecture of intel 8085 and intel 8086
are different.
4. Interpreter: The translation of a single statement of the source
program into machine code is done by a language processor and
executes immediately before moving on to the next line is called an
interpreter. If there is an error in the statement, the interpreter terminates
its translating process at that statement and displays an error message.
The interpreter moves on to the next line for execution only after the
removal of the error. An Interpreter directly executes instructions
written in a programming or scripting language without previously
converting them to an object code or machine code. Example: Perl,
Python and Matlab.
11. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 11
Compiler Assembler
Compiler converts the source code
written by the programmer to a
machine level language.
Assembler converts the assembly
code into the machine code.
Compiler input source code.
Assembler input assembly
language code.
It converts the whole code into
machine language at a time.
But the Assembler can‟t do this at
once.
A Compiler is more intelligent than an
Assembler.
But, an Assembler is less
intelligent than a Compiler.
The compilation phases are lexical
analyzer, syntax analyzer, semantic
analyzer, intermediate code generated,
a code optimizer, code generator, and
error handler
Assembler makes two phases
over the given input, first phase
and the second phase.
The output of compiler is a mnemonic
version of machine code.
The output of assembler is binary
code.
C, C++, Java, and C# are examples of
compiled languages.
GAS, GNU is an example of an
assembler.
12. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 12
Compiler Interpreter
A compiler is a program that converts
the entire source code of a programming
language into executable machine code
for a CPU.
An interpreter takes a source
program and runs it line by line,
translating each line as it comes
to it
The compiler takes a large amount of
time to analyze the entire source code but
the overall execution time of the program
is comparatively faster.
An interpreter takes less amount
of time to analyze the source
code but the overall execution
time of the program is slower.
The compiler generates the error
message only after scanning the whole
program, so debugging is comparatively
hard as the error can be present anywhere
in the program.
Its Debugging is easier as it
continues translating the program
until the error is met.
The compiler requires a lot of memory
for generating object codes.
It requires less memory than a
compiler because no object code
is generated.
Generates intermediate object code.
No intermediate object code is
generated.
For Security purpose compiler is more
useful.
The interpreter is a little
vulnerable in case of security.
Examples: C, C++, Java, FORTRAN,
PASCAL
Examples: Python, Perl,
JavaScript, Ruby, LISP, APL,
Prolog interpreter,
13. MCA V – 2021- Unit 1 Class Notes: Dr.V Dutta Page 13
Assignment 1: Describe Native and Cross Compilers
Native Compiler Cross Compiler
Translates program for same
hardware/platform/machine on it
is running.
Translates program for different
hardware/platform/machine other
than the platform which it is
running.
It is used to build programs for
same system/machine & OS it is
installed.
It is used to build programs for
another system/machine like
AVR/ARM.
It is dependent on
System/machine and OS
It is independent of System/machine
and OS
It can generate executable file
like .exe It can generate raw code.hex
TurboC or GCC is native
Compiler. Keil is a cross compiler.