Chapter IV
Computer software
(Software solution for business and human needs)
-
Introduction:
-
Software comprises all programs designed to teach a fast stupid hardware machine what, how and when to do all things it does to help human, business and government in tackling the tough problems of managing and controlling all human and environmental activities
-
(Smart-ware) may be a much better name for software because software programs generate all the knowledge and power that use the hardware to tackle all computer applications in all fields of activity.
-
Software doesn’t only provide the programs. It is also commissioned to translate them to the only language that a computer understands, the binary numeration system whose alphabet comprises only two digits (0, 1).
-
There are two operational categories of software: System software and application software.
-
System software comprises 3 categories:
-
Operation system and user interfaces (provided by the operating system).
-
Utility programs that help the operating system in handling most maintenance, security and janitorial tasks and extend its power in tackling specific applications.
-
Drivers that help the OS communicate with peripheral devices
-
In total system software handles the following work assignments:
-
Interface between the hardware and the user
-
Interface between the hardware and the application software
-
Interface between the hardware and the peripherals.
-
Teaches the computer how to process applications
-
Perform the managerial, organizational and janitorial tasks within the computer system
Operating system (OS)
-
Early computers, before 1960, were built to process one application.
-
To be able to process and manage several applications the computer system must be run by an operating system that can manage the applications and their resources and allocate needed processing time and memory resources to all of them.
-
IBM launched the first successful OS in the early 60’s it was the OS/360 that was behind the huge success of its computer System/360.
-
IBM OS/360 pioneered the computer technology that ultimately assigns the control and management commanding role within the computer system to one set of system programs called operating system.
Operating system legacy
-
Introduction: The operating system comprises several components evolving around its core component the “kernel”. Computer people, talk sometimes about kernel computing referring to the most important part of the operating system.
-
Several operating systems were developed for modern computers with their kernel based on the old UNIX, and other related technologies beside the market leader MS-Windows. It is very important to know their leading role and enhance the most needed skills that enable business employees to better understand and use different business applications at all levels.
-
To be able to perform, an operating system must accommodate the same word size as the processor: 32 or 64 bits. A 64 bits processor need 64 bits OS and a 32 bit processor need 32 bit OS and so forth.
-
Important operating systems
-
UNIX is multi-user, multi-tasking operating system:
-
Was developed in 1969 in assembly language by a team of highly skilled professionals of AT&T at Bell labs.
-
It was soon entirely converted into C programming language by 1973.
-
Conversion step was crucial to its development and the use of its kernel to develop newer operating systems for new emerging small mobile computers.
-
Linux is UNIX based open source free operating system:
-
Was launched in 1991 by a Finnish student Linus Torvalds as freeware open source software.
-
Its kernel is that of the GNU (Go Not Unix) project launched by the free software activist Richard Stallman in 1983.
-
Thousands of programmers worldwide contributed in developing Linux like it is now with its excellent kernel that is used in modern operating systems for mobile computing and internet application designs.
-
IBM Z/OS: First introduced in October 2000.
-
It is a 64 bits mainframe operating system for server and powerful computers.
-
Supports all old computer systems still available on the market
-
Accommodates all mainframe systems
-
High quality service
-
Support clustering.
-
MAC/OSX: Designed to run exclusively on MAC computers
-
UNIX based operating system series marketed by Apple Inc.
-
A graphical interface OS
-
First version released in 1999 server edition.
-
iOS version runs on iPhone and iPod
-
Many versions are named after cat names: Leopard and Snow Leopard, Lion and Mountain lion.
-
The X relate to UNIX and to the roman 10 (OS/X = OS version 10)
-
OS/X includes its own development tools IDE (Integrated Development Environment) called XCODE provides interfaces to many compilers of several programming languages including C, C++ and JAVA.
-
Android was developed by Android Inc. designed for smartphones and tablet computers and other touch screen mobile devices and tablets.
-
Linux based operating system.
-
Google purchased the company in 2005 and it is developing Android presently.
-
Apps development teams of Google have come up with more than 700,000 apps by October 2012 (download via Google play)
-
2010 (Android powered) smart phones become the world leading mobile platform. Its share of the market is 75%! (500 million devices)
-
Symbian: Accenture plc. The world’s largest consulting company is presently managing this mobile open source operating system:
-
Originally created by Symbian Ltd.
-
Most popular worldwide 37.6% of the global smartphone market until late 2010 when it was surpassed by Android.
-
Empowers most Nokia, Ericsson and European made smartphones.
-
Based on the graphical operating system EPOC (Electronic Piece Of Cheese).
-
Symbian share of the market is reduced presently to all time low of about 7%.
-
Microsoft MS Windows: Most popular operating system ever because of its excellent graphical user interface that bridged the gap between the user and the computer by making user friendly computers that can communicate with all people and all business personnel without the need of computer skills.
-
Windows operating system was first introduced in 1985 to reign over a highly enthusiastic market to the friendly graphical user interface: 90% market share presently.
-
Several versions were introduced since then including Windows XP, Windows Vista, and Windows 7 and recently (August 1st, 2012) Windows 8 was released.
-
The most recent server version is Windows server 12.
-
New Windows 8 features include:
-
Keep backward compatibility
-
Improving user experience on mobile computers and devices.
-
Friendly to Cloud computing and NFC (Near Field Communication) for payments and file content sharing.
-
Secured boot process and malware filtering
-
Built-in antivirus software.
-
New app friendly touchscreen input platform
-
Improved ability to synchronize settings and programs among multiple devices working together within the computer system
-
Windows phones 8 (Apollo) was also released recently (10l29/2012)
-
Based on Windows NT kernel as a successor to Windows phones 7 that was based on Windows CE architecture
-
Windows phones 7 users will not be able to play the new Windows phones 8 because of Microsoft new partnership with Nokia
-
Nokia will launch it with Samsung, switching from the Symbian operating system for the first time ever. The new features include:
-
Backward compatibility (play Phones 7 apps)
-
Support for removable storage
-
Accommodates large size screens (15.9”-16.9”)
-
NFC friendly (payments and content sharing)
-
Resizable tiles across the newly designed screen.
-
Phones 8 includes many features aimed at the business market as:
-
Bit-Locker encryption for transactions security.
-
Ability to create Marketplace to distribute apps.
-
Firmware over-the-air support possible updates.
-
All devices will receive software support for 18 months.
-
18 months update from Windows phones.
-
Operational role of the operating system
-
It is the most important part of system software that may be compared to the central nervous system in the human body.
-
Like the central nervous system is the master controller of all functions performed by the human body and its organs.
-
The operating system is the master controller of all operations that take place in the computer system.
-
In order to successfully complete the processing of every single instruction, the operating system interacts with all the resources involved in the processing of that instruction and makes the operational and logistics arrangements needed for the smooth timely execution of the machine cycle. These resources can be classified under 5 categories:
-
Users and user application software.
-
Other system software programs.
-
The inner hardware components (processor, memory, ports and other accessories)
-
Peripheral devices involved thru their drivers.
-
Utility programs involved
-
We can summarize its assignments by the followings:
-
Allocates memory space for all components needed for the processing then manages and supervises the process:
-
Its own space
-
Private space for each of the applications being processed simultaneously so each can have its instructions, its data and its results.
-
Space for utility programs that may eventually be called upon to help in the ongoing processing.
-
Enforces strict discipline in respecting the actual boundaries “Zero tolerance for trespassing or overflow”.
-
Manages processor time allocated to applications and inquiries and supervises the processing:
-
Makes sure the processor is not idle waiting for data or instructions.
-
Synchronizes the execution time of machine cycles depending on its instruction set.
-
Makes sure conflicting user applications requesting processor time will be awarded a chance to get the requested processor attention on time depending on the established priorities.
-
Synchronizes the work accomplished by the different components of the processor and makes sure the processing proceeds in an orderly manner.
-
Multi-tasking, multi-processing or multi-threading require a lot of attention to insure the necessary synchronization among involved applications.
-
Multi-tasking technology requires many applications to be processed simultaneously
-
Multi-processing requires the computer system to have many processors and the operating system to have the ability to allocate tasks between them and manage that operation.
-
Multi-threading technology divides the same application into threads that will be managed by the operating system. Resource sharing would be managed by considering threads like different applications.
-
Supervises data and instruction exchange between processor and memory over the front side bus (FSB).
-
Monitors input and output operations through interaction with their drivers and make sure all operations proceed in an orderly manner.
-
Mouse, touch pad, touch screen, keyboards and all direct input devices.
-
Camera, scanner, internet forms
-
Program files and data files Internet download and forms.
-
Monitor, speaker, printer, plotter and all direct output devices
-
Program and data files and Internet uploads
-
Special purpose output for business and personal use.
-
Gaming
-
Monitors and enforces computer security with the help of firewall, anti-virus software and anti-spyware, find troubleshooting possibilities and issues error messages when needed.
-
Provides needed help when users ask for help.
-
Provides user interface:
-
Command line based: use the keyboard to communicate. This is now only used by computer professionals.
-
Graphical user interface: use pointing and clicking devices (mouse)
-
Graphical user interface (GUI)
-
Menus and submenus.
Utility programs
-
Introduction: Software designed to perform specific maintenance, cleaning, statistics and security, and other similar tasks for the computer hardware and software is known as utility software. They are so important for business because they help improve the quality of its information system and optimize the use of computer resources. Major categories of utility programs are listed below with important programs of each one of them.
-
Disk care utilities: take care of the hard disk drive. We consider:
-
Disk checker: Scan the formatting and wellbeing of the hard drive.
-
Disk partition: Can divide the hard disk into several partitions each of which will be treated as a separate hard disk known as logical drive that may take a different operating system the partition is then called virtual machine.
-
Disk compression: optimize the disk capacity in shrinking the size of files stored on it using the compressing/uncompressing software.
-
Disk cleaner help locate unused files and big size files unnecessary to computer operation and help get rid of them.
-
Disk defragmentation: Help relocate records of the same file to be as close as possible to each other.
-
Disk storage and space analyzers utilities.
-
File manager: Like Windows explorer and Mac Finder: They help rename, delete, move, and update a file.
-
Compilers: Are utilities that converts programs written in source code of any programming language into machine code or object code or machine language which is strings of 0s and 1s the only digits that a processor understands. The object code is saved as executable file (.exec) file.
-
Computer security:
-
Anti-virus software: scan for viruses and kill them or quarantine them
-
Anti-spyware: Scans for Trojans and illegal malware and eradicate them or quarantine them.
-
Cryptographic utility: Encrypts and decrypts files and exchanged data over all Internet services.
-
Back-up utility: Saves duplicate file (mirroring)
-
Restore utility: takes the computer system back in time to dates previously fixed by the operating system.
-
Other maintenance utilities:
-
Screensavers: When the computer is ON but it is not in use, it is very important to dim and limit the screen phosphoric burn-in especially in gas plasma and CRT monitors.
-
System monitors utilities: checks and monitors the performance of the computer system and its environment.
-
System profiler utilities: Needed by business and personal users in order to get necessary information about all hardware components attached to the computer and all software programs installed for profiling system performance.
-
Registry cleaners in Windows: removes unused registry keys to optimize system profiling and system performance.
-
Why the utility programs are not built as part of the operating system? The answer is obvious:
-
As you may notice there are a lot of utilities and each program consists of a big volume file.
-
If they are added to the operating system they will require a huge place in memory as long as the computer is running.
-
Most of these programs are needed briefly to perform specific task and go, so the same memory space can be used by different programs while they are performing
-
The use of the utility program by the operating system can be compared to the use of tables in restaurant the same table is used by many customers while they are eating.
Device drivers
-
General knowledge about drivers:
-
Device drivers are system software designed to operate hardware components and peripherals attached to the computer.
-
Each component or peripheral has its own driver (there are no universal drivers, driver is made to control a particular type of hardware)
-
Driver that operates a specific model of HP printer may not necessarily be good to operate any other HP model or any other different brand model).
-
Device driver operates as a translator interface between the operating system and the hardware device.
-
Only a specific device driver can communicate with that particular device so that all instructions directed to the device must be conveyed through the device driver.
-
What devices need drivers?
-
Most components of the computer and all peripheral devices and some operational application software need drivers to be able to perform:
-
Printers: Printer drivers have to adapt to its design and its technology. The driver of each of the following printers is different.
-
Single printer
-
Network printer
-
AOI (all in one) printer
-
Virtual printer: is computer software whose driver is an API (Application Programming Interface) that doesn’t connect with a physical printer but, instead save the printed copy as no-edit file like PDF files.
-
Scanners: Many different types of drivers are available to accommodate the types of scanners:
-
MRI (Magnetic Resonance Imaging) scanners and CT (Computed Tomography) scanner.
-
There is no virtual scanner like the virtual printer but there are many ongoing research projects on this subject.
-
Digital cameras: their drivers depend on their use and their location
-
Storage devices
-
Sound cards
-
Video adapters
-
Network cards
-
Buses
Application software
Application software or simply apps (as it is extensively used to outline and market huge number of applications that populate modern mobile devices) is set of applications designed to help business or personal users to tell the computer and its system software what exactly we need it to do for us. In other words: application software is the set of tools available to the user to help him communicate to the computer system, via the computer system software. It also can be described as detailed algorithm of instructions that help the computer system process data correctly and provide the information we need.
System software is in fact the interface or the translator between the user and his apps on one side and the hardware on the other side. Application software (apps) may be classified as follow:
-
Productivity software: help businesses and people organize and complete business management tasks and own personal, social and operational activity. Although there are too many companies producing productivity software, we will explain MS office suite because they are the leader of the market with over 92% market share.
-
Word processing software used by businesses to satisfy their internal and external needs of creating professional documents. MS Word is the most used 92% market share. MS Word 2010 most important new features are:
-
Insert a screenshot in the insert menu
-
Edit a picture whenever you insert it
-
Better way to show the shadow, reflection and glow effects with possibility to modify the inner and outer shadow.
-
The “Background removal tools” feature allows you to select and remove the background of the selected part of an inserted image.
-
Ribbon customizing option and put the commands you want (right-click on the ribbon and chose “Customize the ribbon” option).
-
Add a PDF file or even a presentation by clicking on the “Object” option
-
MS Word 2013 has added the following new features:
-
Link MS account with other online services like LinkedIn or Facebook or other online services.
-
The “picture tool format” feature allows you to place a picture and resize it or drag it and place it wherever you want without right-click.
-
The “New” reveals hundreds of document templates
-
E-fax and Merriam-Webster dictionary apps and huge number of featured apps waiting for you to choose your favorites.
-
From the “Insert” tab you can insert pictures from the web or browse SkyDrive storage and get clip art stored on the cloud.
-
You can use the Bing image search and Flickr account to find and insert pictures in your document.
-
You can add an online video from “Youtube” or from other websites
-
Very improved collaboration while working with text and simplified Markup.
-
Edit PDF files like any other Word document by clicking “Enable Editing”.
-
Concentration on reading and zooming
-
The “Review” tab use the Word apps and when you select the text you get the result displayed instantly.
-
A very powerful feature allows you to present documents online for people who don’t have 2013. All you need to do is to provide people with the link to the cloud.
-
Spreadsheet software:
-
This software was initially developed in tabular format very friendly to most business transactions.
-
Spreadsheet software most important feature is the automatic calculation of all affected cells in a sheet when the value of one cell changes.
-
Automatic recalculation feature makes this software very helpful for business decision makers in the what-if scenarios.
-
You go to your boss with a table summarizing a cost study. If your boss asks: what if we change that number? All you have to do is fit the new numbers and the spreadsheet will be updated on the spot.
-
What-if scenarios and automatic recalculation features were parts of the driving factors that sparked the digital revolution because they have convinced and encouraged businesses to invest heavily in building timely and reliable information systems and information technology (IT) departments in their companies.
-
EXCEL is Microsoft’s spreadsheet software, We will go over its new most powerful features:
-
New classy and clean look of the screen.
-
Quick professional look thru pictures and graphs helping decision makers take clear well based decisions.
-
A lot of templates guide your steps in many applications giving you more time to focus on your data.
-
Quick Analysis (new tool in “Analyze your data instantly”) helps you represent the data instantly in a chart or table.
-
The “Flash Fill” feature allows you to fill a whole column of data in a flash
-
“Recommended Charts” button on the Insert tab recommends the best charts for your data representation.
-
The interactive data filter “PivotTable” first introduced in 2010 is made simpler to use.
-
New EXCEL functions in all aspects of math, statistics and logic
-
You can save your workbook to your online location on your SkyDrive service or your business Office 365 service.
-
It is easier to share workbooks with other people thru SkyDrive no matter what system they are using
-
Embed worksheet or part of it in webpage so anyone can use EXCEL Web App and work with the data.
-
Save a workbook in another file format.
-
Three new chart buttons allow chart editing “Format your chart”
-
Change the format of labels in a chart
-
Automatic chart change when you change the source data.
-
Drill Up, Drill Down and Cross Drill features allow you to access all possible details.
-
Many other features associated with using the power of the Pivot Table like On Line Analytical Processing (OLAP). And Business Intelligence (BI).
-
Create standalone PivotChart that enables you to navigate the most data details you want using the features “Drill Down, Drill Up and Cross Drill”.
-
Power View button allows you to create and interact with charts and other data patterns in a single sheet.
-
Power Pivot feature is installed in EXCEL professional plus. This engine lets you build data models directly in EXCEL. Define hierarchy and use Data Analysis Expression language to create advanced formulas
-
“Spreadsheet Compare” is a new powerful feature that allows you to review the workbook and uncover and correct formula errors and broken links while providing full visibility that allows you to compare two versions and see where the changes have occurred
-
Spreadsheet software was available before MS EXCEL era. Like LOTUS 1-2-3 that promoted the extensive use of computers in business and “Quattro Pro” that was a clone of Lotus. Calc, Mariner Calc and TinkFree Calc are also spreadsheet software who couldn’t compete with EXCEL.
-
Presentation graphics software
-
This software was developed to overcome the limited possibilities of the old slide projectors and provide powerful business promotional and training tool and teaching tool in schools and colleges
-
Slide templates and powerful features of adding text, slides, audio and video clips empowered the presentation with wealth of flexibility and a lot of powerful features
-
Easy formatting and content editing allow the production of attractive nice and rich digital slides that can be shown via digital projector.
-
PowerPoint presentation Office 2013 version is the Microsoft office latest presentation software and we will consider below its most powerful added features:
-
Collection of new themes on the Start screen helps you get ready from the very beginning.
-
Merge shapes make it easy to merge many shapes into one.
-
Alignments guides allow easy alignment of shapes and graphics with text boxes.
-
Slide Zoom in and out of charts, diagrams and graphics is very important feature to direct the attention of audience.
-
The Auto-Extend feature insures the slide appears on the right screen when you move the projection to another screen.
-
Navigation Grid allows you to switch slides easily. It is hidden from the audience (only you see it to select and watch your selection). The audience sees slide projection only
-
Other important presentation software include:
-
Corel Presentation: available only with COREL productivity suite.
-
Prezi: Cloud-based software with zoomable canvas
-
The Web based Google Docs: rich in animation with a big collection of templates and huge stock of photos and the Add fonts features allow you to choose from over 450 new fonts.
-
Apple Keynote: one of the best software that run on MAC.
-
It can create impressive presentations with powerful graphics tools.
-
iCloud allows you to share them everywhere you want on iPad, iPhone, iPod, etc…
-
They are MS office compatible
-
Impress from OpenOffice.org (open source software)
-
Bruno of Hewlett-Packard: First software designed to create WISIWYG presentations and run on HP computers (HP-1000 and HP-3000).
-
Kingsoft (KS office) Presentations is a Freeware that was developed in China; the newest version is the KSOffice 2012
-
Database software: This is the most important business productivity software because it deals with managing the most important assets in a business (data and information):
-
Database is structured data well organized in a collection of tables that practically relate to all or part of the business or organization activity.
-
Database management system (DBMS) that allows you to create, update and query a database and create business needed reports and other documents. It also protects data from unauthorized access.
-
There are many types of database software available but we will consider Microsoft’s Access and its most recent version Access 2013 which is part of MS Office suite 2013:
-
Focus on bringing Access database to the Web (hosted by MS Office 365 and securely accessed from any device (with or without installed Access)
-
Enhanced user interface enable you to make operational and beautiful apps very fast.
-
You need Office 365 to host the database in the cloud but you can chose to have SQL Server 2012 and SharePoint 2013 and host it yourself in your premises.
-
The table templates library allows you to easily track everything you care about in the database and apply relationships and data integrity rules very easy.
-
Apps are faster, more reliable in handling large amounts of data because when you publish the ACCESS database to SharePoint an SQL server will be created to store the database.
-
You can connect with this database to better your analysis, integration and reporting procedures.
-
Other important database software includes:
-
FoxPro: now published by Microsoft is text based DBMS that support relationship between tables and has many users and programmers worldwide.
-
IBM-DB2 is relational DBMS model that was introduced in 1983 with roots that go back to June 1970 when Edgar CODD invented the relational database model in the IBM labs. The latest editions: IBM DB2 Express-C that is similar to MySQL and PostgreSQL. We also have to mention DB2 for z/OS the mainframe OS.
-
MySQL is popular database for use in web apps. MySQL central component is the very popular (LAMP) that stands for Linux Apache MySQL Perl (Perl/PHP//Pyton) that is free software.
-
Linter: Russian SQL DBMS that is supported by most operating systems. It is mostly used by Russian government ministries and their agencies.
-
A database is not portable across all or many DBMS’s
-
Management software:
-
Financial management software: manage business financial activities
-
Investment portfolio
-
Expenses and revenue
-
Budget planning and financing avenues
-
Taxes with tax preparation software.
-
Project management needed to:
-
Complete the project according to schedule
-
Plan, allocate and control project people and resources.
-
An example is MS Project and MS SharePoint server.
-
Marketing software integration with the project management software allows for a complete approach to powerful project management.
-
Statistical software: This software is controlling lot of aspects of our social, political, environmental life as well as all aspects of our modern global economy. The greatness of this software is its ability to turn data into present and future action. There are many statistical software to be considered:
-
IBM SPSS (Statistical Package for the Social Sciences) was released in 1968 and recently acquired by IBM. It is one of the most used software in most statistical applications.
-
SAS (Statistical Analysis System) pronounced “sass” is widely used statistical integrated software used extensively around the globe to generate many powerful statistical applications.
-
Stata: the name relate to the SATA Corporation that created the software in 1985. It is complete integrated statistical software with lot of applications used around the world.
-
MATLAB: presents an interactive environment and a language rich in built-in functions that in addition to the language tools help you develop algorithms and create models. It also helps you find problem solutions much faster than C++, JAVA and other programming languages.
-
Mathematica, S-PLUS, R, Minitab and JMP are also notable statistics software that contributes to the enrichment and diversification of statistical software market.
-
Web authoring software: Provides template and other needed tools to create attractive webpages and websites
-
Adobe Dreamweaver along with Creative suite 5 (CS-5), (CS-5.5) and (CS-6)
-
Dreamweaver is unrivaled Web authoring tool
-
Dreamweaver latest version CS-6 enjoys the following powerful features:
-
jQuery feature allow to add easy interactivity to webpages
-
Reorganized insert panel can be used to quickly add audio, video, HTML5 tags and ADOBE Edge Animate.
-
PhoneGap feature lets you convert existing HTML into phone apps.
-
MS Expression Web was introduced in September 2005
-
MS Studio series started in 2008 its latest version (Studio 4) was released in 2010.
-
Desktop publishing software: Creates high quality text and graphics rich documents and pages for magazines. Adobe Creative suite software is an example of desktop publishing software.
-
Multimedia editing software: allows amateur to tailor and compress large multimedia files:
-
Apple GarageBand creates edits and stores professional recordings.
-
Photo and video editing: allow you to cut, split, join and add effects like a pro. You can use one of the following packages :
-
Corel VideoStudio Pro X5
-
Adobe Premiere Elements
-
CyberLink PowerDirector
-
Entertainment and games software:
-
Console Games: The software usually stored on a disk and inserted into the console the game features are displayed on the television. PlayStation3 uses Blu-ray disc
-
PC games prospered after the 1983 video game crash. The present smart phones era propelled the game and entertainment market to unprecedented size using the cloud gaming software.
-
The declining game market since is caused by the abundance of games on the web that are offered for free with other packages.
-
The market that peaked to $103 billion in 2008 is projected to decline to less than $75 billion by 2015.
-
Educational software: Very important software used for teaching or training in businesses or even studying and learning (self-teaching). We can consider the following educational software categories:
-
Classroom aids (whiteboards: Compared with the blackboards) designed for school classroom teaching that is why it is called “classroom management software”.
-
Courseware: comprises teaching tools and tutorials and all needed material included in one package.
-
Student assessment software
-
Diverse training software: specific educational purposes
-
Driving test software
-
Language learning software
-
Typing and spelling tutor software
-
Training simulator software.
-
Note taking software
-
Design software: like Auto CAD (Computer Aided Design) and Adobe IN Design used by architects and engineers in all aspect of design
-
Building, bridges and other structures
-
Military equipment and weapons.
-
Nuclear industries
-
Transportation equipment and material
-
Computers and peripheral equipment (ergonomic components)
-
All type of equipment, tools and material
-
Cloud computing
-
Modern Information system witness a shift to cloud computing or Internet computing offered by many cloud computing providers like Microsoft, Google, Yahoo, and many others.
-
This technology consists of hiring the provider to create databases and related applications and stores them on his cloud facilities.
-
The pros of this technology are:
-
Saving money and shrinking the IT cost
-
Improve data and application security
-
Reduce the headache of dealing with daily IT details.
-
The cons may be:
-
Loose control over data and applications
-
Recruiting skilled employees to deal with cloud providers
-
Handle many arising confusion with the service provider.
Software market
Software is divided into two categories relevant to its offer and use in the market:
-
Horizontal market software:
-
Application software designed to operate in several commercial, industrial or service market activities.
-
This software targets common needs of businesses regardless of their activities, size, market and mission.
-
Because of its usefulness to a wide range of business activities, horizontal software is also known as productivity software.
-
An example of horizontal market software is payroll software or inventory software or tax preparation and filing software.
-
Horizontal market category includes: Word processing, spreadsheet, presentation, database and many other application software.
-
Vertical market software
-
It is designed to operate and satisfy the needs of a given business activity.
-
Customized to a specific industry needs
-
Limited usefulness to a specific activity highlights the importance of application competitiveness.
-
An example of vertical market software would be hotel or online reservation software and travel software and point of sale software
Programming languages
-
Computers can understand only one language composed of strings of 0s and 1s that represent instructions, data and information.
-
This language is also known as machine language or object code which is the 1st generation of programming languages
-
Because programmers are human and not automats, it is almost impossible for them to write sophisticated programs using machine language, computer industry started using machine language strings to build command codes used in program instructions and the assembly language was born representing the 2nd programming language generation which is still a low level generation (2GL) 2nd generation level.
-
Assembly languages were very detailed and very close to the computer inner circuitry so computer industry started looking for handy (English like) programming languages using assembly language to build command codes and the assembly many languages were built to form the 3rd generation level (3GL).
-
Third generation high level programming languages comprise all languages higher than assembly including:
-
Basic and visual basic
-
FORTRAN (Formula Translator) for scientific application
-
COBOL (Common Business Operating Language)
-
C and other languages
-
Programming technology: we may consider 2 different approaches to programming
-
Procedural program that translates an algorithm based on charts and pseudo-codes into code based on the syntax of a specific language (Basic, COBOL (Common Business Oriented Language) used for business applications, FORTRAN (Formula Translator) used for math applications)
-
The pros of this program are
-
It is fast
-
Code is easy to configure
-
The cons are:
-
Apply to only one application
-
Programmers have to always start from scratch.
-
Expensive because it is mostly custom made
-
Object oriented programming:
-
Considers application objects as classes and subclasses
-
Programs are written to upper classes and lower classes inherit them and use them where they apply.
-
C++, C# and JAVA are Object Oriented Languages
-
Pros of this approach include:
-
Reuse of programs by similar classes
-
Well organized and easy to implement
-
Easy to debug and correct.
-
Easy to build software packages and applications that run on all computer systems.
-
Some cons are:
-
Lengthier writing process
-
Longer compiling time
-
Longer execution time
-
Not appropriate for custom software tailored for a specific application that need fast execution.
-
The need for reusable programs steered the search to object oriented programming languages that build classes of objects and include its functions and parameters so subclasses inherit behavior from higher classes or objects. This category include C++ and JAVA as most used in system programming
-
The overwhelming success of database approach and Internet applications and networks using databases and packages that need fast query and report generator imposed itself as a must consider situation and industry raced to fill the gap that resulted in the birth of the 4th generation dedicated for that purpose (ORACLE is actually on the cutting edge).
-
Future languages?
-
Computer experts are talking about natural language that is the foundation of the 5th generation (5GL) or fifth level whose paradigms consist of:
-
Using plain English keywords
-
Using decision tables and proceeding by elimination to keep the best choice.
Program conversion or translation
-
Computers can understand only one language which is the machine language or object code that comprises strings of zeroes and ones.
-
All other languages used by programmers are their own primary tools to author source code programs that are not understandable by the computer unless they are converted into object code or machine language.
-
All source code programs written in any of the high level languages must be translated to machine language or object code before being submitted to the processor.
-
Conversion is completed by a software utility program known as compiler that may be one of 3 different categories:
-
Assembler: Converts assembly language code into object code or machine language.
-
Compiler translates the whole source code program all-together as one translation unit.
-
Interpreter translates one instruction at a time allowing for live interactive translation over networks and internet and WEB applications.
-
An interpreter is a compiler but a compiler is not necessarily an interpreter.
Software licensing
-
Introduction:
-
Software is considered by law as intellectual property and
-
Patents and the licenses are legal tool that define permissions and restrictions in using the software and designed to protect the owner of the property and his exclusive rights (copyright) from:
-
Theft
-
Software piracy and use of counterfeit
-
Abuse of legal right of use.
-
Types of licenses
-
Single user license and multi-user license: For multiuser on different computers you need a multi-user license.
-
Off the shelf software: Includes a license you buy with the package and validate later.
-
Shareware license: enable you to use the software free of charge for a defined period and then you pay if you want to keep it. This license is known as “Try before you buy” promotional marketing.
-
Freeware: initially available to the public free of charge but most likely you will be prompted to pay if you want upgraded services or complete clean version. If you Google the word “freeware” you will get a list of hundreds of freeware packages.
-
Open source software: Like Linux operating system this software ask for user contribution to upgrade it.
-
Creative commons license: It is open source software that leaves to the initial creators the right to control the software and make profit out of its use and limits users contribution to terms specified in the license.
-
Subscription license: Enables you to use the software and pay a periodic fee (monthly or annually). (ADOBE CS5 is very expensive collection could be used by paying a monthly amount)
-
Custom software: Most expensive software created and customized for use by specific clients. License may or not include the right of the client to resell his software.
Share with your friends: |