Escolar Documentos
Profissional Documentos
Cultura Documentos
Public Domain
o Does not carry and copyright restrictions i.e. can be copied,
modified
Freeware
o Can be distributed freely, as long as its not for profit.
Ownership vs. Licensing
o Ownership implies that you have the rights to do as you with
the software. Licence agreements specify the legal
framework the program can be used. The customer does not
own the software but a license to use the software. The
licence agreement is the contract between the end user and
developer.
Copyright Laws
o Are in place to safeguard the legal rights of authors of any
original works. Copyright gives the exclusive rights to licence
others.
Reverse/Backwards Engineering
o Analysing a product and its parts to understand how it works
and to recreate its original design, usually with the purpose of
creating a similar product based on this design.
Decompilation
o The opposite of compilation. Translating machine executable
code into low level source code. This allows the programmers
design to be more easily understood by a software engineer
License conditions
o Off-the-shelf software packages contains a single user
licence, enables the customer to install the software on one
computer. Site licences are allowed to be installed on a large
number of computers. Multi-user licenses are similar to site
licences but they specify the exact numbers of users that can
use the software at once.
Network Use
o Organisations can obtain network licences for use on multiple
machines. Concurrent user licence allows the application to
be installed on the server and accessed over the network, but
at any one time only a certain number of employees can run
the program. Domain licences maybe be run on any
computer part of a specific domain.
Various national perspectives to software piracy and copyright laws
o Estimated use of 40% of all software use is illegally copied
o Piracy cost of US$11Billion internationally in software industry
o Business Software Association of Australia (BSAA) estimates
that 32% of Aust software is illegally copied. Equates to
A$290 million lost to developers per year.
The relationship between copyright laws and software license
agreements
o The copyright act does not require a formal application in
order to obtain copyright protection.
o A software licence agreement is a document used to create a
binding contract between the purchaser and software
developer.
2 | Page
SDD 2007 ABHS - JSK
4 | Page
SDD 2007 ABHS - JSK
Methods of Implementation
Implementation involves installing a new system, which
would involve a conversion from an old system to a new
system.
o Direct Cut Over
Old system being completely dropped and new system
being completely at the same time.
Advantage: data does not need to be processed twice
Disadvantage: training of staff for new system is
difficult.
o Parallel
Implementing and operating the system at the same
time as the old system.
Advantage: faulty new system has minimal impact.
Disadvantage: two sets of data needs to be maintained
o Phased
Gradual and modular replacement of the old system
with the new system.
Advantage: suited to large projects where sub-systems
operate independently from each other
Disadvantage: gradual phasing may confuse users,
some on old system some on new system, makes
communication more difficult.
o Pilot
Involves a small-scale implementation of new system
Installed for a small number of users these users learn,
use and evaluates the new system. Once deemed
satisfactory the system is installed and used by all.
Advantage: minimal disruption if theres problems with
the system
Current Trends is Software Development
o Outsourcing
Software development companies (small or large
businesses) contract a particular software specialist to
develop software for them (this is called outsourcing)
for some of the following reasons
They do not have the resources internally
To reduce and control costs
5 | Page
The design specifications form the basis for planning and designing
the solution. The aim of the design specifications is to accurately interpret
the needs, objectives and boundaries identified into a set of workable and
realistic specs form the a final solution can be created.
The Developers perspective in consideration of
o Data types
Data type
Integer
Description
Signed whole numbers
Example
-97, 0, 32767
Real
-3.54, 234.2,
3.599E+11
Character
Boolean
Size
Usually 16 bits
32,768 to
+32,767
Usually 32 bits
A, 2, &, @
Usually 8 bits
1 bit
Algorithms
a series of procedural steps that will result in the
solution to a specific problem within a finite time.
Programmers use algorithms to determine the solution.
Once the algorithm is written, it is very easy to write
the code of the program from that.
Variables
is a pointer to an area in memory that is used by a
program to store data.
Variables are a feature of third generation languages,
and in particular of procedural languages. A constant
may also be used to store data, but once assigned a
value, it cannot be changed
Screen
1
SDD 2007 ABHS - JSK
Screen
2
Screen
3
Screen
4
8 | Page
Hierarchical Storyboard:
Resource
Produc
ts
Non-Linear/ Networked/ Composite storyboard:
1
Home Page
About
2
5
Communication issues
The need to empower the user
It is important to include the user in the development process
Consultation
Description/example
9 | Page
SDD 2007 ABHS - JSK
technique
Interviews
Questionnaires
, survey
Focus/user
group
meetings
Observation
Documentatio
n
Control
Paramete
Datar dictionary
o
Paramete
r
Decision
Repetitio
n
proces
s
Call
line
Describes the nature and type of data used in a program (on
a table).
Menus
Window
Icon
Scroll bar
Radio Button
Dialogue boxes
Design of help screens
Help screens should be simple, non-threatening and
guide the user in a positive manner.
Context sensitive, procedural and conceptual help as
well as tours and tutorials can be used.
Audience identification
Language should be clear and unambiguous.
The program must use language appropriate for its
target group.
Consistency in approach
It is important to keep fonts, colours and placement
consistent throughout the program so that it is easier
to use to for the user.
Optional (no
repetition)
Terminal symbol
something just there
with no <> around
it
Grouping groups
elements together
<>
<>
Recursion
{}
(i.e. word::=<letter><letter>|
<word>)
N/A
[]
Use as written
Use as written
N/A
()
15 | P a g e
SDD 2007 ABHS - JSK
16 | P a g e
SDD 2007 ABHS - JSK
Advantages
Is executed very quickly
Security of code (harder to
change binary the high level
code)
Allows optimisation of object
code
Permits sharing of resources
and reduces redundancy by
using run-time libraries
Disadvantages
Modification of the problem
means that it has to be
compiled completely
Compiling stops when a
syntax error is encountered
Object code duplicates space
Disadvantages
Programs are not executed as
quickly as they are for
compiled programs
Code is still accessible to
17 | P a g e
are reached
o
Advantages
Simple, rapid production of
source code
Immediate detection of
syntax errors
No stored object code, so no
duplication of resources
Run-time errors are detected
and corrected quickly
Interactive programming
Disadvantages
Slow execution speed
Poor efficiency the same
lines will be reinterpreted
each pass of a repetition
No reusable object code is
produced
o
o
Flags
Boolean variable that indicates that an event has
occurred.
Isolation of errors
Errors can often be located by:
Using debugging output statements.
Commenting out sections of code to determine
which part is causing the error.
Setting break points to exit the program if a
certain event occurs.
Debugging output statements
Debugging output statements, such as variable traces,
are used to print the value of a variable at a certain
point of the code to test if the algorithm is operating
correctly.
Elegance of solution
Being able to solve a problem with the minimum
amount of code. It often requires lateral thinking so
that unnecessary steps can be skipped.
Writing for subsequent maintenance
Taking the source code and converting it into
executable code that can be executed independently
and without the need for a translator.
19 | P a g e
SDD 2007 ABHS - JSK
20 | P a g e
SDD 2007 ABHS - JSK
21 | P a g e
SDD 2007 ABHS - JSK
Emerging Technologies
Hardware
o Quantum Computers Will vastly increase the speed at which
computers can operate.
o Nanotechnology Will allow for the sizes of computers to
decrease so they can be embedded in more places.
o Holographic Storage Expand storage devices to a three
dimensional level to increase the amount of data that can be
stored greatly.
Software
o Java Allows for the development of cross-platform
applications. Becoming increasingly popular as a
programming language.
o Dylan A programming language which extends upon other
object oriented languages by introducing new data structures
such as dynamic inheritance and parametric polymorphism.
Their effect on:
o Human environment
As new technologies emerge, many people strive to
incorporate them into their lives.
Most technological items are designed to assist
humans in particular tasks.
There can be both positive and negative effects due to
technological advance, these should be determined
before a technology is accepted by society.
o Development process
Software is becoming increasingly cross-platform as
the line between PCs, PDAs, mobile phones, etc.
becomes blurred.
CASE tools as well as Visual IDEs are assisting
programmers to develop applications more quickly and
more easily.
9.2.4 Testing and evaluation of software solutions
Testing the software solution
Comparison of the solution with the original design specifications
o Validation: comparison with the solution with the design
specification
o
o
o
o
o
o
o
o
Levels of testing
o Units or module
o Program
o System
o Unit/module testing treats each module as a stand alone
application that does need any of the other component of the
program to function
o Program - testing programs are normally done in two ways:
Top-down approach the program driver is first tested
with stubs, and then the modules are gradually added
and tested. Modules keep on being gradually added
and tested until the whole program woks
Bottom-up approach lower level modules are first
tested and one by one more modules are added on
with the driver module being the last one.
o When all the modules have been put together users become
actively involved in the testing. This is known as function
testing
o Acceptance testing is used for custom built software and is
carried out to determine if the software is capable of being
used in a fully functional system. Other aims include how the
human/computer interface works with users and to detect
any errors that may have been missed during the previous
testing stages. It can also serve to train some of the users.
o Alpha testing is used for commercial software titles.
Developers watch a selection of users to see where the errors
are and to properly document them. These errors later
become part of the modification
o Beta testing is nearly the same as alpha testing but the
testers are given the task of trying to break the program and
have to document where it went wrong
24 | P a g e
SDD 2007 ABHS - JSK
25 | P a g e
SDD 2007 ABHS - JSK
o
o
26 | P a g e
SDD 2007 ABHS - JSK
Test results sharing test results with those whom the software is being
developed may concern them, but is important so they know what is
happening and can make decision on whether it is worthwhile spending extra
time to fix up problems
Comparison with the original design specifications if the program meets all
the requirements of the original design specifications the client will be happy;
if it does not, the client will expect the program is bought up to that standard.
Example
A doctor currently bills patients as they are seen. The
doctor wishes to change to an account system where the
patients are billed at the end of each week
A website was developed in 1999 to be state of the art.
Communication speeds, processing speeds and storage
capacity have all increased. To remain state of the art, it
can be upgraded to include greater variety of graphics,
animations, sound and video
In France the introduction of the Euro currency would
mean that software used for sales in shops must be able
to process both the French Franc and the Euro
A word processor may work perfectly running on Mac OS
8; however when the OS system is upgraded to system 9,
the word processor does not function properly
A school may be an all girls school that wishes to change
over to be co-educational. The school custom data base
may require alterations to the way reports are printed
The introduction of the GST forces companies to modify
their accounting packages to accommodate the new
government requirements.
A student may develop a computer game at school;
however, he later realises that the game will run on a
27 | P a g e
SDD 2007 ABHS - JSK
Documentation of changes
Source code macro and script documentation
o Any changes done made to the source code or script should be
thoroughly documented, as if you would do when making the
solution
o Any changes should be clearly indicated in both internal and
external documentation
o Configuration management (CM) management of software
resources
28 | P a g e
SDD 2007 ABHS - JSK
Machine
o Machine Language is the only language that the computer can
directly understand without need of translation. Machine languages
consists of binary digits grouped into Operation Codes (op-codes)
and memory locations 8, 16, 32 or 64 bits. The operation codes
correspond to actions in the fetch-execute cycle of the CPU.
o The Accumulator is one of the registers in the CPU. It stores a
single data item which is about to be used in a computation. It then
29 | P a g e
replaces this with the data item produced as the result of the
computation.
Machine code is often written in Octal or Hexadecimal rather then
Binary because:
There are fewer digits required to represent a numeral
There is less likelihood of mistakes with the place
values of digits
Each number is easier to recognise and remember
Programmers using machine code need to fully understand the CPU
operation, as the code is totally dependent on the architecture of
the individual machine.
Assembly
o Assembly Language relives the programmer of some of the
tedium associated with programming in machine code. It uses the
processing power of the computer to translate decimal numbers
and letters into binary code.
o Assembly language programs are converted to machine language
by an assembler. An Assembler takes the original source code and
converts into object code. This translating of programs slows their
execution but the trade-off in accuracy and ease of use is more then
worthwhile.
o In assembly language, operation codes are replaced by symbolic
groups of alphanumeric characters called Mnemonics. A
mnemonic is a word or string which is easier to remember then the
binary patterns it stands for. Non- printing ASCII (American
Standard Code for Information Interchange) characters also
have mnemonics like ESC and DEL intended to evoke their meaning
on certain systems.
o Assembly language is like machine languages in that one line of
code corresponds to one action by the computer.
o A Jump allows the program to branch or jump to an instruction that
is not next in the order.
o Assembly language introduced the concept of Labels or Variables.
Using a label makes it easier for the programmer to keep track of
the memory locations and instructions.
o Assembly language is machine dependent and so programs are not
transportable.
o Macro Instructions or routines of operation codes which could be
accessed by a single mnemonic code further simplified the process
of programming in assembly language. Creating a Library of
Macros for use in future programs greatly improved productivity.
o When an assembler translates the source code into machine
language, it substitutes the predefined sequence of instructions for
the macro instruction.
30 | P a g e
SDD 2007 ABHS - JSK
High-level languages permit the programmers to devise problemorientated solutions which are independent of the operation of the
computer itself.
Most third generation languages are Procedural Languages where the
programmer must define the in detail the steps and the exact order in
which these steps are to be performed in order to accomplish a task.
31 | P a g e
SDD 2007 ABHS - JSK
Functions (Functional)
o Function Programs consist of the definition and application of
functions. The execution of a program consists of evaluating these
functions using parameters given.
o Functional programming languages may use Recursion and
Conditional Values for evaluation of functions and in many cases
simple functions are combined to form more complex and more
powerful functions.
o Concurrent Programming permits a single processor to perform
several tasks or aspects of a program. This is distinct from parallel
processing which involves several tasks on several processors.
Functional programs are suited to concurrent programming.
33 | P a g e
SDD 2007 ABHS - JSK
o
o
o
o
o
o
o
o
o
o
o
o
Function al languages are not restricted by the type of data that can
be returned by a function.
Functional programs use recursion rather then repetition (loops).
Many modern versions of functional languages allow for the use of
variables and a range of data structures.
35 | P a g e
SDD 2007 ABHS - JSK