Chapter 4: Software and Mobile Devices
Middleware
- Software that allows different systems to communicate and exchange data Application Programming Interface (API) Device drivers Enterprise Application Interface (EAI) Service-oriented architecture (SOA)
Database Applications
- Store, manipulate, and retrieve data
Software suites
- a collection of programs packaged together and sold in a bundle Programs are designed to work similarly & Bundled suite is cost effective
Evaluation criteria
- efficiency, ease of use
Compilers and Interpreters
- translate the programmer's source code into machine language called the object code. CPU executes the object code Compiler converts the entire source code into machine language statement (object code) and then executes. -Compiled programs are executed at a faster speed -Take more memory because the entire object code has to reside in memory. -Errors are displayed after compilation, not during compilation.
Examples of Workgroup application software
-Group scheduling software -Electronic mail -Software that enables people to share ideas - (IBM notes, Domino) -Use of web based software for group use. How is google used for collaborative computing
Tips for reducing the impact of bugs
-Register all software so that you receive bug alerts, fixes, and patches -Install the latest software updates -Consider waiting before buying the latest release
Used on mainframe computers
-Support many users -Deliver high performance -Excellent system availability -Strong security -Scalability -Examples of mainframe OSs -z/OS: IBM's first 64-bit enterprise O -HP-UX from Hewlett-Packard -Linux
Multithreading
: allows different threads of a single program to run concurrently. Thread is a set of instructions within an application that is independent of other threads. For example in a spreadsheet program, the thread to open the workbook is separate from adding figures in a column
Other user interfaces
A natural user interface (NUI) or touch user interface Speech recognition - using voice command Sight interfaces - depending on where a person is looking on the screen Brain interfaces - sensors attached to human brain. Can detect brain waves and control a computer
Windows server
A powerful Web server management system, Advanced security features, Robust administrative support Virtualization tools that allow various operating systems to run on a single server Containerization
User Interface and Input/Output Management ----------Functions of operating system
A user interface allows individuals to access and interact with the computer system A command-based user interface requires text commands A graphical user interface (GUI) uses icons and menus to send commands to the computer system
Networking Capability ---Functions of operating system
Allows computers in a network to send and receive data and share computing resources
Memory management ---Functions of operating system
Allows the computer to execute program instructions effectively and to speed processing Virtual memory
Integrated Development Environment (IDE
An integrated development environment (IDE) is a software suite that consolidates the basic tools developers need to write and test software. Typically, an IDE contains a code editor, a compiler or interpreter, a debugger, functions and libraries, and tools for creating interfaces that the developer accesses through a single graphical user interface.
Microsoft PC operating system
As of Windows 10, Microsoft is moving away from releasing major new versions, but will provide ongoing, incremental upgrades and improvements Plans to make Windows 10 a common platform for any machine - smartphone, laptop, desktop - with variations to allow for differing screen sizes and uses
2 GL
Assembly Language
UNIX - originally developed by AT&T for minicomputers
Can be used on many computer system types and platforms including workstations, servers, and mainframes Makes it easy to move data and programs among computers or to connect mainframes and workstations to share resources High cost platform compared to Linux and Windows Server Variants of UNIX HP -UX, AIX from IBM, Solaris from Oracle
Google: Android and Chrome: Personal computing operating systems
Chrome OS Chromium OS Android
Advantages of Cloud Computing
Cost savings to users as high initial costs are spread over many users Scalability - increase or decrease usage based on demand
Word Processing
Create, edit, and print text documents
Workgroup application software (Groupware)
Designed to support teamwork with people in the same location or dispersed around the world Allows a team to work together remotely, sharing ideas and work via connected computer systems.
Presentation Graphics Program
Develop graphs, illustrations, drawings, and presentations.
Apple Computer operating system (Mac OS X) - first release, July 2001
Dual booting Mac OS X cannot be run on any machine other than Apple device Can connect to other iOS devices - iPad, iPhone, iPod
Mac OS X Server
First modern server OS from Apple Based on the UNIX OS Makes it easy to collaborate, develop software, host Web sites and wikis, configure Mac and iOS devices, and remotely access a network
Some Types of utility programs
Hardware utilities Security utilities File compression utilities Spam filtering utilities Network and internet utilities
Personal Information Managers
Helps people, groups, and organizations store useful information, such as a list of tasks to complete or a set of names and addresses.
Cloud Computing
In the simplest terms, cloud computing means storing and accessing data and programs over the Internet instead of your computer's hard drive. The cloud is just a metaphor for the Internet.
IaaS
Infrastructure as a service a third-party provider hosts hardware, software, servers, storage, networks and other infrastructure components including system maintenance, and backup. Company pays a monthly service charge or a per-use fee
File Management ---Functions of operating system
Keeps track of where each file is stored Ensures that files in secondary storage are available when needed Protects files from access by unauthorized users
Chrome OS
Linux-based operating system designed for netbooks and nettops primarily used to access Web-based information and services (e-mail, Web browsing, social networks, online applications) Designed to run on inexpensive low-power computers
Dual booting
Mac users can set up their computers to run both Windows and Mac OS X and select the platform when they boot their computers.
Generation of programming languages 1 GL
Machine language
Linux -Personal computing operating systems
Open-source operating system developed by Linus Torvalds in 1991. Three of the most widely used distributions come from Red Hat, SUSE, Canonical. *Take open source code and combine it into a single operating system *May also add finishing touches that determine how the desktop looks like, what browser and optional software are included *Optimize it to perform in a particular environment, such as for a desktop or server
Processing tasks ---Functions of operating system
Operating systems use five basic approaches to task management to speed up processing: Multiuser Multiprocessing Multitasking Multithreading Real time
Global software support
Outsource global support to one or more third -party distributors
Spreadsheet Analysis
Perform statistical, financial, logical, database, graphics, and date and time calculations using a wide range of built-in functions
Current Operating Systems
Personal computing operating systems Workgroup operating systems Enterprise operating system Embedded system
PaaS
Platform as a service delivers hardware and software tools -- usually those needed for application development -- to its users as a service. Examples, Web sites, database servers, CRM.
4GL
Problem Oriented Language
3 GL
Procedural Language
Types of Application Software
Proprietary software Off-the-shelf software
Access to System Resources and Security ---Functions of operating system
Provides protection against unauthorized access to the users' data and programs Establishes a logon procedure May control access to specific system resources Tracks who is using the system, length of use, and attempted security breaches
Three Models of Cloud Computing
SaaS PaaS IaaS
Disadvantages of Cloud Computing
Sensitive information can be compromised Loss of control
Programming languages
Sets of keywords, commands, symbols, and a system of rules for constructing statements: -Provide instructions to the computer system to perform a task (processing activity) -Line of code (statement) typically contains a single instruction -Allows humans to communicate instructions to a computer
Deciding to upgrade challenging to corporations
Should be cost effective for corporations (Cost vs Benefit) Make sure that updated software is more stable, with fewer errors and problems
SaaS
Software as a service is a software distribution model in which a third-party provider hosts applications (software) and makes them available to customers over the internet.
Copyrights and licenses
Software products are protected by law using copyright and licensing provisions When people purchase software, they are licensed to use the software, not own the software. Some software now requires that you register or activate it before it can be fully used. It prevents illegal distribution
Enterprise application software
Software that benefits an entire organization Helps managers and workers stay connected Cost, installation and ability to integrate with other software are major considerations in selecting this software Usability on smartphones and mobile devices is also an important factor
Software
System Software & Application Software
Embedded system
a computer system (including a processor) implanted in and dedicated to the control of another device. -Perform a specific task - in a car - air bag deployment, fuel injection. GPS - help people find their way around town -Popular OSs for embedded systems *Windows embedded *Proprietary Linux-based systems: Sony's Wii; and OSs in e-book readers, ATMs, smartphones, networking devices, and media players
Application Programming Interface (API)
a set of programming instructions and standards that enables one software program to access and use the services of another software program
Syntax
a set of rules associated with a programming language
Service-oriented architecture (SOA):
a software design approach using modules to provide specific functions as services to other applications
Multitasking
allows more than one program to run concurrently
Multiuser
allows two or more users to run programs at the same time on the same computer. Ability of a computer to handle number of concurrent users smoothly (scalability).
Chromium OS
an open-source version of Chrome OS
Android:
an operating system for mobile devices 80 percent of mobile phones worldwide use Android
Security utilities
anti-virus and anti-malware programs constantly monitor ad protect a computer from viruses and malware by removing them if found.
Hard utilities
check the status of all parts of the PC - hard disks, memory, printers.
File compression utilities
compress files to reduce the amount of disks space required to store file or reduce the time it takes to transfer a file over the internet.
System Software
computer programs that coordinate the activities and functions of the hardware and other programs. It includes: (i) operating systems (ii) utilities (iii)middleware
Application Software
computer programs that help users solve particular computing problems.
Operating System of System Software
controls the computer hardware and acts as an interface between application software and computer hardware.
Interpreter
converts one programming statement (source code) into machine language statement (object code) at a time and execute. After the statement is executed, the machine language statement is discarded, the process continues for the next statement, and so on. -Program executes at a slower speed -Takes less memory -Errors are immediately displayed
Software bugs
defect in a computer program that keeps it from performing as intended. -Bugs are inevitable
Open source software
distributed free with the source code so that it can be changed by its users to improve and fit their needs. -Run the program for any purpose and adapt it to your needs -Any improvements made must be released to the public. -Cannot be owned by any one person. -No user support. -Examples - Linux, MySQL, Firefox
Application software
enable people, workgroups, and entire enterprises to solve problems and perform specific tasks.
Containerization
encapsulating an application in a container with its own operating environment
Free software
freeware and also open source
Common hardware functions ---Functions of operating system
get input, store and retrieve data from secondary storage, display output on screen or printer.
Virtual memory
hard disk space is allocated to supplement the immediate, functional memory capacity of RAM Paging - Swap programs or parts of programs between memory and storage Reduces CPU idle time and increase number of jobs that can run in a given time span Slows processing
Spam filtering utilities
identify spam by learning what the user considers spam and routing it to a junk folder.
The basic principles of service oriented architecture are
independent of vendors, products and technologies. Information can be exchanged without human interaction Information can be exchanged without making changes to the underlying program
Kernel
is a computer program that is the core of a computer's operating system. The heart of the operating system. It is the firs program loaded at start-up. Ties all of the OS components together and regulates other programs Controls the most critical processes of the OS.
Device drivers
is a program that controls a particular type of device that is attached to your computer. There are device drivers for printers, displays, CD-ROM readers, diskette drives, and so on. When you buy an operating system, many device drivers are built into the product.
Software definition
is a set of instructions that enable the user to interact with a computer by controlling the workings of computer hardware, or help users solve particular computing problems.
Software Development Kits (SDKs)
is typically a set of software development tools that allows the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar development platform. -Serves the purpose of an IDE for a particular platform -Examples - Mac OS X SDK, iPhone SDK, Android SDK
Network and internet utilities
monitor hardware and network performance and trigger an alert when a network problem occurs
Proprietary software
one-of-a-kind software designed for a specific application, and owned by the organization or person who uses it
Utility programs
perform a specific task related to the management of computer functions, resources, or files, password protection, memory management, virus protection, and file compression Preinstalled on computers or can be purchased separately
Software upgrades
periodic revisions of programs Important source of revenue for software companies
Off-the-shelf software
produced by software vendors to address needs that are common across businesses, organizations or individuals
Real time:
responds to input instantly. To do this, Operating system's task scheduler can stop any task at any point in its execution if another high priority task needs to run immediately.
Freeware
software that is made available to the public for free.
Enterprise operating system
support hundreds or thousands of people simultaneously (Single computer with multiple simultaneous users)
Personal computing operating systems
support one user at a time (Single computer with a singe user). Commonly used in personal computers, tablets, and mobile devices. Microsoft PC operating system Apple Computer operating system (Mac OS X)
Workgroup operating systems
support several attached computers supporting many users (multiple computers with multiple users) Windows server UNIX Mac OS X Server
Multiprocessing
supports running a program on more than one CPU
Enterprise Application Interface (EAI)
systematic tying together of disparate applications through the use of middleware so that they can communicate.
Hardware independence ---Functions of operating system
the ability of a software program to run on any platform, without concern for the specific underlying hardware
When software manufacturers drop support for older operating systems, what happens
they will no longer be providing fixes ad updates for the operating system. -Without such patches, the users computer are more susceptible to being infected by viruses and other malware -Computers and software running under old operating systems will continue to run
Single computer with multiple simultaneous users
this type of system is used in large servers or mainframe computers that support hundreds or thousands of people simultaneously
5 GL
uses a visual or graphical development interface to create source language