Introducing Software Software Applications A.Y. 2020/2021
What is software?
What is software? - Naïve answer: anything that is not hardware - A collection of data or computer instructions that tell the computer how to work, in contrast to the physical hardware from which the system is built, that actually performs the work - Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. - All information processed by computer systems, programs and data.
Steve Jobs on software "The problem is, in hardware you can't build a computer that's twice as good as anyone else's anymore. Too many people know how to do it. You're lucky if you can do one that's one and a third times better or one and a half times better. And then it's only six months before everybody else catches up. But you can do it in software.” (1994) https://www.rollingstone.com/culture/culture-news/steve-jobs-in-1994- the-rolling-stone-interview-231132/
Software as... - Product: invisible, intangible, easily duplicable but very expensive. Intellectual property protected by laws - Component: part of a larger system. It can be off-the shelf or tailored to customers’ needs - Abstract machine: provides functionalities for enabling specific purposes (ex. Java virtual machine). It has an architecture with components and connectors - Service: provides an interface and it relies on an infrastructure
Who is using software?
Who is using software? Everyone in most of daily activities
Digital time: desktop vs mobile
Digital time: time spent by age
How many software types exist?
A classification of software
Application and System Software in a nutshell
System Software
Systems software Coordinates the activities and functions of hardware and programs Supports application programs’ problem-solving capabilities Examples of system software include - operating systems: provides a platform (hardware abstraction layer) to run high-level system software and application software. - utility software: is system software designed to help analyze, configure, optimize or maintain a computer. - middlewares: provide services to software applications beyond those available from the operating system.
Operating systems - An operating system (OS) is set of programs that controls the computer hardware and acts as an interface with application programs - Kernel: ties all components of the OS together and regulates other programs
Activities performed by the operating system - Perform common computer hardware functions - Provide a user interface and input/output management - Provide a degree of hardware independence - Manage system memory - Manage processing tasks - Provide networking capability - Control access to system resources - Manage files
The role of operating systems - OS acts as an intermediary between application and hardware - OS converts basic request into a set of details instruction that the hardware requires - Common hardware functions - Get input from keyboard or some other input device - Retrieve data from disks - Store data on disks - Display information on a monitor or printer
The role of system software
Operating Systems Functions User interaction - Command-based user interface: requires that text commands be given to the computer to perform basic activities - Graphical user interface (GUI): uses icons and menus displayed on screen to send commands to the computer system Access to system resources and security - Protection against unauthorized access - Logins and passwords - Ensures that files in secondary storage are available when needed and that they are protected from access by unauthorized users
Operating Systems Functions (continued) Hardware independence - Application program interface (API): allows applications to make use of the operating system Memory management - Control how memory is accessed and maximize available memory and storage
Operating Systems Functions (continued) Processing tasks - Multitasking: more than one program can run at the same time - Time-sharing: allows more than one person to use a computer system at the same time - Scalability: ability of the computer to handle an increasing number of concurrent users smoothly Networking capability - Features and capabilities of the OS that aid users in connecting to a computer network
Example of Operating Systems
Utility Programs Help to perform maintenance or correct problems with a computer system It is used to support the computer infrastructure in contrast to application software , which is aimed at directly performing tasks that benefit ordinary users Common types of utility programs: - Hardware utilities - Virus-detection and recovery utilities - File-compression utilities - Spam and pop-up blocker utilities
Middlewares Software that works over network layers but below the application environment (i.e. below application-level APIs) - middleware can be described as the dash ("-") in client-server, or the -to- in peer- to-peer - Middleware includes web servers, application servers, content management systems, and similar tools that support application development and delivery The software layer that lies between the operating system and applications on each side of a distributed computing system in a network.
Application Software
Application Software Primary function is to apply the power of the computer to give individuals, workgroups, and the entire enterprise the ability to solve problems and perform specific tasks Application programs interact with systems software; systems software then directs computer hardware to perform the necessary tasks Examples of an application include a word processor, a spreadsheet, an accounting application, a web browser, a media player, an aeronautical flight simulator, a console game or a photo editor
Types of application software Application software can be classified in different ways. Typical classifications are performed by: - property and use rights - coding language - purpose and output
Use rights: free Vs. proprietary software Free ( libre ) and open-source (FOSS) software - computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Proprietary and closed-source software - Computer software distributed without allowing users to study, change, and distribute it and any adapted versions
Software licenses
Coding language A typical classification is between - Web applications: written with HTML, JavaScript and other web-native technologies and typically requiring one to be online and running a web browser - Traditional native applications: written in whatever languages are available for one's particular type of computer.
Web and native applications Native app: Microsoft Word Web app: Google Docs
Purpose Horizontal application software: more popular and widespread, because they are general purpose, for example word processors or databases Vertical application software: designed for a particular type of industry or business, or department within an organization. Integrated suites of software will try to handle every specific aspect possible of, for example, manufacturing or banking worker, or accounting, or customer service
Recommend
More recommend