2 memory management - Index of

jaspersugarlandSoftware and s/w Development

Dec 14, 2013 (3 years and 10 months ago)

119 views

INFORMATION TECHNOLO
GY:

PRACTICAL KNOWLEDGE
FOR TEACHING

STUDY GUIDE FOR

CSIE 625

P
E
C

*
CSIE625PEC*

FACULTY OF

EDUCATION SCIENCES





ii

























Study guide compiled by:

Dr HM Havenga




Edited
nn.

+
Page layout by
Marijke Reyneke
, Graphikos.

Printing arrangements and distribution by Department Logistics (Distribution Centre).

Prin
ted by Ivyline Technologies 018
293 0715/6

Copyright


20
1
3

edition. Date of revision 20
1
4
.

North
-
West University, Potchefstroom Campus.

No part of this book may be
reproduced in any form or by any means without written
permission from the publisher.



iii

MODULE CONTENTS

Word of welcome

................................
................................
................................
...................

v

Contact person

................................
................................
................................
......................

v

Rationale

................................
................................
................................
...............................

v

Prerequisites

................................
................................
................................
..........................

v

Programme plan

................................
................................
................................
...................

vi

Study material

................................
................................
................................
.......................

vii

How to use the study guide

................................
................................
................................
...

vii

Assessment

................................
................................
................................
..........................

vii

Admission to the examination and calculation of the module mark
................................
.......

viii

Action verbs

................................
................................
................................
.........................

viii

Levels of cognitive skills

................................
................................
................................
.........

x

Module plan

................................
................................
................................
...........................

x

Time schedule for this module

................................
................................
..............................

xi

Module outcomes

................................
................................
................................
.................

xi

Warning against plagiarism

................................
................................
................................
...

xii

Study unit 1

Aspects of operating syste
ms

................................
............................

1

1.1

Development of operating systems

................................
........................

2

1.2

Process management

................................
................................
............

2

1.3

Device management: Raid technology

................................
...................

3

Study unit 2

Memory manage
ment

................................
................................
..........

5

2.1

Principles of translators and memory management

................................

6

2.2

Binding of variables

................................
................................
................

6

2.3

Process and data abstraction

................................
................................
.

7

2.4

Semantic
models for parameter passing

................................
................

7

Study unit 3

Methodologies and object
-
oriented programming

............................

9

3.1

Methodologies and the life cycle approach

................................
...........

10

3.2

XP Methodology

................................
................................
...................

10

3.3

DSDM approach

................................
................................
..................

11

3.4

Applications in OOP

................................
................................
.............

11

Study unit 4

Protocols and security

................................
................................
......

13

4.1

TCP/IP Protocol Suite

................................
................................
..........

14

4.2

ARP and RARP protocols

................................
................................
....

14

4.3

DNS protocol

................................
................................
.......................

15

4.4

SMTP, POP, MIME and IMAP protocols

................................
..............

16

4.5

Network security

................................
................................
..................

16


iv

Study unit 5

Algorithm analysis and data structures

................................
...........

17

5.1

Algorithm analysis

................................
................................
................

17

5.2

Data structures

................................
................................
.....................

18

Study unit 6

Project management

................................
................................
..........

19

6.1

Projec
t management framework and principles

................................
....

19

6.2

Project management applications

................................
........................

20

APPENDIX A


................................
................................
................................
.............

21

APPENDIX B

ASSIGNMENTS

................................
................................
...................

25

APPENDIX c

COLL
OQUIUM

................................
................................
....................

27




v

WORD OF WELCOME

The module Information Technology
: Pra
ctical Knowledge for Teaching

fo
cuses on the
teaching and learning of advanced techniques in programming
.
The

module CSIE 625 is
a
16
-
credit module that presup
poses that you will need approximately 160 study hours to
successfully master the set outcomes of the module
.
We trust that the module will be of
great value to you
.
Good luck and best wishes for your studies
.

CONTACT PERSON

Lecturer

Address

Office

Con
tact Details

Dr HM Havenga



NWU



Potchefstroom
campus

Building B10, Room
G16


018 299 4281



RATIONALE

The aim of this module is that after completion thereof, you should have gained a sound
knowledge of and acquired the necessary skills and applicati
ons concerning operating
systems, memory management, object
-
oriented programming, networks, algorithm analysis
and project management
.
Through soundly
-
based training, this module attempts to make a
fundamental contribution to your knowledge of computers a
nd programming
.

PREREQUISITES

A prospective student must comply with the requirements in accordance with the Yearbook
and be selected with a view to postgraduate Honours study in Information Technology
.


vi

PROGRAMME PLAN

The table below gives an indication
of how this module fits into the programme for
Hons BEd
in
Computer Science Education
.


Module

nam
e

Module

c
redit
s

Module

c
ode

Fundament
al

modules

Foundation of Educational
Research

16

FOER 611

Research project

32

RSPR 671

Core
modules

Teaching, Learn
ing and
Assessment

16

TLAS

612

Cu
rri
c
ulum

Development

16

CUDE

611

Computer Science
:
Theory
Knowledge for Teaching

16

CSIE 624

Option
modules (
first

semester:
choose one
)

Fundamentals for Information
Technology Education

16

CSIE 611

Fundamental Princip
les of
Teaching Computer Application
Technology

16

CSIE 612

Option
modules (
second
semester:
choose one
)

In
formation Technology
:

Pra
ctical Knowledge for
Teaching

16

CSIE 625

Computer Application
Technology
: Pra
ctical knowledge
for Teaching


16

CSIE 626


128

c
redit
s




vii

STUD
Y MATERIAL

The prescribed textbook for this module is

SEBESTA, R.W. 2013.
Concepts of programming languages
. 10
th

ed. Boston: Pearson
Addison Wesley.

Addi
tional reading and study material

This module forms part of a postgraduate qual
ification
.
It is therefore essential that you do
additional reading and studying, over and above the references to the prescribed textbook
.
Make wide use of other textbooks, articles in academic
-
scientific journals and on the Internet
.

HO
W TO USE THE STUD
Y GUIDE

The following guidelines are aimed at assisting you to complete this module successfully
:



Cultivate an attitude of self
-
discipline and self
-
regulated learning
.
The teaching
approach in this module is aimed at the student studying independently
.



I
t is strongly recommended that you undertake literature searches regarding the
different study themes and follow
-
up these searches with additional reading and
studying
.



Carry out examples practically on the computer (where applicable) before attending
clas
s
.
Contact sessions will be aimed at the integration of theoretical and practical
knowledge and skills in achieving the specific outcomes
.

ASSESS
MENT

Formati
ve assessment is used by completing
two assignments
.
Consult
Appendix B

at the
end of the Study

Guide
.
Assignment 1 must be submitted after completion of Study Unit 3
and Assignment 2 must be submitted after completion of Study Unit 6
.
You will be informed
of the final submission dates for the assignments
.

During the
second last contact session

of

the module you must give a presentation as part
of a

colloquium.
The information regarding the

colloquium is provided at the end of the Study
Guide in
Appendix C
.

Nature of evaluation

Value

Submission date of assignments

Assignment

1

30


Assignment

2

30


Participation in

colloquium

20


Class participation and
class assignments

20


E
xamination paper

100



viii

ADMISSION TO THE EXA
MINATION AND CALCULA
TION
OF THE MODULE MARK

Proof of participation

In order to gain admission to the examination for this module,

it is your responsibility to prove
that you participated in the required teaching
-
learning activities in order to attain the module
outcomes. To obtain a proof of participation in this module, you must meet the following
requirements:



Complete
two individ
ual assignments
within the specified time for each assignment;
and




Give
a presentation

during the scheduled

colloquium.

Participation mark

Your assignments and colloquium presentation will be evaluated and a mark awarded for
each. Remember that each assig
nment must be an individual product. The marks for your
assignments and presentation, as well as your class participation and class assignments are
added together and a mark is calculated out of 100, which will then form your participation
mark for this mo
dule.

Module mark

Please take note that the following
minimum marks
are required in order to pass the
module:

Participation mark:
50%

Examination mark:
50%

Module mark:
50%


The 3
-
hour examination paper will comprise a
theoretical

and
practical

compone
nt
and/or applications.

ACTION VERBS

The following action verbs are included in order to provide clarity about what is expected of
you as learner and which cognitive skills need to be demonstrated. You must study this
information about the verbs together w
ith the different cognitive levels.



Anal
yse

The content is divided into parts or elements and discussed.
Causes and effects are
determined and interrelationships are ascertained
.

Example
:
Analyse algorithms in order to improve the effectiveness thereof in

respect of run
time and give your opinion in this regard
.



Describe

Here performance at the knowledge level is expected. Characteristics, facts or results are
conveyed logically and in a well
-
structured way. No comment or argument is required.

Example: Des
cribe three types of data structure
s
.



ix



Discuss

This type of question presupposes insight and the ability to distinguish when an application
and judgement is made. Here the various aspects of the matter or statement are examined
and stated.

Example: Discus
s the use and application of RAID technology.



Define

Knowledge reproduction is required. It is a clear, concise and authoritative description of a
concept so that the meaning thereof is apparent.

Example:
Define a methodology by means of a diagram.



Identi
fy

Give the most important characteristics or aspects of a phenomenon.

Example:
Identify the most important features of ARP and RARP protocol
s
.



Evaluate

When you evaluate, it is expected that you rate a matter in respect of certain criteria
.
A value
judge
ment on the matter is expressed, which must be motivated
.

Example
:
Evalu
ate the

in mode, out mode

and

inout mode

semanti
c models for parameter
passing in subprograms
.



Formul
ate

Setting out systematically, ie an accurate, precise description that pays metho
dical attention
to the finer details
.

Example
: Formul
ate a definition for project integration management
.



Illustr
ate

To describe something by means of examples
.

Example
:
Use a class diagram and illustrate inheritance of a certain class
.



Criticise

This mean
s that you must indicate whether you agree or disagree with a particular statement
or point of view
.
Thereafter you must describe what you agree/disagree with and give
reasons for you point of view
.

Example
:
Comment critically on the

RUP

approach to syste
m development
.



Motiv
ate

G
ive an explanation of the reasons for your statements or points of view
.
You must try and
convince the reader concerning your point of view
.

Example
:
Express yourself regarding the effectiveness of compilers and interpreters and
mo
tivate your point of view
.



N
ame

H
ere only the facts are written down in a nutshell
.

Example
: N
ame the difference between

ARP
and

RARP.


x



Distinguish

Indicate the differences as well as the similarities between different ideas, points of view or
perspectives.

Example: Distinguish between a
stack

and a
heap
with reference to memory management of
programs
.



Summarise

To encapsulate information succinctly and systematically. Give a structured overview of the
key (ie the most important) aspects of a topic.

Example
:
Make a summary of project integration management.



Program

Here an executable program must be written in order to solve a given problem as well as
possible through the application of the correct program structures and principles.

Example: Write a computer

program and use selection sort and bubble sort to determine the
run

times of both sort methods
.



Explain

The matter is stated simply so that the reader will understand. Here you must use
illustrations, descriptions and examples, whilst also giving reasons

for findings and results.

Example: Explain different types of sequencing that are used with stacks.



Compare

This question must be handled carefully. You must not first describe and discuss one matter
and later the other matter. Facts, events or problems

are placed against each other and
similarities and differences are brought to the fore.

Example: Compare different levels of

RAID technology.

LEVELS OF COGNITIVE
SKILLS


It is important that you understand each action verb and know on which cognitive lev
el the
skill lies
.
Students at honours level (postgraduate) are expected to engage with the study
material at a higher cognitive and academic level compared to those at the undergraduate
level
.

MODULE

PLAN

IN
FORMATION TECHNOLOGY
: PRA
CTICAL KNOWLEDGE FOR T
EACHING

Study Unit

1

Aspe
cts of operating systems

Study Unit

2

Memory management

Study Unit

3

Met
h
odologie
s and object
-
oriented programming

Study Unit

4

Proto
cols and security

Study Unit

5

Algorit
h
m

analysis and data structures

Study Unit

6

Proje
ct m
anagement



xi

T
IME SCHEDULE FOR THI
S

MODULE

This is a 16
-
credit module and you will need approximately 160 hours to complete the
module
.
This includes contact sessions, completion of assignments, preparation for contact
sessions
/colloquium/
learning hours and

the examination
.
Use the table below to do your
planning
.

Study
Unit/Assignment

T
h
em
e

Study Unit

1

Aspe
cts of operating systems

Study Unit

2

Memory management

Study Unit

3

Met
h
odologie
s and object
-
oriented programming

Assignment

1


Study Unit

4

Proto
cols and security

Study Unit

5

Algorit
h
m

analysis and data structures

Study Unit

6

Proje
ct management

Assignment

2


Colloquium



MODULE

OUTCOMES

After completion of this module the students should be equipped with




wide
-
ranging knowledge and practica
l skills

in the design and implementation of
advanced object
-
oriented programming principles
;



sound knowledge and skills

to demonstrate the compilation process of programs with
reference to memory allocation and error handling
;

and



sound knowledge and skil
ls

in order to demonstrate network technologies and security,
operating systems and project management
.


xii

WARNING AGAINST PLAG
IARISM


ASSIGNMENTS ARE INDIVIDUAL TASKS AND NOT GROUP ACTIVITIES
.
(UNLESS
EXPLICITLY INDICATED AS GROUP ACTIVITIES)

Copying
of te
xt from other learners or from other sources (for instance the study guide,
prescribed material or directly from the internet) is
not allowed



only brief quotations are
allowed and then only if indicated as such.

You should
reformulate

existing text and
use your
own words
to explain what you have
read. It is not acceptable to retype existing text and just acknowledge the source in a
footnote


you should be able to relate the idea or concept, without repeating the original
author to the letter.

The aim o
f the assignments is not the reproduction of existing material, but to ascertain
whether you have the ability to integrate existing texts, add your own interpretation and/or
critique of the texts and offer a creative solution to existing problems.

Be warne
d: students who submit copied text will obtain a mark of zero for the
assignment and disciplinary steps may be taken by the Faculty and/or University. It is
also unacceptable to do somebody else’s work, to lend your work to them or to make
your work availa
ble to them to copy


be careful and do not make your work available
to anyone!





Study unit 1


1


1

ASPE
CTS OF OPERATING
SYSTEMS




You require approximately 20 hours for the successful completion of Study Unit
.


After completion of this Study Unit you should be able t
o




critically discuss and evaluate the development of operating systems
;



critically discuss and evaluate project management of operating systems
;



distinguish between and compare concurrent and parallel processing
;



identify and discuss the levels of

RAID

technology; and



discuss and explain the rationale behind the use of

RAID

technology
.

Study Unit Content

1.1

Development of operating systems

................................
................................
......

2

1.2

Process management

................................
................................
..........................

2

1.3

Device management: Raid
technology
................................
................................
.

3


Besides the prescribed study material indicated in this Study Guide it is essential that you
use additional sources and Internet searches to ensure that you are equipped with the
necessary pre
-
knowledge in order
to complete the Study Unit successfully
.

This Study Unit is based on the following prescribed study material
:

Flynn, I.M. & McHoes, A.M. 2006. Understanding Operating Systems. 4th Ed. Thomson.
Course Technology, p
p
. 4
-
8, 11
-
25 (See Reader).


The aim of t
his Study Unit is to study advanced topics regarding operating systems in order
to equip you with the necessary background to explain the topics to learners
.
The
development of operating systems for each computer generation is studied
.
Advanced
topics, s
uch as for example

deadlock
,

starvation

and synchronisation of computer processes
are studied and aspects, such as parallel and concurrent processing are explained
. In
this
Study Unit you will also be introduced to the detailed working of RAID technology
.



Study unit 1


2

1.1

DEVELOPMENT OF OPERA
TING SYSTEMS

Operating systems are responsible for the control and checking of all processes in the
computer
.
This includes the control of every file, device, memory, processing time and
network communication
.
The operating system

is therefore responsible for file management,
memory management, process management (processor management), device management
and network management (in the instance where a network is used)
.

Typical of every computer generation is the development of op
erating systems
.
Various

t
y
pes

of operating systems can also be distinguished, namely batch processing, interactive,
real
-
time, hybrid processing and embedded systems
.

Study the relevant sections in the Reader and answer the following questions
.
Also make

use of the Internet and other sources
.
Remember to include a complete bibliography
.

All

assignments are submitted at the
beginning

of each contact session
!

Answer the following questions in writing:

1.

Discuss the development of operating systems in eac
h computer generation and also
refer to the latest development thereof
.
Subsequently refer to the

a)
problems and
gaps of operating systems in each generation and

b)
in which way this can be solved
or improved in a next generation
.

2.

Compare various

t
y
p
es

of operating systems in table format
. Evalu
ate each type and
decide for yourself which meaningful criteria to use for the evaluation
.

3.

Search for information on the Internet on the modern development of memory
management and refer to

1) virtu
al memor
y

and

2)
cache memory
.
Write a clearly
-
formulated summary on the main characteristics of each
.


1.2

PRO
CESS MANAGEMENT

Study

Flynn & McHoes (2006), p
p
. 112, 142
-
143, 155
-
165, 174
-
175, 190
-
193 (
see Reader
).

This introduction provides background on the various a
spects of process management
.
Pro
cess management is a complex activity that is carried out by operating systems
.
Pro
cesses must be synchronised in the computer to avoid problems, for example deadlock
and starvation
.
Some of the terms are explained
:

Pro
c
ess
:
an instance of execution of a program that is identifiable and controllable by the
operating system.

Deadlock
:
refers to a situation where all tasks wait for each other and are terminated as a
result of the hold of processes on resources
. Strategie
s t
hat prevent deadlock are
:
prevention, avoidance and detection and recovery
.

Starvation

is
the result of allocation of resources where a single task’s execution occurs
when resources are not made available
.

Parallel

processing

-

heavyweight
:
where

m
ore tha
n one

CPUs

work together in a
computer

(multi
processors
).
In other words, two or more

CPU
s w
ork simultaneously
.
The
rationale for the use of multiprocessors is that throughput and computer power are increased
thereby ensuring more trustworthy and faster
processing
.
The use of multiprocessors can,
however, make the management of processes more difficult
.
When a certain process is
interrupted (eg by input or output), the particular processor will update the information in the
process list and find another
process to execute
.
Conflict can arise between various devices
Study unit 1


3

and processes that must be executed by various processors
.
Pro
cess synchronisation

refers to the handling of conflicts and the synchronisation of all processes
.

Concurrent processing
-

lightw
eight
: Sometimes simultaneous processing is required in
smaller units. In this instance threads are used. A
thread

is a smaller unit within a process
that can be scheduled for execution. When a computer with a
single CPU

executes several
threads, it can v
ery quickly convert from one thread to another
to create the impression that
the threads are executed in parallel
. E
ach thread in a process has its own registers, program
counter, stack and status and saves variables dynamically (during execute)
.
A

t
hread

can be
in one of the following states
:
Creation, Ready, Running, Waiting, Delayed, Blocked

and

Finished
.


Study the relevant sections in the Reader and then answer the following questions
:

Answer the following questions in writing (and practically where

applicable)
:

1.

a)
Explain

deadlock

and

starvation

and discuss fully

b)
which strategies the operating
system use to handle and solve these problems
.

2.

Discuss parallel processing and explain the importance of synchronisation processes
.

3.

Explain w
hat concurrent processing and threads refer to
.
Ho
w does this differ from
parallel processing
?
Then examine the use of concurrent processing in a Delphi/Java
environment and give your opinion
.

4.

Discuss and explain the different states of a thread
.

5.

Pro
gramming
:
Write a Scratch program to illustrate the application of threads
.

1.3

DEVICE MANAGEMENT
: RAID

TE
CH
NOLOG
Y

Study

Flynn & McHoes (2006), p
p
. 233
-
239
.

(
See Reader.)

The accuracy and security of data are of the utmost importance to any institution that

makes
use of computer software
.
Device management uses, amongst other things, RAID
technology for this reason
. RAID (
Redundant arrays of independent disks
) is
a group of hard
disks that is controlled in such a way that quick access is gained to secondary

storage media
and it supports the protection and retrieval of data
. RAID is
a set of physical diskette drives
that is regarded as a single logical unit by the operating system
.
There are seven standard
levels of RAID, namely

levels 0 to 6
. E
ach

RAID

lev
el has a specific error
-
testing method
.

Study the relevant pages in the Reader, as well as additional Internet sources and answer
the following questions
:

Answer the following questions in writing
:

1.

Explain the rationale behind the use of RAID technolog
y
.

2.

Discuss each level of

RAID
with specific reference to the type of error testing and
effectiveness of each
.

3.

Give a critical
-
evaluating discussion on the applicability of RAID technology as
component of operating system management
.


Study unit 1


4





Study unit 2


5


2

MEMORY M
ANAGEMENT






You require approximately 30 hours for the successful completion of this Study Unit
.


After completion of this Study Unit you should be able to




distinguish between interpreters, compilers and hybrid implementation systems;



explain the proce
ss of program compil
ation

and discuss the role of parse trees;



discuss memory allocation during compil
ation

with reference to the stack and heap
;



illustrate practical applications of memory management in programs;



distinguish between static and dynamic b
inding of variables;



distinguish between process and data abstraction; and



discuss various semantic models for parameter passing and apply these in computer
programs.

Study Unit Content

2.1

Principles of translators and memory management

................................
.............

6

2.2

Binding of variables

................................
................................
.............................

6

2.3

Process and data abstraction

................................
................................
..............

7

2.4

Semantic models for parameter passing

................................
..............................

7


It is essential that you use additional sourc
es and Internet searches to ensure that you are
able to complete the Study Unit successfully
.


This Study Unit is based on the following prescribed study material
:

SEBESTA, R.W. 2013.
Concepts of programming languages
. 10
th

ed. Boston: Pearson
Addison Wesl
ey (
selected sections
).



Study unit 2


6

2.1

PRINCIPLES OF TRANSL
ATORS AND MEMORY
MANAGEMENT

Study applicable sections of the following prescribed study material
:

SEBESTA, R.W. 2013.
Concepts of programming languages
. 10
th

ed. Boston: Pearson
Addison Wesley. p
p
. 43
-
50.

Duri
ng program execution high
-
level languages are ‘translated’ into machine language
.
Translation relates to the conversion of human language to machine language
.
Translators
that will be discussed are interpreters, compilers and hybrid implementation system
s
.


Answer the following questions
:

1.

Critically evaluate the difference between compilers, interpreters and hybrid
implementation systems
.

2.

Discuss various phases of compilation and explain, amongst other things, the role of
parse trees
.

3.

Discuss
memory allocation with reference to the stack and heap
.


Programming
:
Write your own computer program to illustrate the use of a stack and
heap
.

2.2

BINDING
OF VARIABLES

Before a variable can be referenced in a program, it must be bound to a data type
.
The

concept,
binding time
,

is an indication of the time that it takes for binding to take place
.

A
distinction must be drawn between
stati
c

binding

and

d
y
nami
c

binding
. Stati
c

binding
takes
place

before

run time and remains unchanged throughout program exec
ution
.
If the binding
only occurs
during

program execution or changes during program execution, then the binding
is dynamic
.

Binding
can also take place during
:
language design time
,
language implementation time
,

compile time
,
load time

and

run time
.


Stu
dy applicable sections of the following prescribed study material
:

SEBESTA, R.W. 2013.
Concepts of programming languages
. 10
th

ed. Boston: Pearson
Addison Wesley. pp 229
-
238.


Answer the following question in writing
:

Do an Internet search on the followi
ng binding times
:
language design time
,
language
implementation time
,

compile time
,
load time

and

run time
.
Give a critically
-
evaluating
discussion on the use and applicability of each
.


Study unit 2


7

2.3

PRO
CESS AND DATA ABSTRA
CTION

Study applicable sections of the follow
ing prescribed study material:

SEBESTA, R.W. 2013.
Concepts of programming languages
. 10
th

ed. Boston: Pearson
Addison Wesley. pp. 494
-
498.

Abstraction is an approach or representation of an entity that only includes the most
important features
.
All les
s important aspects are omitted to make the understanding of a
certain problem or aspect easier
. Tw
o types of abstraction are distinguished, namely
process abstraction that is applied in subprograms (methods


procedures/functions) and
data abstraction, w
ith the use of abstract data types
.

Study the applicable sections in the Reader and answer the following questions
.


Answer the following questions
:

Explain

a) pro
cess and data abstraction fully and use

b) program
s or program segments to
make your answer
s clear
.



2.4

SEMANTI
C MODELS FOR PARAMET
ER PASSING

Study applicable sections of the following prescribed study material:

SEBESTA, R.W. 2013.
Concepts of programming languages
. 10
th

ed. Boston: Pearson
Addison Wesley. pp. 411
-
412, 419
-
425.

When a new progra
mming language is developed, it must be decided which of the various
models to use for effective parameter passing
.
The following modes for parameter passing
are distinguished
:
in mode
,
out mode

and

inout mode
.
Furthermore a distinction is also
made betw
een various implementation models of parameter passing
.

Study the applicable sections in the Reader and answer the following questions
.


Answer the following questions
:

1.

Critically evaluate the

in mode, out mode

and

inout mode

semanti
c models for
param
eter passing in subprograms
.

2.

Briefly explain the five implementation models of parameter passing
.

3.

Programming
:
Write a computer program to illustrate
any two

of the five
implementation models for parameter passing
.
Add a written explanation of this
to your
program
.


Evalu
ate your answer with reference to the content of the study material or additional
reading
.

Study unit 2


8







Study unit

3


9


3

MET
H
ODOLOGIE
S AND
OBJECT
-
ORIENTED
PROGRAMMING





You require approximately 30 hours for the successful completion of this Study U
nit
.

Study Unit Content

3.1

Methodologies and the life cycle approach

................................
........................

10

3.2

XP Methodology

................................
................................
................................

10

3.3

DSDM approach

................................
................................
................................

11

3.4

Applications in OOP

................................
................................
...........................

11


Assignment

1

m
ust be submitted after completion of this Study Unit
.


After completion of this Study Unit you should be able to




define and discuss a methodology in terms of the philosophical approach, process
models, tools and techniques
;



discuss a
nd evaluate the

XP

met
h
odolog
y with reference to the abovementioned
criteria
;



discuss and evaluate the

DSDM

approach with reference to the abovementioned
criteria
;

and



discuss and practically demonstrate applications of the object
-
oriented approach
.

Study unit

3


10

This

Study Unit is based on the following prescribed study material
:

Barrow, J. Learning Object
-
Oriented Programming with Delphi.

http://delphi.about.com/od/course/a/oop_intro.htm
.
(Photocopy
P
ART 1
and

ring

bind

the
pages).

Met
h
odologie
s as included in the Reader
.

Addi
tional study material
:


Avison, D. & Fitzgerald, G. 2006.
Information Systems Development. Methodologies,
techniques and tools.

4
th

ed. London: McGraw
-
Hill.

3.1

MET
H
ODOLOGIE
S AND T
HE LIFE CYCLE
APPROACH


An information system in an organisation provides processes and information that are useful
to the users and clients

(Avison & Fitzgerald, 2006:3).
Computer
-
based information systems
are focused on providing information quickly and

accurately as required
.
Examples of an
information system are
:
a point system and a pay system
.

The development of an information system is guided by the use of a particular

met
h
odolog
y

o
r approach of the type of system that must be developed
.
Examples

of methodologies are
process
-
oriented
, data
-
oriented
, obje
ct
-
oriented and

RAD (
Rapid Application Development
)
-
oriented methodologies
.

Avison & Fitzgerald (2006:568) defin
e a methodology as follows
:



A system development methodology is a recommended mea
ns to achieve the
development, or part of the development, of information systems based on a set of rationales
and an underlying philosophy that supports, justifies and makes coherent such a
recommendation for a particular context. The recommended means u
sually includes the
identification of phases, procedures, tasks, rules, techniques, guidelines, documentation and
tools. They might also include recommendations concerning the management and
organization of the approach and the identification and training

of the participants
”.

A methodology is therefore based on a particular

1)
philosophical approach
, 2) spe
cific

system development methods
, 3) pro
cess models
,
and
4)
tools and techniques to develop a
new information system
.

Well
-
known steps in the life cyc
le of a new information system, eg the

waterfall model’
,
are

f
easibility study, system investigation, systems analysis, systems design, implementation

and

review and maintenance
.

Tw
o methodologies that will be dealt with are

XP
and

DSD
M
, w
here both metho
dologies
emphasise object
-
oriented principles
.

3.2

XP

MET
H
ODOLOG
Y

The

XP (
Extreme programming
)

met
h
odolog
y

is
mainly aimed at the fast development

(
Rapid Application Development
)
of information systems
.
It follows the

Agile

approach
.
Pair
programming is also o
ne of the main principles of the

XP

met
h
odolog
y
.

Study the following prescribed study material
:

Appendix

A
: XP

met
h
odolog
y
.


Study unit

3


11

Now answer the following questions in writing
:

Discuss the

XP

met
h
odolog
y in terms of the following aspects
:

1)

Philosophical ap
proach
, 2) Pro
cess model

(
ph
ases), 3)
Techniques and tools
,
and

4)
12
core principles
.

2)

Discuss the role of pair programming as one of the main principles of this methodology
.

3
)

Give your opinion on the suitability of the

XP

met
h
odolog
y

in
South Africa



ma
ke use
of additional Internet sources to explain your answers
.

3.3

DSDM
APPROACH

The

DSDM (
Dynamic Systems Development Method
)

approach is aimed mainly at continued
user involvement in an iterative

(protot
ype
-
based
)
development process that adapts to new
b
usiness requirements and needs
.


Also study the following prescribed study material
:

Arti
cle
:
Bhalerao, S., Puntambekar, D. & Ingle, M. Generalizing Agile Software Development
Life Cycle.
International Journal on Computer Science and Engineering

1(3), 2009
, 222
-
226.

Also make use of the Internet as resource
.

Answer the following questions
:

1.

Discuss the

DSDM
approach in terms of the following aspects
:


1)
Philosophical approach
, 2) Pro
cess model
, 3) Te
chniques and tools

and

4)
principles and fundamentals o
f

DSDM.

2.

Give your opinion on the suitability of the

DSDM
met
h
odolog
y

in
South Africa



ma
ke
use of additional Internet sources to explain your answers
.

Discuss your answers with fellow
-
learners
.

3.4

APPLICATIONS

IN OOP

In
this section you will apply the ob
ject
-
oriented approach practically by means of diagrams

in
MS Visio

to help you with the development of new systems
.

Answer the following questions
:

1.

Discuss the object
-
oriented

(OO)
approach in terms of the

philosophy

and principles


(
fundamentals
)
on w
hich

OO
is based
.

2.

Pra
ctical
:
Study

Barrow (
especially Chapter

1)
and draw, with the help of

MS Visio


software a



1)
Use Case

diagram
and a

2)
Class diagram of a point system scenario
.


Assignment
1
m
ust now be completed and submitted
.
Also take no
te of the directives in the
section on module information
.


Study unit

3


12







Study unit

4


13


4

PROTOCOLS AND SECURI
TY






You require approximately 30 hours for the successful completion of this Study Unit.


After completion of this Study Unit you should be able to



discuss and
evaluate the TCP/IP protocol suite with reference to the role of TCP and IP
separately and jointly;



discuss and distinguish ARP and RARP protocol
s

in terms of mapping;



discuss DNS protocol with reference to mapping;



discuss and distinguish the SMPT, POP an
d IMAP protocols’ different roles and
functionality; and



discuss network security in terms of the applicability and functionality of SSL, SSH and
IPSec.

Study Unit Content

4.1

TCP/IP Protocol Suite

................................
................................
........................

14

4.2

ARP and RARP protocol
s

................................
................................
..................

14

4.3

DNS protocol

................................
................................
................................
.....

15

4.4

SMTP, POP, MIME and IMAP protocols

................................
............................

16

4.5

Network security

................................
................................
................................

16


This Study Unit is based on the following pr
escribed study material
:

Netw
ork protocols as included in the Reader
.

Addi
tional Internet sources
.

Addi
tional source
: Forouzan, B.E. 2007.
TCP/IP Protocol Suite
. 3
rd

Edition (o
r

later). Boston:
McGraw
-
Hill.


This Study Unit focuses on the

TCP/IP

proto
c
ol s
uite
together with a few protocols that will
be discussed in this regard, as well as the importance of network security
.


Study unit

4


14

4.1

TCP/IP

PROTO
C
OL SUITE

The

TCP/IP
(Transmission Control Protocol/Internet Protocol)
is
the main protocol of the
Internet, which include
s several protocols
. TCP/IP is
a hierarchical protocol where each high
layer protocol is supported by

one or more lower layer protocols
.
The

Internet Proto
c
ol (IP)
is
the transport mechanism that is used by

TCP/IP.
IP is
an
:
unreliable, connectionless
d
atagram
proto
c
ol

for a packet switching network
.
IP

provides no error checking and
tracking of datagrams
.

TCP is
a

process
-
to
-
process

proto
c
ol. TCP ma
kes use of port numbers
. TCP is
also a
connection
-
oriented protocol

(
virtual connections
)
and uses flow
-
c
ontrol and error
-
control
mechanisms
.
TCP is
therefore a
:
reliable, connection
-
oriented, transport protocol.

TCP
sends a data

st
ream of bytes

(
stream
-
oriented
)
and provides full
-
duplex communication
.

The

TCP/IP

proto
c
ol suite
consists of five layers
:
physi
cal, data link, network, transport

and

application.
The first four layers provide physical standards
, netw
ork interfaces

and
transport
functions, whereas the top layer includes the

application layer
.
Within each of these layers,
certain protocols are used
.
For our purposes the focus will only be on the following
protocols
: ARP
and

RARP

proto
c
ol
s

(
network layer
), DNS

proto
c
ol (
application layer
)
and

SMTP, POP, MIME
and

IMAP

proto
c
ol
s

(
application layer
).


Answer the following questions in writing
:

1.

The

TCP

and

IP

proto
c
ol
s differ from each other in terms of nature and functionality
.
Discuss the difference between these two protocols regarding approach and
functionality and evaluate each
.


2.

Subsequently also discuss the role of

TCP/IP

jointly and in wh
at ways these two
protocols complement each other
.

4.2

ARP
AND

RARP

PROTO
C
OL
S

Study the following prescribed study material:

Reader
: ARP

and

RARP

proto
c
ol
s
.

Addi
tional Internet sources
.

Addi
tional source
: Forouzan, B.E. 2007.
TCP/IP Protocol Suite
. 3
rd

Edition

(o
r

later). Boston:
McGraw
-
Hill.

A

l
ogi
cal address

is
an

Internet a
d
dres
s



it is unique and universal
.
It is called

‘logi
cal

because this address is usually implemented in software
.

A

physical

a
d
dres
s

is
the physical local address in a local network
.

It must be unique
locally but does not have to be unique universally

(
it is called


physical

because it is usually
implemented in hardware
).

ARP (
Address Resolution Protocol
)
is used to associate the logical or IP address

(
for
example

143.160.32.161)
w
ith the physical address

(o
n the network interface card

(NIC),
for
example

A4:6E:F4:59:83:AB). ARP
therefore
map
s

the

logi
cal

a
d
dres
s

with the

physical

a
d
dres
s
.

RARP (
Reverse Address Resolution Protocol
)
map
s

the

physical

ad
d
res
s

with the

logi
cal

ad
d
res
s
.
It is used to find the Internet address when the physical address is known, for
example when a computer is connected to a network for the first time
.

B
oth

ARP
and

RARP
are

netw
ork
-
layer

proto
c
ol
s
.

Study unit

4


15

Study the prescribed study material and Internet source
s and answer the questions
:


Answer the following questions in writing

and practicals
:

1.

Discuss 4 different scenarios where ARP can be used
.

2.

Explain the role of

ARP
and

RARP
to find the physical or logical address if the other
address is known
.

3.

Pr
a
ctical
:
Visit any (of the NWU’s) computer laboratory(ies) and read the IP addresses

from any computers that occur in a row
.
Are you able to make any deductions about
these IP addresses
?

Evalu
ate your answers by comparing them to the content of the study
material or with the
additional reading that you undertook during a literature search
.

4.3

DNS

PROTO
C
OL

Study the following prescribed study material:

Reader
: DNS proto
c
ol

Addi
tional Internet sources

Addi
tional source
: Forouzan, B.E. 2007.
TCPIP Protocol Suit
e
. 3rd Edition (o
r

later). Boston:
McGraw
-
Hill.

Although

TCP/IP

proto
c
ol
s

use the IP address to uniquely identify connection of a host and
the Internet, people prefer to use names instead of numerical addresses
.
Therefore it is
necessary for another proto
col to map the name with an address or to map the address with
the name
. DNS proto
c
ol (
Domain Name System
)
is used for this purpose
. DNS
divides the
large geographic sections into smaller parts and maps the nearest contact in a particular
section
.

In DNS

the names must be unique because the addresses are also unique
.
For this purpose
name space

is used
.
Name space

maps each address with a unique name in two ways
:
flat

o
r

hierarchical
.
A few examples of generic domain names are
:
edu

(
education)
,
ac

(
acad
emy
),
org

(
non
-
profit organisations
),
com

(
commercial organisations
),
and
gov
(
government institutions
).
Various country domains are a two
-
character abbreviation for a
specific country, eg
:
za

(
South Africa
),
fr

(
France
),
and
us
(
United States
). (
The inve
rse
domain maps the address with the name.
)


Answer the following questions in writing
:

1.

Use different sources and the Internet and discuss in which way DNS brings about the
mapping and inverse mapping between the name and address
.

Refer amongst other
t
hings to

name
-
address resolution
.

2.

Look for information regarding

DDNS (
Dynamic Domain Name System
)
and argue
whether it is an improvement on DNS or not
.

Evalu
ate your answers by comparing them to the content of the study material or with the
additional

reading that you undertook during a literature search
.

Study unit

4


16

4.4

SMTP, POP, MIME
AND

IMAP

PROTO
C
OL
S

S
tudy the following prescribed study material:

Reader
: Proto
cols for electronic mail
.

Addi
tional Internet sources

Addi
tional source
: Forouzan, B.E. 2007.
TCPIP Prot
ocol Suite
. 3
rd

Edition (o
r

later). Boston:
McGraw
-
Hill.

The

Internet
provides electronic mail

(e
mail
) fa
cilities
.
For this purpose specific protocols are
required, for example




MIME

(
Multipurpose Internet Mail Extensions
)
that is an additional protocol t
hat
provides for
‘n
ot
-
ASCII data’
conversion and sending it by email
.



SMTP

(
Simple Mail Transfer Protocol
) for transmission of email between the MTA
client and the
server (
push protocol
)
.



POP

(
Post Office Protocol
)
to get email messages from the server (
pull protocol)
.



IMAP

(
Internet Mail Access Protocol
)
the same as
POP
but has more functions and is
more complex
.


Answer the following questions in writing
:

1.

Discuss 4 different scenarios whereby email can be sent via the Internet
.

2.

Discuss and explai
n in what way
SMTP
and

POP

proto
cols complement each other
.

3.

Evalu
ate the

POP3

proto
c
ol
and discuss how the problems can be intercepted
.

4.

Explain the role and functionality of

IMAP

proto
c
ol.

4.5

NETW
ORK SECURITY

For this topic you must use the Internet a
nd various sources of your choice
:

The following protocols are studied
: SSH, SSL
and

IPSec.

Answer the following question
:

Do research on the following protocols and give a critically
-
evaluating discussion regarding
the applicability and value of each
: SSH

(
Secure Shell
), SSL (
Secure Sockets Layer
),
and

IPSec (
IP Security Protocol
)
and discuss the aim, function and operation of each of the
protocols
.




Study unit

5


17


5

ALGORIT
H
M

ANALYSIS AND
DATA STRUCTURES






You require approximately
2
0 hours for the successful comp
letion of this Study Unit.


After completion of this Study Unit you should be able to



compare and interpret run times of programs in respect of linear, quadratic and cubic
functions
;



apply the

Big
-
Oh

notation

to represent migration tempo and execution time

of
programs; and



apply data structures, namely arrays, stacks and queues in a programming language
.

Study Unit content

5.1

Algorithm analysis

................................
................................
.............................

17

5.2

Data structures

................................
................................
................................
..

18


The aim of this Study Unit

is to analyse algorithms and programs in order to optimalise the
execution thereof
.
A
lgorithm analysis determines the influence of time and memory use on a
program that can be run
.
This may help to optimalise a program in terms of the
abovementioned aspe
cts
.

Subsequently this Study Unit also discusses data structures and
focuses on arrays, stacks and queues
.


5.1

ALGORITHM ANALYSIS

Download the following web page:

http://ww3.algorithmdesign.n
et/handouts/Analysis.pdf


To sort 10 000 names takes longer than sorting 10 names. If an algorithm is analysed,
program code can be
changed

to optim
alise

the run time. In practice it means that the more
loops occur in a program, the longer it takes to r
un. The analysis of an algorithm can be
represented mathematically with various functions. The focus in this section is on linear,
quadratic and cubic functions. The
Big
-
Oh
notation is used for this to represent run time
.

Do an Internet search on linea
r, quadratic and cubic functions, as well as the

Big
-
Oh
notation
.

Study unit

5


18


Answer the following question
:

a)
Refer to the

Big
-
Oh

notation and discuss the linear, quadratic and cubic functions to show
the effectiveness of algorithms and programs
. b)
Thereafter
evaluate selection sort and give
your opinion on the effectiveness thereof
.

5.2

DATA

STRU
CTURES

A data structure is a representation of
ordered data

of the
same type

in an effective way so
that permitted operations can be executed on it
.
Examples of data struc
tures are arrays,
stacks and queues
. Items (data) in
a data structure are inserted or removed in a set way or
ordering
.
For example,

FIFO
(
First In First Out
)
means that the item that is inserted in the
data structure last, is the first to be removed
.
A

programming application of

FIFO

is found in
the router of a network, as well as in email

(
the first email that is sent to the server will be the
first to be removed from the
queue).
Each data structure has specific methods to insert and
remove data
.
Sta
cks, for example use the
pop

method to remove data
.



Do an Internet search on arrays, stacks and queues and answer the following
questions
:

1.

Discuss the characteristics of an array
,
stack and queue in table format
.
Also refer to
the

1) met
h
ods
and

2)

t
ype

of ordering used with stacks and queues
.

2.

Queues are used to send data to and from a router

(
input queues

and
output queues
).


a)
Look for information on the Internet on the use of queues in routers
.
Then look for
information on the

Batcher
-
banya
n switch

that is used in routers
.

3.

Other examples of data structures are a Hash table and a tree
.
Explain what each one
is and what it is used for in programming
.

4.

Programming
:
Write a program to illustrate the insertion and removal of data in a
sta
ck

(
hint
: ma
ke use of

arrays

and not linked lists
!).


Bring
your programs and theoretical work to the contact session for discussion
.
Any
problems will be discussed during the contact session
.






Study unit 6


19


6

PROJE
CT MANAGEMENT






You require approximately
3
0 h
ours for the successful completion of this Study Unit.


After completion of this Study Unit you should be able to



define the project management framework and illustrate it by means of a diagram
;



discuss various phases of the life cycle for project developm
ent
;



explain the principles of project management; and



practically apply
proje
ct management and project management skills
.

Study Unit Content

6.1

Project management framework and principles

................................
.................

19

6.2

Project management applicati
ons

................................
................................
......

20

6.1

PROJE
CT MANAGEMENT FRAMEW
ORK AND
PRINCIPLES

S
tudy the following prescribed study material:

Reader
: Proje
ct management

Addi
tional Internet sources

Addi
tional source
: Schwalbe, K. 2010.
Managing Information Technology

Pro
jects. 6
th

Ed.
Course Technology. Cengage Learning.

A project refers to the development of a unique product, service or result to meet the needs
of a company, institution or individual
.
It is also important for you to apply project
management effectively

in order to be able to guide learners regarding the development of a
computer project
.
Study the Reader regarding project management and answer the given
questions
.

Study u
nit

6


20


Answer the following questions in writing (and practically where applicable)
:

1.

Use the

project management framework and discuss different components

(
knowledge
areas and facilitating functions
)
of project management
.

2.

Discuss the project phases and the project life cycle briefly
.

3.

Motiv
ate the importance of project integration manageme
nt and refer to the 6 main
processes that are involved according to

PMBOK
®.

4.

Use various sources and discuss the following three aspects of project management
:

1)
project scope management
, 2)
project time management
,
and
3)
project cost
management
.

6.2

PR
OJE
CT MANAGEMENT APPLIC
ATIONS

Pra
ctical
:
You are in charge of a team to develop a new web page for the school
. Do

the
following practically and submit it during the contact session
:


Use the Reader, as well as Internet sources and compile the following for

the given scenario
:

1)

SWOT

analysis

as
part of your strategic planning
;

2)

Met
h
odolog
y
:
W
hich methodology will you use to develop the web page
? Motiv
ate why
you will use this methodology particularly
.

3)

Project Charter

(
part of

Project
Integration

Management
);

4)

W
BS

(
Work Breakdown Structure
) in MS Project 2007 (
part of

Project
Scope

Management
);

5)

Critical Path Method

(
part of

Project
Time

Management
);

6)

Excel
s
preadsheet

with cost expenditure

(
part of

Project
Cost
Management
).



Assignment

2
m
ust be completed and sub
mitted now
.
Also take note of the requirements in
the section on module information
.








Appendix


21

APPENDIX

A

Extreme Programming

(Prof HM Huisman)

Introduction

Extreme Programming (XP) is a new object
-
oriented software design process suited for small
to mediu
m
-
sized teams. Like any other traditional software development process, XP is goal
-
driven with a focus on communication, collaboration and a simplistic approach to the
development process (Munro, 2003; Lippert and Roock, 2001; Müller and Tichy, 2001). This

simplistic approach is what makes XP different from other development methodologies and
has also contributed to it receiving more attention in the past few years.

Traditional methodologies have always required detailed documentation of all the steps
follo
wed in the process of designing the software. Emphasis is placed on the separate stages
of planning, designing, testing and implementing the system. Extreme Programming
effectively throws all this out the window. The only documentation in XP is a set of in
dex
cards on which users and team members write “stories” describing the planned features of
the system. Other than that, the code is the only documentation. The reason behind this is
that detailed documentation often slows down developers, and more often
than not it is
neglected in any case in the traditional design methodologies.

XP breaks development into bite
-
size chunks and relies on daily face
-
to
-
face communication
and lots of testing; the assumption that specifications will change is also built into
the
process. Projects are built in increments with just enough code written to implement the
required functions, and everything is constantly evaluated to accomplish the desired result.

Another contrast with tradition is that XP does not have separate phas
es for design, testing
and implementation. Instead, these three phases are done together, incrementally and
iteratively. Also, XP is unsophisticated because no attention is paid to the extensibility of the
software. This means that, only the features that
are required are planned for and
implemented. (Müller, Tichy; 2001)

The XP Lifecycle

The Lifecycle of an Extreme Programming Project typically looks like
Figure 1
below.


Figure
1
: XP Lifecycle (Cohn and Paul, 2001)

Appendix


22

The figure abo
ve encompasses the twelve core principles of XP which will be explained
shortly. Refer to the figure to gain a better understanding of the Lifecycle and how the twelve
core practices integrate into it.

The 12 Core Practices of Extreme Programming

Extreme
Programming was created by Kent Beck in 1996 to fulfil a need for a faster, simpler
and cheaper way to design software. In industry, organisations want to see results and see
them fast; XP does just that and is based on twelve core practices

(Lippert and R
oock, 2001; Munro, 2003):



Pair Programming

Two developers program together at one workstation. This increases the number of people
that are familiar with the source code (Munro; Nuckols and Canna, 2003). The code has
fewer bugs and it is easier to understa
nd since there are two people reading the code at all
times. Programmers switch seats periodically and regularly discuss each other’s code. This
may seem like an ineffective way to program, but anecdotal evidence on the XP mailing list
(
extremeprogramming@yahoogroups.com
) demonstrates success (English, 2002).



Continuous Integration

Small changes are frequently integrated into the common source base on a daily basis. Code
is integrated and tested after

every few hours or a day at the most. Integration of changes,
one set at a time, simplifies the integration process and makes it obvious that who is
responsible for fixing the code, when integration tests fail (English, 2002).



Collective Ownership

The cod
e and all development documents are owned by the whole team. Any member is free
to modify any part of the document at any time (English, 2002). This approach is very
different to the traditional one where a single developer owns a set of code. XP supporter
s
argue that the more people that work on a piece, the fewer bugs that will occur (English,
2002).

Waltman says that collective ownership plays a key part in meeting user’s demands for
system changes. “Last
-
minute changes can be a team effort, not an indiv
idual workload
crisis”, he says.



Small Releases

The system is planned with short release cycles containing the most valuable business
requirements. Typically, one cycle is less than three months and this allows the user to see
and touch the working product

on a regular basis (English, 2002).



Testing

Two types of tests are carried out continuously. Firstly, unit tests ensure that classes do what
developers expect them to do. These tests are typically written by the developer (Munro;
English, 2002).

Secondl
y, acceptance tests, written before the code that they will test, ensure that the
system does what the user expects it to do. These tests are derived from the customer
“stories” or scenarios (Munro; English, 2002; Nuckols and Canna, 2003).

All code has an
associated test and new tests are added to old ones in a testing framework,
creating a comprehensive test suite (Munro).

Appendix


23



Refactoring

If a design is no longer appropriate, it is changed. This involves the restructuring of the
software without changing its b
ehaviour (Munro; English, 2002). This step, like many in XP,
also requires user participation since it will be the user that will point out that a design no
longer meets his/her needs. The combination of the test suite with refactoring, lets
programmers av
oid the classic “fix one thing, break another” bugs (Munro).



Metaphor

The system is based on a small set of powerful metaphors which guide the developers
through the development process and explain the systems behaviour. These metaphors take
the form of cu
stomer stories. The stories are high
-
level requirements of a system written in
simple prose instead of the more traditional, and technical, Unified Modelling Language
diagrams and models (Nuckols and Canna, 2003). Metaphors express the evolving project
vis
ion that defines the system’s scope and purpose (English, 2002).



Planning Game

This stage in the development process encompasses requirements definition and project
planning with releases being planned in the planning game (English, 2002). A release is
bro
ken into a number of 1
-
3 week iterations. The user basically lists the requirements of the
system in this phase.

“Stories” describing these requirements are written by the user on index cards. The stories
need not be in any particular order and are produce
d in a random manner. The programmers
remove ambiguity by ensuring that they are estimable and testable.

The programmers also provide estimates on the stories so the user knows the cost of a
particular story (Newkirk and Martin, 2000). Without a complex,
wordy specification
document, this low
-
tech technique leads to face
-
to
-
face communication between the user
and the programming team. Keeping the written word to a minimum maintains discussion at
a maximum (Munro, 2003)

The user then chooses which story wil
l be implemented completely in the iteration and
agrees not to make any changes or additions to it until the iteration completes. The user also
needs to specify the completion criteria in the form of acceptance tests.

The programmers then break down the st
ories into tasks and determine the order in which
they are to be implemented. Tasks are no longer than two days and the programmers sign
up for the individual tasks and estimate the number of hours it will take to complete them
based on personal experience
. The tasks are summed and compared to the duration of the
iteration. If there is too much to do the customer decides what to defer. If there is too little,
the customer provides additional stories (Newkirk and Martin, 2000).

Thus the planning game is play
ed again after an iteration and until the system is fully
implemented.



Coding Conventions

A uniform style of the source code is used and this simplifies collective ownership. Thus all
classes and methods are named in a standard way which is easily underst
ood by the entire
team, and a standard architecture is used to facilitate reuse of code (Munro). The
programmers follow these rules so that all code looks as if it were written by a single person
(English, 2002).



Simple Design

Simple designs are used becau
se they are easy to create, maintain, understand and they
discourage complexity. Design focuses on delivering a system that meets the user’s
Appendix


24

immediate needs. No considerations are made for future functionality. The traditional method
of building “hooks” fo
r future functionality often leads to large systems with substantial
elements that are initially unused and often discarded (English). In XP, if the design falls
short of the required purpose, it is refactored.



On
-
site Customer

Since communication with th
e user is focused on in XP, contact with him/her is crucial. XP
votes for a full
-
time customer on the development team. This ensures that the developers are
always concentrating on the requirements and if they lose focus of these requirements, the
customer

is at hand to put them back on track (English, 2002).



40 Hour Week

Developing software the XP way is very demanding and developers need the weekends to
rest, but as Beck says, “It’s OK to work overtime when it is required, but don’t do it two weeks
in a r
ow” (English, 2002). This assists in preventing burn
-
out in programmers and sloppy
work that breaks down morale (Munro). Productivity is boosted when the developers are
well
-
rested and motivated. In the long run this is favourable to the overall developmen
t of the
system.


Appendix


25

APPENDIX

B

ASSIGNMENTS


Ma
ke wide use of the Internet, as well as academic articles in order to explain your answers
:

Assignment

1 (Do
Questions

1.1
and

1.3
O
R

Questions

1.2
and

1.3)

1.1

Compile a critically
-
evaluating report on the contro
l and checking of operating systems
in terms of memory management, process management, device management and
network management
.


O
R

1.2

Compile a report in which you give a systematic, well
-
argued explanation of various
aspects of compiling processes
.
In e
ach case you must formulate your own view
regarding memory management in computer programs
.
Also refer to different types of
binding of variables
.

1.3

Compile a critically
-
evaluating report on

the

XP

met
h
odolog
y

and

DSDM
approach and

compare

XP
and

DSDM in te
rm
s of the following
:


a)
Philosophical approach
;


b)
System development method
;


c) Pro
cess model
;


d)
Tools and techniques
;


e)
Principles and fundamentals
;


f)
Usefulness of the methodology or approach in South Africa
;


g)
Use within the object
-
oriente
d approach
.


Lengt
h
: N
o longer than

20
typed

A4
-
pages
. S
ee technical requirements for the Assignment
on the next page
.

Total: 50
marks

(
value

30)


Assignment

2

(Do
Questions

2
.1
and

2
.3
O
R

Questions

2
.2
and

2
.3)

2.1

Compile a report
in which you give a s
ystematic, well
-
argued explanation of various
aspects of the

TCP/IP

proto
c
ol suite in term
s of the following protocols
: IP, TCP, ARP
and

RARP, DNS, e
mail protocols
, SSL, SSH
and

IPSec
and explain the necessity of
each of these protocols and the way in whic
h the protocols bring about and support the
necessary functionality of the Internet
.



O
R

2.2

In a report critically evaluate the use of data structures in computer programs
.
Give a
systematic explanation and refer to arrays, stacks and queues
.
Elucidate the
report
with a suitable computer program
.
Discuss various examples and applications of data
structures in practice

(
eg

in routers
).
Subsequently evaluate the application of the

Big
-
Oh

notation in computer programs for optimisation
.

2.3

Discuss project ma
nagement in a well
-
argued report and refer to the

1)proje
ct
management framework and

2) proje
ct management principles, as well as the
importance of


a)
project scope management


b)
project time management


c)
project cost management





d)
Illustrate you
r answers

(a
-
c)
with practical examples
.

Appendix


26

Lengt
h
:

N
o longer than

20
typed

A4
-
pages
.


Total: 50
marks

(
value

30)

Guidelines for assignments

1.

Both assignments must be submitted for evaluation
.

2.

Each assignment must have a comprehensive reference list
. M
a
ke wide use of
information from various sources, as well as the
Internet.

3.

Assignments must be typed
.

4.

Use the following formatting
: 11 in Arial, 1½
-
spacing
,
page numbers included
.

5.

Pro
ofread the assignment after it has been typed
.



Evalu
ation of
the assignments will be according to the following marking scheme
:

Subject

Ma
x
imum

Mark

1.

Presentation


Tit
le
,
title page
,
table of contents



Te
chnical care


10


2.

L
a
nguage



Clarity and accuracy



Synta
x and formulation


10


3.

Content and practical

work


S
ystematic logical style



畳u猠refer敮捥c


䱩湥 of arg畭敮tati潮I a湡ly獩猬 摩獣畳獩潮I
數灬慮慴楯n



mra
捴i捡c w潲o


桥r攠慰灬i捡cle

灲潢p敭ef畬ly
慤摲敳獥搠慮d 獯sv敤

C潭灵oer
灲pgrams
L慬g潲ot
h
msL灲pgr慭

獥gm敮t
s
K







Conclusion and bibl
iography

10


Final
mark

100


Appendix


27

APPENDIX

C

COLLOQUIUM



Prepare yourself for participation in a

colloquium
in which you must communicate the
following by means of a PowerPoint presentation
. Sele
ct any ONE of the discussed topics in
Assignment 1

or
Assign
ment 2

and compile a set of slides to use when you deliver a
presentation
.
Use approximately 10 to 15 PowerPoint slides
.

Pay attention to the language,
style, visual components, as well as the format and meaningful organisation of information
.

Give a c
lear description of the topic, outcomes, literature overview and sources, as well as
an example of application in programming
.

Evalu
ation of assignments will be according to the following rubric
:


Level

1

Level

2

Level

3

Level

4



1

2

3

4

Student
’s
mark

In
troductory slide


(
purpose of
presentation and
problem statement
).

PowerPoint
compiled but no
introductory slide
.

In
troductory slide
briefly contains the
purpose
.

Contains the
purpose of the
slides in detail
.

Contains purpose
and problem
statement fully
.


Content of
presentation and
programming
example(s)
.

Content
incomplete,
program
incomplete or not
submitted
.

Content and
program submitted,
but can be more
comprehensive
.

Content and
program
complete
.

Content and
program complete
and addresses
specific
problems
.

(x3)


Summarising slide
with conclusion and
motivation
.

One summarising
slide
.

Slide to summarise
the content but no
motivation regarding
why the specific
topic was chosen
.

Slide to
summarise the
content and
motivation
regarding why the
specific

topic was
chosen, but
inadequate
.

Slide to summarise
the content and
sufficient motivation
regarding why the
specific topic was
chosen
.


TOTAL

/20

Estimated preparation time
: 20
hours

The date on which the

colloquium
will take place will be made known d
uring the contact
session.