March 6, 2016

Software: Systems and application software - Summary of Stair and Reynolds Book Chapter

Chapter 4 - Software: Systems and application software

Software


Principle:

Systems and application software are critical in helping individuals and organizations achieve their
goals.

Principle:

Organizations should not develop proprietary application software unless doing so will meet a compelling business need that can provide a competitive advantage.

Principle:

Organizations should choose a programming language whose functional characteristics are
appropriate for the task at hand, considering the skills and experience of the programming staff.

Principle:

The software industry continues to undergo constant change; users need to be aware of recent trends and issues to be effective in their business and personal life.



An Overview of software

Systems software

= Software that coordinates the activities & functions of the hardware & various programs.
Computer system platform = hardware configuration combined with a software package.


Application software

= Programs that help users solve particular computing problems.
Supporting individual, group, and organisational goals
Sphere of influence = the scope of problems & opportunities addressed by an organisation.
1. Personal sphere of influence (Information serves the needs of an individual user).
Personal productivity software helps users improve their personal effectiveness. (MS Word…)
2. Workgroup sphere of influence (IS helps a workgroup attain a common goal).
3. Enterprise sphere of influence (IS helps firms in interaction with the environment).
Surrounding environment = customers, suppliers, shareholders, competitors…

Systems software

Operating systems

= A set of programs that controls the hardware and acts as an interface with applications.
Kernel = heart of the OS, which controls critical processes and ties OS components together.
Activities of an OS:

Performing common hardware functions
Application programs perform tasks like retrieving & displaying information.
These functions must be converted into detailed instructions required by the hardware.
The OS is the intermediary between the application program and the hardware.
Providing a user interface
Many mainframe computers use a command-based user interface.
Providing a degree of hardware independence
Programs can be isolated from hardware and remain insulated from hardware changes.
Application Program Interface (API) = A link between application software & the OS.
= An interface that allows applications to make use of the OS.
APIs are used to create application software without understanding the workings of the OS.
If APIs didn’t exist, developers would have to rewrite programs for new hardware.

Memory management

Purpose: To control how memory is accessed and to maximise available memory & storage.
Memory can be divided into different segments / areas.
Virtual memory = memory that allocates space on the hard disk to supplement RAM.
Virtual memory works by swapping programs between memory and disk devices (=Paging).
This reduces CPU idle time and increases the number of jobs that can run.

Managing processing tasks

Multitasking = having a user run more than one application at the same time.
Time-sharing = having more than one person use a computer at once.
Time-sharing works by dividing time into small CPU processing time slices.
During a time slice, tasks for the first user are done, then the computer goes to the next user.
The process continues through each user and cycles back to the first user.
Because the CPU processing time slices are small, it appears that all jobs are done at once.

Scalability = the ability of the computer to handle an increasing number of concurrent users.
Providing networking capability
The OS can provide features that aid users in connecting to a computer network.
Controlling access to system resources
The OS provides security against unauthorised access with log-on procedures & passwords.
The OS can record who uses the system and for how long and report attempted breaches.

File management

The OS ensures that files are available when needed and protected from unauthorised users.
The OS must resolve what to do if many users simultaneously request access to the same file
The OS keeps track of the location, size, date of files and who created them.

Personal computer operating systems

MS-DOS
The original Microsoft Windows was an application that ran under DOS.
No multitasking.
DOS with Windows
Graphical operating environment and features like multitasking.
Windows 95/98 - Now Windows 10
Windows NT workstation
Multitasking & networking capabilities.
Using emulation software, NT can run programs written for other operating systems.
NT supports symmetric multiprocessing (=using multiple processors simultaneously).
It also has a centralised security system to monitor various system resources.
It also functions as a Web server and Web content authoring platform.

Windows 2000
A desktop OS aimed at businesses of all sizes.

Unix
Originally developed for minicomputers.
High degree of portability: it is compatible with different types of hardware.
Linux
It looks like Unix, but does not come from the same source code base.
It’s developed under the GNU GPL and its source code is freely available.
Includes: multitasking, virtual memory, shared libraries, memory management, networking…
It is highly reliable and easy to administer.
The biggest shortfall for Linux is the scarcity of application programs written for the OS.
Solaris
This is the Sun Microsystems variation of Unix.
It is the server OS of choice for large Web sites.

Apple computer operating systems

Apple computers typically use Motorola microprocessors and an Apple OS.
Apple computers are popular in the fields of publishing, education and graphic arts.
Mac OS 9
Features: Multiple users; Key chain passwords (enter it 1x); Sherlock 2 (a search detective).
Mac OS X (ten)
The Mac OS X server is the first modern server OS from Apple.


Workgroup operating systems

Windows 2000 server
Many new tasks can be done that are vital for Web sites and corporate Web applications.

Netware
This network OS supports Windows, Macintosh and Unix clients.
It provides software to keep track of computers, programs and people on a network.

Enterprise operating systems

Software operates in an environment of network servers to meet enterprise computing needs.
Mainframes are the platform of choice for mission-critical business applications for many firms
OS/390
= A mainframe OS with a network-ready, integrated server environment.
Within it is a full implementation of Unix, so developers can use Unix applications.
MPE/iX (Multiprogramming Executive)
The Internet-enabled OS for the Hewlett-Packard family of computers using RISC processing.
MPE/iX can handle a variety of business tasks (Transaction processing, Web applications…)

Consumer appliance operating systems

Microsoft pocket PC
These are pre-installed on TV set-top devices, PCs in cars, handheld PCs…
Includes: Internet connections & GUIs.
Mobil Linux
An OS that runs on tablet-sized Internet-browsing devices called Web pads.
Utility programs
They are used to merge & sort sets of data, keep track of jobs being run, scan for viruses…
Disk compression allows more data & programs to be stored on the same hard disk.
When these programs are needed, decompression routines make them available.
Other utility programs: software to write CDs, screen savers.

Application software

Types and functions of application software
Proprietary application software
= A one-of-a-kind program for a specific application, used to solve a specific problem.
Contract software = a specific software program developed for a particular company.
In-house developed software = developed using the company’s resources.
Advantages:
* You can get exactly what you need
* Being involved in development offers more control over the results
* There is more flexibility in making modifications to counteract a new initiative by competitors
Disadvantages:
* It can take a long time and significant resources
* In-house staff will want to get on to other new projects
* There is more risk concerning the features and performance
Off-the-shelf application software
= Software that can be purchased, leased, or rented from a software company.
Advantages:
* Initial cost is lower
* Lower risk that the software will fail to meet basic business needs
* The package is likely to be of high quality
Disadvantages:
* You might have to pay for features that are not required and never used
* The software may lack important features
* Software may not match current work processes and data standards
Customised package
= A blend of external and internal software development.
Software packages are modified / customised by in-house or external personnel.
Some software companies encourage their customers to make changes, others supply
necessary changes for a fee, and others won’t allow their software to be modified.
Application service provider (ASP)
= A company that provides end user support and the computers on which to run the software.
They can also take a complex corporate software package and simplify it for users.
They provide customisation, implementation… so companies have time for more NB tasks.
Through ASPs, software can be made available quickly.
Users can update info from their applications via Web browsers.
ASPs employ standard software packages, which are easy to support, driving costs lower.
Risks: Sensitive info can be compromised by hackers, and if the network is down.
Advantage: It frees in-house resources from staffing and managing complex projects.

Personal application software

Word processing
Spreadsheet analysis
Database applications
Graphics programs
On-line information services
Like AOL. (Get news, send email, search for jobs…)
Software suites
= A collection of single-application software packages in a bundle. (MS Office, WordPerfect)
Advantages:
* The programs are designed to work similarly
* The programs are cheaper together
Disadvantages:
* One or more applications may not be as desirable as the others
* Requires a large amount of main memory to run the various applications effectively

Object linking and embedding (OLE)
= A feature that allows you to copy objects (= text/graphics…) from one document to another.
Server application = the application that supplies objects you place into others.
Client application = the application that accepts objects from others.

Copying
This method is used when you don’t want to change data shared between applications.
To change data, you must update the client application and then repeat the copy procedure.
Linking
Changes made to the server object will automatically appear in all linked client documents.
Double-clicking the object in a client document opens the server application that supplied the
object, so that you can then edit that object.
Embedding
You embed an object when you want it to become part of the client document.
You don’t have to save an object in the server application before embedding it.
Further changes you make appear only in the client document. (Server is no longer required).

Workgroup application software (Groupware)
= Collaborative computing software (helps teams work together towards a common goal).
The 3 Cs rule for successful implementation of groupware:
* Convenient (It should be easy to use)
* Content (It must provide relevant and personalised content)
* Coverage (It should cover everything you need)
Lotus notes
Companies use one software package & user interface to integrate business processes.
E.g. A team can work together from a shared set of documents; Meetings can be scheduled…
Group scheduling (another form of groupware)
Personal information managers (PIM) focus on personal schedules and lists, as opposed to
coordinating the schedules of a team.
Enterprise application software
= Software that benefits the entire organisation - can be developed / purchased.

ERP = a set of integrated programs that manage a company’s vital business operations.
E.g. manufacturing, finance, human resources, sales, distribution…
Benefits:
* Inefficient systems are eliminated
* Adoption of improved work processes is eased
* Access to data for operational decision-making is improved
* Technology vendors and equipment are standardised
* Implementation of supply chain management is enabled

Programming languages

Standards and characteristics
ANSI (American National Standards Institute) developed standards for popular programming
languages so that programs written in different forms of the same language work together.

The evolution of programming languages

First-generation languages (Low-level)
Machine language uses binary 0 and 1.

Second-generation languages (Low-level)
Assembly language replaces binary digits with symbols that can be understood easily.

Third-generation languages

Consist of high-level languages that use English-like statements and commands.
They are easier to program, but not as efficient in terms of operational speed and memory.
They are relatively independent of computer hardware. (C++, BASIC, COBOL, FORTRAN)

Fourth-generation languages (4GL)

These are less procedural and even more English-like than 3rd generation languages.
Examples: Visual C++, Visual Basic, Delphi, SQL.

OO programming languages

Advantages: reusable code, lower costs, reduced testing, faster implementation times.
Disadvantages: Slower execution times and higher memory requirements.

Examples: Smalltalk, Java (which has cross-platform capabilities).

Visual programming languages

Use mouse, icons, symbols, menus… to develop programs (E.g. Visual C++)
These languages have never been considered appropriate for developing critical applications.

Fifth-generation languages

= Knowledge-based programming (You tell the computer what to do, not how)
Java Studio

Selecting a programming language
Machine and assembly languages provide the most direct control over computer hardware.
Newer languages appear simpler and take less time to develop programs.

Language translators
= Systems software that converts code into its equivalent in machine language.
Source code = the high-level program code, written by the programmer.
Object code = the machine language code.
2 types of language translators:
* Interpreter
Translates one program statement at a time into machine code (which slows down execution)
* Compiler
Converts a complete program into a machine language.

Software issues and trends

Software bugs
Most bugs arise because software is released as early as possible.

Open source software
It can be more reliable than commercial software because users can fix problems they find.

Open-sourcing
= Involving other people in a common development effort.
This spreads development costs and there are more people with highly specialised expertise.
There are more developers and users who can identify and eliminate bugs.
Software licensing
= Software protected by copyright law - The copyright holder has all rights, not the users.
Vendors try to protect their software from being copied and distributed by individuals.

Software upgrades
Upgrades cost much less than the original purchase price.
Global software support
Global support can be outsourced to a third-party distributor, who acts as a middleman
between vendor and user, providing distribution, support, and invoicing.

No comments:

Post a Comment