CSC 150 UNGRADED QUIZ - Concordia University Wisconsin

Download Report

Transcript CSC 150 UNGRADED QUIZ - Concordia University Wisconsin

FOUNDATIONS -SOFTWARE
1. Review.
2. Dimensions for evaluating
software.
3. “Trade-offs.”
1. Review of the layers of
software.
A. Recall the diagram of the 3 types
of software.
B. We will examine criteria for
evaluating software as they apply to
all 3 types.
2. Dimensions for evaluating
software.
In the case of all 3 types of software,
there are certain critical factors:
A) EFFICIENCY, B) ROBUSTNESS,
C) PORTABILITY, D) POWER,
E) EASE OF USE.
Evaluating software (cont.).
A. EFFICIENCY.
Efficiency of software can be
measured in two ways:
1. TIME = how many CPU cycles
does the software require to run, or
accomplish a specific task?
Evaluating software (cont.).
2. SPACE = how “big” is the program
(how much memory do its instructions
and variables occupy)?
Obviously, the importance of time and
space considerations depends partly
on how much are available.
Evaluating software (cont.).
Examples.
Systems software: DOS/UNIX take
up less space and run faster than
Windows. Programming languages:
Assembly creates more efficient
programs than a high-level language.
Evaluating software (cont.).
Applications packages: A basic
program like WordPad or NotePad
runs faster than Word.
Evaluating software (cont.).
B. ROBUSTNESS.
This concerns how well software can
handle bad data and errors in the
system. Good programs can recover
gracefully from errors.
Evaluating software (cont.).
Examples:
Systems software: Windows 2000 /
NT is more robust than Windows 98.
Programming languages: Languages
like C++ allow one to “catch”
conditions which would otherwise
cause run-time errors.
Evaluating software (cont.).
Applications packages:
A robust application does validation
of the user’s data. E.g. Is it numeric, is
it within an acceptable range, is it a
valid code?
Evaluating software (cont.).
C. PORTABILITY.
Portable software can be used on a
variety of hardware platforms.
Evaluating software (cont.).
Examples:
Systems software: UNIX is a very
portable operating system (written in
the portable high-level language C),
and can be used on large, mid-size
and small systems.
Evaluating software (cont.).
Programming languages: High-level
languages are standardized to avoid
machine-specific features. (E.g. the
ANSI and ISO standard languages.)
Applications: JAVA programs are
accessed via the internet, but
compiled locally to suit specific H/W.
Evaluating software (cont.).
D. POWER. How full-featured is
the software?
E.g.s. [Systems:] Windows 95 and
above is more powerful than DOS e.g.
adds multi-tasking, demand paging.
[Programming languages:] C++ is
more powerful than BASIC.
Evaluating software (cont.).
Applications: Word2000 is more
powerful than Word for DOS 6.0.
E.g. can do advanced graphics / video,
make a web-page, interfaces with
other MS programs.
Evaluating software (cont.).
E. EASE OF USE. How userfriendly, what is the learning curve?
Systems: Windows is easier than
UNIX. Modern Integrated
Development Environments (IDEs)
make programming much easier.
Evaluating software (cont.).
Programming Languages:
BASIC is easier than C++.
Applications packages:
Ready-to-run S/W is easier to use than
S/W development tools (e.g. Word is
easier to use than Excel /Access).
3. Trade-offs.
Aside from human sinfulness, another
reason there is no “perfect” software
is that the five dimensions can come
into conflict.
Trade-offs continued.
1. The most efficient software will
tend to be less robust, less portable,
less powerful and less easy to use.
2. More robust, more powerful,
more portable or easier to use
software will be less efficient.
Trade-offs continued.
E.g. Windows NT is very robust but is
very large and runs slower than other
versions of Windows.
Windows is easier to use and more
powerful than DOS but is less
efficient.
Practical advice.
When evaluating any S/W, it is
necessary to consider three basic
questions:
1) Will it run on the H/W?
2) Who is the intended audience?
3) Is it cost-effective to invest time in
learning it?