0% found this document useful (0 votes)
110 views47 pages

SEF216D - Software Engineering Fundamentals Study Guide 2024 Sem 2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
110 views47 pages

SEF216D - Software Engineering Fundamentals Study Guide 2024 Sem 2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 47

Faculty of

Information and Communication Technology

Department of Computer Science

STUDY GUIDE
NQF NQF MODULE NAME MODULE YEAR SEMESTER
LEVEL CREDITS CODE
Software Engineering
5 15 SEF216D 2021 2
Fundamentals
QUALIFICATIONS SAQA ID:

Diploma in Computer Science

Compiled by Dr RT Hans
Revised by F.M. Tshitake on Aug 2024
©COPYRIGHT: Tshwane University of Technology
Private Bag X680
PRETORIA
0001

All rights reserved. Apart from any reasonable quotations for the purposes of research criticism or review as
permitted under the Copyright Act, no part of this book may be reproduced or transmitted in any form or by
any means, electronic or mechanical, including photocopy and recording, without permission in writing from
the publisher.

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 2


Contents
SECTION A – INTRODUCTION..............................................................................................................................4
1. Welcome.........................................................................................................................................................4
2. Introduction....................................................................................................................................................4
3. Name of the module.......................................................................................................................................5
4. Module Credits/Weight..................................................................................................................................5
5. Custodian department of this module............................................................................................................5
6. Purpose of the module...................................................................................................................................5
7. Code of conduct..............................................................................................................................................5
SECTION B – ORGANISATIONAL COMPONENT....................................................................................................7
8. Contact information of custodian department of this module.......................................................................7
9. Contact information of lecturers....................................................................................................................7
9.1. Module coordinator/s.............................................................................................................................7
9.2. Site coordinators.....................................................................................................................................8
9.3. Facilitators..............................................................................................................................................8
10. Library Contact Details................................................................................................................................8
11. Student Support Contact Details.................................................................................................................8
12. Time table...................................................................................................................................................9
13. Consultation................................................................................................................................................9
14. Schedule.....................................................................................................................................................9
SECTION C – PRESCRIBED AND RECOMMENDED RESOURCES............................................................................12
15. Prescribed Textbook.................................................................................................................................12
16. Additional Module Resource Information.................................................................................................12
17. Recommended Additional Resources.......................................................................................................12
18. Recommended Additional Resources.......................................................................................................12
19. Supplied Resources...................................................................................................................................13
20. E-Learning platform..................................................................................................................................13
SECTION D – MODULE DESCRIPTION.................................................................................................................13
21. Alignment of this module with the relevant exit level outcomes / NQF 7................................................13
22. Module Outline.........................................................................................................................................15
23. Unit Descriptors........................................................................................................................................15
SECTION E – Outline of learning units...............................................................................................................22

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 3


24. Learning unit 1: Introduction to Software Engineering - Understanding and appreciating software
engineering and its importance............................................................................................................................22
25. Learning unit 2: Software Development Life Cycle (SDLC) Models...........................................................27
26. Learning unit 3: Software Project Management.......................................................................................30
27. Learning unit 4: Software Modeling..........................................................................................................31
28. Learning unit 5: Software Requirements Gathering..................................................................................32
29. Learning unit 6: Software Requirements Analysis.....................................................................................33
30. Learning unit 7: Software Design..............................................................................................................35
31. Learning unit 8: Software Implementation...............................................................................................36
32. Learning unit 9: Software Testing.............................................................................................................37
SECTION F – ASSESSMENT.................................................................................................................................38
1 Assessment Schedule....................................................................................................................................38
2 Promotional requirements...........................................................................................................................38
3 Assignments..................................................................................................................................................38
4 Assessment Administration..........................................................................................................................39
5 Mode of delivery...........................................................................................................................................39
6 Quality assurance.........................................................................................................................................40
7 Industry related learning..............................................................................................................................40
8 Plagiarism.....................................................................................................................................................40
9 Glossary........................................................................................................................................................41
ADDITIONAL DOCUMENTATION.......................................................................................................................42
Appendix A...........................................................................................................................................................42

SECTION A – INTRODUCTION

1. Welcome

Welcome to Software Engineering Fundamentals module. The purpose of the module is to prepare individuals to
apply programming and software engineering principles to provide solutions to a range of problems emanating in
the ICT industry. The main focus of this module is to teach students principles of software engineering with regard
to systems analysis, design of software solutions within the context of industry –based problems. Upon
completion of this module a student will be able to develop fault-free software which satisfies user requirements,
delivered on time and within budget.

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 4


2. Introduction

The very first thing that you need to acquaint yourselves with is the term Software Engineering (SE). Software
Engineering is “the application of a systematic, disciplined, quantifiable approach to the development, operation,
and maintenance of software” [1]. Software engineering is a discipline aimed at ensuring that the resultant
software products are designed and developed fault-free, within budget, on schedule and meet stated user
requirements. The numerous reports on failed software or failed software projects suggest that there is
something that we have not mastered in software engineering, which has fifteen (15) knowledge areas (See
reference [1] for details on this).

This module prepares students for the problem-solving nature of programming and other modules in Computer
Science. The main focus of this module is to introduce students to the fundamentals of software engineering,
including the software process – the way software is produced. The module starts by covering important
software engineering concepts as well as the importance of software engineering in the software development
process. Software process will be covered and this includes covering software process models and their
application in designing software solutions. The module further covers software requirements engineering,
System analysis and design using the object oriented approach, Software architecture and architectural design as
well as software testing. The presentation of these topics in this module is independent of programming
languages.

The theoretical knowledge obtained from this module is expected to develop students to solve real world
computer related challenges by applying logic from a mathematical perspective relating to computer applications.
The module will require students to work individually thereby contributing towards independent working
attribute that is sometimes required in the field of work.

3. Name of the module

Software Engineering Fundamentals.

4. Module Credits/Weight

Fifteen (15).
5. Custodian department of this module

The custodian department of this module is the department of Computer Science.

6. Purpose of the module

The purpose of the module is to introduce undergraduate students to the basic principles of computational
mathematics. The module will prepare students for programming and other modules in the field of Computing.

7. Code of conduct

 Students may not be late for class. (Do not enter the class if you are late)
 Students should attend all classes. (The 85% class attendance rule applies)
 Cell phones should be switched off during class times.

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 5


 No eating or drinking in the classes.
 Students should strictly follow the schedule, unless otherwise stated. (page 4 of this study guide)
 Students should also look on the notice board outside the lecturer’s office for updates on marks and
communication.
 Each student should have a text book.
 Students should prepare for each class by researching the module.
 Students can see lecturer during consultation times, otherwise make an appointment with the lecturer for
another time.
 Students should submit their sick note or death certificate within the specified time period.
 Since 2011 a student is not allowed to register more than three times for a module.
 All issues pertaining to the module must be reported to your lecturer. If the issue cannot be resolved
adequately it must be escalated to the module coordinator. If the issue is still not resolved, it must be
escalated to the section head. If the issue is still not resolved, it can be escalated to the HOD of the
module’s custodian department (see Section A). Students may only report issues to the Dean of the
faculty if the issue cannot be resolved by the HOD. Under no circumstances will issues be addressed if the
proper reporting chain was not followed (see the figure below)

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 6


SECTION B – ORGANISATIONAL COMPONENT

8. Contact information of custodian department of this module

The custodian department of this module is the department of Computer Science.


Name & Surname Campus Office Location Contact number and Role in Programme
E-mail
Dr Lebogang Soshanguve South 20 - G04 012 382-9540 Departmental
Seoketsa [email protected] administrator
Me Molly Moche Soshanguve South 20 - 103 012 382-9938 Departmental
[email protected] administrator
Me Angelina E-Malahleni 14-G37 013 653-3165 Administrator
Shonaphi Bhembe [email protected]
Me Maesela Lebelo Polokwane 1-G247 015 287-0757 Administrator
[email protected]

9. Contact information of lecturers

This module has one primary module coordinator that is responsible for coordinating the activities of the module.
If this module is offered at one of the other learning sites and the primary module coordinator does not reside on
the leaning site, the activities of this module is managed by the primary module coordinator via a site
coordinator. There is one facilitator assigned to facilitate the teaching of each group.

9.1. Module coordinator/s

Module Coordinator and facilitator: Mr CK Lepota


Office Location 12-119
Office Telephone Number 012 382 9014
Email address [email protected]

9.2. Site coordinators

eMalahleni Site Coordinator and facilitator: Mr S Marebane


Office Location - Emalahleni
Office Telephone Number 012 382 3136
Email address [email protected]

Polokwane Site Coordinator and facilitator: Mr M Tshitake


Office Location Polokwane Campus
Office Telephone Number 012 382 0904
Email address [email protected]

Soshanguve Site Coordinator and facilitator: Mr MC Phiri


Office Location 20-107
Office Telephone Number
Email address [email protected]

Soshanguve Site Coordinator and facilitator: Mr SK Mogapi


Office Location
Office Telephone Number
Email address [email protected]

10. Library Contact Details

Soshanguve Faculty Librarian Ms Rachel Raisibe Ntsoane


Office Location Ground floor in library
Office Telephone Number 012 799 9509
Email address [email protected]

11. Student Support Contact Details

Student Support Services Dr Shafeeka Dockrat


Office Location Pretoria: Building 5, Room 5-705
Office Telephone Number +27 12 382 4260
Email address [email protected]

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 8


12. Time table

The timetable for class attendance is obtainable from the learner management system (LMS).

13. Consultation

Consultation time slots will be displayed on each lecturer’s office door. In the case where the time slots are not
displayed students must please contact the lecturer one day in advance via email and arrange a consultation
session. Please remember to mention your name & surname, student number, module code and topic to be
discussed during the consultation session.

14. Module overview

The following table shows what topics are covered in this module.

Learning unit
Unit 1: Introduction to Software Engineering

Unit 2: Software Development Life Cycle Models

Unit 3: Software Project Management

Unit 4: Software Modeling

Unit 5: Software Requirements Gathering

Unit 6: Software Requirements Analysis

Unit 7: Software Design

Unit 8: Implementation

Unit 9: Software Testing

15. Schedule

The schedule indicates all-important dates for activities such as, class activities, assignment due dates, class tests,
excursions, practicals, project due dates, computer-based tests submission dates etc. Please ensure that you
follow the schedule and check for changes or latest updates.

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 9


The schedule for this module is uploaded on Brightspace.

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 10


SECTION C – PRESCRIBED AND RECOMMENDED RESOURCES

16. Prescribed Textbook

We are in the process of having Cengage to “compile” an electronic textbook, more details will be provided ASAP.

RECOMMENDED BOOKS: Note that we currently do not use a particular textbook for this module.
Different books are used and supporting notes and other resources will be provided to support every
learning unit.

17. Additional Module Resource Information

 Student could be given handouts from other relevant books.


 Online resources

18. Recommended Additional Resources

19. Recommended Additional Resources

See recommended learning material for each learning unit in Section E


20. Supplied Resources

None.

21. E-Learning platform

This module will make use of Mytutor and Electronic Campus (EC) for as its formal e-learning platform. Last
minute, important notifications, like changes in lecture venue, time, deadlines for assignments, etc. will be placed
on these platforms. Electronic resources will also be distributed via these platforms.

SECTION D – MODULE DESCRIPTION

22. Alignment of this module with the relevant exit level outcomes / NQF 7

The students should be able to do the following after the completion of the module:

 Scope of knowledge, in respect of which a learner is able to demonstrate: detailed knowledge of the main
areas of one or more fields, disciplines or practices, including an understanding of and an ability to apply
the key terms, concepts, facts, principles, rules and theories of that field, discipline or practice to unfamiliar
but relevant contexts; and knowledge of an area or areas of specialisation and how that knowledge relates to
other fields, disciplines or practices
 Knowledge literacy, in respect of which a learner is able to demonstrate a understanding of different forms
of knowledge, schools of thought and forms of explanation within an area of study, operation or practice,
and an awareness of knowledge production processes
 Method and procedure, in respect of which a learner is able to demonstrate an ability to evaluate, select and
apply appropriate methods, procedures or techniques in processes of investigation or application within a
defined context
 Problem solving, in respect of which a learner is able to demonstrate an ability to identify, analyse and solve
problems in unfamiliar contexts, gathering evidence and applying solutions based on evidence and
procedures appropriate to the field, discipline or practice
 Ethics and professional practice, in respect of which a learner is able to demonstrate an understanding of the
ethical implications of decisions and actions, within an organisational or professional context, based on an
awareness of the complexity of ethical dilemmas f. Accessing, processing and managing information, in
respect of which a learner is able to demonstrate an ability to evaluate different sources of information, to
select information appropriate to the task, and to apply well-developed processes of analysis, synthesis and
evaluation to that information
 Producing and communicating information, in respect of which a learner is able to demonstrate an ability to
present and communicate complex information reliably and coherently using appropriate academic and
professional or occupational conventions, formats and technologies for a given context
 Context and systems, in respect of which a learner is able to demonstrate an ability to make decisions and
act appropriately in familiar and new contexts, demonstrating an understanding of the relationships between
systems, and of how actions, ideas or developments in one system impact on other systems
Management of learning, in respect of which a learner is able to demonstrate an ability to evaluate
performance against given criteria, and accurately identify and address his or her task-specific learning needs
in a given context, and to provide support to the learning needs of others where appropriate
 Accountability, in respect of which a learner is able to demonstrate an ability to work effectively in a team or
group, and to take responsibility for his or her decisions and actions and the decisions and actions of others
within well-defined contexts, including the responsibility for the use of resources where appropriate.

© Tshwane University of Technology | Department of Computer Science | Computational Mathematics 13


23. Module Outline

See the Module’s Unit Descriptors on the next page.

24. Unit Descriptors

Learning Unit 1: Introduction to Software Engineering

Learning Outcomes:

1. Demonstrate knowledge on the history of Software Engineering by providing key milestones for each decade of the SE timeline.
2. Define the concept of software engineering.
3. Explain the importance of software engineering as a discipline/profession.
4. Explain the key challenges facing software engineering.
5. Describe the professional and ethical responsibilities/obligations of a software engineer in line with a software engineering code of ethics and professional
conduct.
6. Analyse practical cases to determine ethical and professional issues according to software engineering code of professional conduct and ethics.

Assessment Criteria Teaching Strategy Assessment method


The outcome will be reached when: Formative:
 Applying critical thinking to complete problem-
1. Knowledge on the history of Software solving exercises  Homework, worksheets and quizzes in
Engineering by providing key milestones for  Informal small group discussions class.
each decade of the SE timeline.  Completing tasks in teams / groups  Skills demonstration by solving given
2. The concept of software engineering;  Modelling demonstrations problems.
3. The importance of software engineering as a  Solving real-life problems  Group discussions in class and through a
discipline/profession can be explained;  Think-alouds - demonstrating the thought process learning management system;
4. The key challenges facing software used in problem solving  Lecturer-facilitated tutorial classes where
engineering can be explained;  Visualisation – have students draw a scene of the students work through supplied activities at
5. The professional and ethical scenario in the problem. their own pace.
responsibilities/obligations of a software  Suitable activities will be developed in line
engineer in line with a software engineering with learning outcomes and assessment
code of ethics and professional conduct can criteria and will be included in the notes.
be described; Summative:
6. Practical cases to determine ethical and  Paper-based;
professional issues according to software  Computer-based assignments / Web
engineering code of professional conduct and tests.
ethics can be analysed;  Formats: Class tests, semester tests,
examination.

Computer Science Department


Learning Unit 2: Software Development Life Cycle (SDLC)

Learning Outcomes:

1. Explain the concept of SDLC.


2. Describe each SDLC model covered in this module.
3. Compare and contrast the SDLC models, which are covered in the module.
4. Identify and/or apply a suitable SDLC model to a given software development problem.
Assessment Criteria Teaching Strategy Assessment method

The outcome will be reached when: Formative:


 Applying critical thinking to complete problem-
1. The concept of is explained; solving exercises  Homework, worksheets and quizzes in class;
2. Each SDLC model covered in this module is  Informal small group discussions  Group discussions in class and through a
described correctly;  Completing tasks in teams learning management system;
3. SDLC models covered in the module are  Modelling demonstrations  Lecturer-facilitated tutorial classes where
compared and contrasted;  Solving real-life problems students work through supplied activities at
4. A suitable SDLC model to a given software  Think-alouds - demonstrating the thought process their own pace.
development problem is identified and/or used in problem solving  Suitable activities will be developed in line
applied.  Visualisation – have students draw a scene of the with learning outcomes and assessment
scenario in the problem criteria and will be included in the notes.

Summative:
 Paper-based;
 Computer-based assignments / Web
tests.
 Formats: Class tests, semester tests,
examination.

Learning Unit 3: Software Project Management

Learning Outcomes:
1. Explain project planning, scheduling, monitoring, and reporting
2. Explain the relationship among project cost, scope, and time
3. Create a work breakdown structure, identify task patterns, and identify and calculate a critical path
4. Explain techniques for estimating task completion times and costs
5. Describe various scheduling tools, including Gantt charts and PERT/CPM charts
6. Draw a PERT/CPM
Assessment Criteria Teaching Strategy Assessment method

15
Computer Science
The outcome will be reached when: Formative:
 Applying critical thinking to complete problem-
1. Project planning, scheduling, monitoring, and solving exercises  Homework, worksheets and quizzes in class;
reporting are explained.  Informal small group discussions  Group discussions in class and through a
2. The relationship among project cost, scope, and  Completing tasks in teams learning management system;
time are explained.  Modelling demonstrations  Lecturer-facilitated tutorial classes where
3. A work breakdown structure is created, task  Solving real-life problems students work through supplied activities at
patterns are identified, and a critical path is  Think-alouds - demonstrating the thought process their own pace.
identified and calculated. used in problem solving  Suitable activities will be developed in line
4. Techniques for estimating task completion times  Visualisation – have students draw a scene of the with learning outcomes and assessment
and costs are explained. scenario in the problem criteria and will be included in the.
5. Various scheduling tools, including Gantt charts Summative:
and PERT/CPM charts are described.  Paper-based;
6. A PERT/CPM is drawn.  Computer-based assignments / Web
tests.
 Formats: Class tests, semester tests,
examination.

Learning Unit 4: Software Modeling

Learning Outcomes:
1. Use a functional decomposition diagram (FDD) to model business functions and processes.
2. Describe UML, use case diagram, class diagram and sequence diagram.
3. Interpret the context appropriately in order to create UML diagrams, including use case diagrams, class diagrams and sequence diagrams.

Assessment Criteria Teaching Strategy Assessment method

The outcome will be reached when: Formative:


 Applying critical thinking to complete problem-
1. A functional decomposition diagram (FDD) is solving exercises  Homework, worksheets and quizzes in class;
used to model business functions and  Informal small group discussions  Group discussions in class and through a learning
processes.  Completing tasks in teams management system;
2. UML, use case diagram, class diagram and  Modelling demonstrations  Lecturer-facilitated tutorial classes where
sequence diagram are described.  Solving real-life problems students work through supplied activities at their
3. A context is interpreted in order to create  Think-alouds - demonstrating the thought process own pace.
UML diagrams, as well as use case diagrams, used in problem solving  Suitable activities will be developed in line with
class diagrams and sequence diagrams.  Visualisation – have students draw a scene of the learning outcomes and assessment criteria and

16
Computer Science
scenario in the problem will be included in the.
Summative:
 Paper-based;
 Computer-based assignments / Web tests.
 Formats: Class tests, semester tests,
examination.
Learning Unit 5: Software Requirements Gathering

Learning Outcomes:
1. Identify different types of software requirements.
2. Identify and specify characteristics of good or bad software requirements.
3. Outline requirements/data gathering techniques, such as interviews, surveys, or observation.
4. Name software requirements validation techniques.

Assessment Criteria Teaching Strategy Assessment method

The outcome will be reached when: Formative:


 Applying critical thinking to complete problem-
1. Different types of software requirements are solving exercises  Homework, worksheets and quizzes in class;
identified;  Informal small group discussions  Group discussions in class and through a learning
2. Characteristics of good or bad software  Completing tasks in teams management system;
requirements are identified and specified;  Modelling demonstrations  Lecturer-facilitated tutorial classes where
3. Requirements/data gathering techniques,  Solving real-life problems students work through supplied activities at their
such as interviews, surveys, or observation  Think-alouds - demonstrating the thought process own pace.
are outlined; used in problem solving  Suitable activities will be developed in line with
4. Software requirements validation techniques  Visualisation – have students draw a scene of the learning outcomes and assessment criteria and
are named. scenario in the problem will be included in the notes.
Summative:
 Paper-based as well as computer-based
(practical);
 Computer-based assignments / Web tests.
 Formats: Class tests, semester tests,
examination.

Learning Unit 6: Software Requirements Analysis

Learning Outcomes:

17
Computer Science
1. Describe the analysis activities.
2. Interpret fundamental software requirements and analysis terms, such as actors, constraints, and use cases;
3. Apply each of the main activities of software requirements analysis, such as gathering, specification, and verification;
4. Apply techniques for identifying and modelling use cases (use case diagrams, interaction diagrams, and activity diagrams) to assist stakeholders to better
understand system requirements.

Assessment Criteria Teaching Strategy Assessment method

The outcome will be reached when: Formative:


 Applying critical thinking to complete problem-
1. Fundamental software requirements and solving exercises  Homework, worksheets and quizzes in class;
analysis terms, such as actors, constraints,  Informal small group discussions  Group discussions in class and through a learning
and use cases are interpreted;  Completing tasks in teams management system;
2. The main activities of software requirements  Modelling demonstrations  Lecturer-facilitated tutorial classes where
analysis, such as gathering, specification, and  Solving real-life problems students work through supplied activities at their
verification are applied;  Think-alouds - demonstrating the thought process own pace.
3. Use case diagrams are applied to assist used in problem solving  Suitable activities will be developed in line with
stakeholders to better understand system  Visualisation – have students draw a scene of the learning outcomes and assessment criteria and
requirements. scenario in the problem will be included in the notes.
4. Analysis activities are described. Summative:
 Paper-based as well as computer-based
(practical);
 Computer-based assignments / Web tests.
 Formats: Class tests, semester tests,
examination.

Learning Unit 7: Software Design

Learning Outcomes:

1. Explain the software design principles used to create well-designed software that is easy to understand, test, modify, and develop;
2. Apply the main activities of software design, such as creating class diagrams and sequence diagrams;
3. Use design class diagrams to determine the way data is represented as well as the processes are executed in object-oriented methodologies.

Assessment Criteria Teaching Strategy Assessment method

18
Computer Science
The outcome will be reached when: Formative:
 Applying critical thinking to complete problem-
1. The software design principles used to create solving exercises  Homework, worksheets and quizzes in class;
well-designed software that is easy to  Informal small group discussions  Group discussions in class and through a learning
understand, test, modify, and develop are  Completing tasks in teams management system;
explained;  Modelling demonstrations  Lecturer-facilitated tutorial classes where
2. The main activities of software design, such  Solving real-life problems students work through supplied activities at their
as creating class diagrams and sequence  Think-alouds - demonstrating the thought process own pace.
diagrams are applied; used in problem solving  Suitable activities will be developed in line with
3. Design class diagrams are used to determine  Visualisation – have students draw a scene of the learning outcomes and assessment criteria and
the way data is represented as well as the scenario in the problem will be included in the notes.
way processes are executed in object- Summative:
oriented methodologies.  Paper-based as well as computer-based
(practical);
 Computer-based assignments / Web tests.
 Formats: Class tests, semester tests,
examination.

Learning Unit 8: Software Implementation

Learning Outcomes:
1. Describe implementation and deployment activities
2. Differentiate between types of programming languages, including system languages, domain-specific languages, and scripting languages;
3. Explain the benefit(s) of version control systems.

Assessment Criteria Teaching Strategy Assessment method

The outcome will be reached when: Formative:


 Applying critical thinking to complete problem-
1. Implementation and deployment activities are solving exercises  Homework, worksheets and quizzes in class;
described;  Informal small group discussions  Group discussions in class and through a learning
2. Types of programming languages, including  Completing tasks in teams management system;
system languages, domain-specific languages,  Modelling demonstrations  Lecturer-facilitated tutorial classes where
and scripting languages are differentiated;  Solving real-life problems students work through supplied activities at their
3. The benefit(s) of version control are explained.  Think-alouds - demonstrating the thought own pace.
process used in problem solving  Suitable activities will be developed in line with
 Visualisation – have students draw a scene of learning outcomes and assessment criteria and
the scenario in the problem
19
Computer Science
will be included in the notes.
Summative:
 Paper-based as well as computer-based
(practical);
 Computer-based assignments / Web tests.
 Formats: Class tests, semester tests,
examination.

Learning Unit 9: Software Testing

Learning Outcomes:

1. Describe basic software testing terms, such as test case, traceability matrix, and acceptance criteria;
2. Compare and contrast the use of various testing strategies, including black-box, white-box, top-down, and bottom-up;
3. Identify different types of tests, including functional, non-functional performance, and user tests;
4. Design a test plan that includes unit, integration, and system levels of test coverage.

Assessment Criteria Teaching Strategy Assessment method

The outcome will be reached when: Formative:


 Applying critical thinking to complete problem-
1. Basic software testing terms, such as test case, solving exercises  Homework, worksheets and quizzes in class;
traceability matrix, and acceptance criteria are  Informal small group discussions  Group discussions in class and through a learning
described;  Completing tasks in teams management system;
2. The use of various testing strategies, including  Modelling demonstrations  Lecturer-facilitated tutorial classes where
black-box, white-box, top-down, and bottom-up  Solving real-life problems students work through supplied activities at their
are compared and contrasted;  Think-alouds - demonstrating the thought own pace.
3. Different types of tests, including functional, process used in problem solving  Suitable activities will be developed in line with
non-functional performance, and user tests are  Visualisation – have students draw a scene of learning outcomes and assessment criteria and
identified; the scenario in the problem will be included in the notes.
4. A test plan, which includes unit, integration, and Summative:
system levels of test coverage is designed.  Paper-based as well as computer-based
(practical);
 Computer-based assignments / Web tests.
 Formats: Class tests, semester tests,
examination.

20
Computer Science
SECTION E – Outline of learning units

This section provides an outline of what each learning unit covers.

25. Learning unit 1: Introduction to Software Engineering - Understanding and


appreciating software engineering and its importance

To complete this unit the student is expected to search for relevant literature on the definition of
software engineering concept, the challenges of software engineering as a discipline and professional
practice. The learner should appraise the identified literature to follow on the history of software
engineering and its raison d'être, the meaning of the concept of software engineering, the ethical and
professional responsibilities/obligations of a software engineer.

It is important to keep a portfolio of the material that you have read on this subject (copies of
downloaded files) in a folder/USB.

It is VERY important that you complete the self-assessment activities/questions to reinforce your
learning.

After completing this unit, you need to be able to:


7. Demonstrate knowledge on the history of Software Engineering by providing key milestones for
each decade of the SE timeline.
8. Define the concept of software engineering.
9. Explain the importance of software engineering as a discipline/profession.
10. Explain the key challenges facing software engineering.
11. Describe the professional and ethical responsibilities/obligations of a software engineer in line with
a software engineering code of ethics and professional conduct.
12. Analyse practical cases to determine ethical and professional issues according to software
engineering code of professional conduct and ethics.

Activity 1 : History of software engineering


1.1 Read on the history of software engineering
You could start off by reading this web resource https://www.hackreactor.com/blog/the-history-of-
coding-and-software-engineering and move on to other sources (maybe from the library, for example, a
book by Stephen Schach – Classical and Object-oriented Software Engineering (Chapter 1) and
internet).

1.2 Self-assessment activities/questions


1.2.1 Outline what you find to be key developments in each decade of the SE timeline?
1.2.2 What is software crisis? Give examples, for example, what was the challenge with Therac-
25?

Computer Science Department


1.2.3 Why was the concept or field of software engineering formulated? Who formulated and
refined it and why?

Notes and reflection:

22
Computer Science
Activity 2 : Definition of software engineering
2.1 Read on the definitions of software engineering from various sources.

2.2 Self-assessment activities/Questions:


2.2.1 Give definitions of software engineering from at least three sources (including IEEE
Glossary). What is common (the core) amongst the definitions? What are the key
concepts/ideas you identified from the definitions?
2.2.2 How does software engineering differ with computer science?
2.2.3 From the various definitions you have identified, select and present one definition that
works best for you. Justify why this definition is the most appropriate one for you.
2.2.4 What are the fundamental activities of software engineering?
2.2.5 From the sources you have read, identify individuals (as well as their organisations and
countries) that you find to be the pioneers/legends/founders of software engineering.

Notes and reflection:

23
Computer Science
Activity 3 : Challenges of software engineering
3.1 Download and read the article: No Silver Bullet – Essence and Accident in Software Engineering by
Fred Brooks.
3.2 Download and read: https://www.ece.rutgers.edu/~marsic/books/SE/book-SE_marsic.pdf,
Section 1.1.1.
3.3 The Standish Group study of 2009
3.4 Software engineering books and the internet can provide a lot of information on this activity.

3.5 Self-assessment/Questions:
3.5.1 Describe characteristics of software as identified by Brooks.
3.5.2 Why is software engineering so difficult?
3.5.3 List and describe factors that makes it difficult.

Notes and reflection:

24
Computer Science
Activity 4: Ethical and professional issues in the software engineering
practice

4.1 Download and read Chapter 11 of SWEBOK


4.2 Download and read ACM or ACM/IEEE code of ethics and professional conduct.

4.3 Self-assessment/Questions:
4.3.1 What are the factors which according to SWEBOK characterise the software engineering as
a profession?
4.3.2 What are the professional and ethical obligations/responsibilities of a software engineer?

Notes and reflection:

25
Computer Science
26. Learning unit 2: Software Development Life Cycle (SDLC) Models

The development of any sizeable software product goes through a series of phases from project
initiation (conceptualisation) to maintenance. This process is called the software development life cycle
(SDLC). There are several reasons for using a SDLC approach in software development, and these
include:
1. Helping to understand the development process
2. Enabling a structured approach to development process
3. Assisting in the planning of resources in advance
4. Assist in better control of the development process as well as the resources used
5. Provides assistance in tracking the progress of the development activities
Furthermore, software development is carried out following one or more SDLC models. This unit is
aimed introducing students to some of the various prominent models of software development life cycle
(SDLC). Once the SDLC models have been studied, a student is expected to read a number of resources
in order to help reinforce and reflect on the discussion on the models. This module covers the following
SDLC models: Waterfall model, Iterative model, Spiral model and Agile model. A student should not
only be able to know advantages and disadvantages of the mentioned SDLC models, but should also be
able to select appropriate model(s) based on the characteristics and needs of the project under
consideration.

It is important to keep a portfolio of the material that you have read on this subject (copies of
downloaded files) in a folder/USB. It is VERY important that you complete the self-assessment
activities/questions to actively participate in and reinforce your learning.

After completing this unit, you need to be able to:


5. Explain the concept of SDLC.
2 Describe each SDLC model covered in this module.
3 Compare and contrast the SDLC models, which are covered in the module.
4 Identify and/or apply a suitable SDLC model to a given software development problem.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 1: Some relevant resources to consult

LO Description of the learning outcome Relevant resource


s
1 Explain the concept of SDLC. (a) Classical and Object-oriented Software Engineering by
Stephen Schach.
(b) Information Technology Management by K. Schwalbe.
2 Describe each SDLC model covered in this (a) Classical and Object-oriented Software Engineering by
module. Stephen Schach.
(b) Information Technology Management by K. Schwalbe.
26
Computer Science
(c) Research articles: (i) Software Development Lifecycle
Models by Nayan B. Ruparelia; (ii) SDLC Models
Comparison Consequences by Vanshika Rastogi.
3 Compare and contrast the SDLC models, which (a) Beginning Software Engineering by Rod Stephens.
are covered in the module. (b) Pulse of the profession 2021 : Sub-Saharan Africa
(c) Classical and Object-oriented Software Engineering by
Stephen Schach.
(d) Information Technology Management by K. Schwalbe.
(e) Research articles: (i) Software Development Lifecycle
Models by Nayan B. Ruparelia; (ii) SDLC Models
Comparison Consequences by Vanshika Rastogi.
4 Identify and/or apply a suitable SDLC model to a (a) Classical and Object-oriented Software Engineering by
given software development problem. Stephen Schach.
(b) Research articles: (i) Software Development Lifecycle
Models by Nayan B. Ruparelia; (ii) SDLC Models
Comparison Consequences by Vanshika Rastogi.

Activity 1 : Software Development Life Cycle


a. Read on software development life cycle
Find suitable resources on software engineering (for some material see Table 1) and study the concept
of software development life cycle to understand various phases associated to the SDLC process. The
table below provides some valuable suggested resources to get you started with the learning process in
this regard.

b. Self-assessment activities/questions
i. Describe software development life cycle/process.
ii. Briefly explain each phase of the software development life cycle.
iii. Which phase do you think requires more resources? Substantiate your answer.
iv. In your own opinion (which should be informed by facts), how does the SDLC assist in
following a structured approach in developing software?

Notes and reflection:

27
Computer Science
Activity 2 : Software Development Life Cycle Models
2.1 Study the abovementioned software development life cycle models.
Find any software engineering resource (for some material see Table 1), which discusses the
abovementioned software development life models, and then study each of the models. Your
studying of the models should include its features, advantages, disadvantages, how each model
compares to other models and what kind of software development projects is it suitable for.

2.2 Self-assessment activities/Questions:


2.2.1 Describe any of the SDLC models covered in this module.
2.2.2 What kind of software projects are suitable for the use of an Agile model?
2.2.3 Based on your research (please cite your sources), what is the popularity of the SDLC
models in sub-Saharan Africa?
2.2.4 Can two or more SDLC models be used in one software development project? Substantiate
your answer by giving a real-world example if this is possible or by citing a reputable source
if this is not possible.

Notes and reflection:

28
Computer Science
27. Learning unit 3: Software Project Management

Software project management in software development environment is distinctive because of the


unique nature of the technical aspects of software projects. The software project manager's or scrum
master’s role is different from that of the software engineer's. While software engineers are generally
accountable for the technical aspects of a project, the project manager is accountable for organizational
aspects and the overall success of the project.

As you study the concepts of this unit, connect this unit with what you have already covered in the
previous unit about software development life cycle. You will realise that the success of an SDLC
depends on people, process, and product. The management of a project is the glue that holds these
aspects together.

Upon successful completion of this unit, you should be able to:


6. Explain project planning, scheduling, monitoring, and reporting
7. Explain the relationship among project cost, scope, and time
8. Create a work breakdown structure, identify task patterns, identify and calculate a critical path
9. Explain techniques for estimating task completion times and costs
10. Describe various scheduling tools, including Gantt charts and PERT/CPM charts
11. Draw a PERT/CPM

It is important to keep a portfolio of the material that you have read on this subject (copies of
downloaded files) in a folder/USB. It is VERY important that you complete the self-assessment
activities/questions to actively participate in and reinforce your learning.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 3: Some relevant resources to consult


LO Description of the learning outcome Relevant resource
s
1 Explain project planning, scheduling, (c) Systems Analysis and Design 11th Edition by Tilley and
monitoring, and reporting Rosenblatt.
(d) Information Technology Management by K. Schwalbe.
2 Explain the relationship among project cost, (d) Systems Analysis and Design 11th Edition by Tilley and
scope, and time Rosenblatt.
(e) Information Technology Management by K. Schwalbe.
3 Create a work breakdown structure, identify (f) Systems Analysis and Design 11th Edition by Tilley and
task patterns, identify and calculate a critical Rosenblatt.
path. (g) Information Technology Management by K. Schwalbe.
4 Explain techniques for estimating task (c) Systems Analysis and Design 11th Edition by Tilley and
29
Computer Science
completion times and costs. Rosenblatt.
(d) Information Technology Management by K. Schwalbe.
5 Describe various scheduling tools, including (a) Systems Analysis and Design 11th Edition by Tilley and
Gantt charts and PERT/CPM charts Rosenblatt.
(b)
(c)
Information Technology Management by K. Schwalbe.
6 Draw a PERT/CPM (a) Systems Analysis and Design 11th Edition by Tilley and
Rosenblatt.
(b) Information Technology Management by K. Schwalbe.

28. Learning unit 4: Software Modeling

Many believe that good system design is fundamental to creating good software. Systems analysts use
various graphical techniques to describe a system at different stages of its development life cycle. The
first step in software creation is proper gathering of requirements. Systems analysts may use functional
decomposition diagrams (FDDs), business process models, use case diagrams, data flow diagrams (DFDs)
and Unified Modeling Language (UML) to help them better understand system requirements. Any of
these diagrams can be created using computer-aided software engineering (CASE) tools or stand-alone
drawing tools. Models are meant to assist the project stakeholders, such as, clients, users, project
managers and software practitioners understand the design of a system. The UML enables software
engineers to articulate complex ideas about the system concisely and precisely. Designing software
requires the use of certain industry-standard design tools, and mastery of them is essential to becoming
a capable software engineer.

This unit will introduce you to UML, a standardized general-purpose modeling language for creating
visual models of object-oriented software. This unit aims to give you an understanding of UML including
use case diagrams, sequence diagrams and class diagrams.

Upon successful completion of this unit, you should be able to:


1. Use a functional decomposition diagram (FDD) to model business functions and processes.
2. Describe UML, use case diagram, class diagram and sequence diagram.
3. Interpret the context appropriately in order to create UML diagrams, including use case
diagrams, class diagrams and sequence diagrams.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 4: Some relevant resources to consult


LO Description of the learning outcome Relevant resource
s
1 Use a functional decomposition diagram (FDD) (a) Systems Analysis and Design 11th Edition by Tilley and
to model business functions and processes. Rosenblatt.

2 Describe UML, use case diagram, class diagram (a) Systems Analysis and Design 11th Edition by Tilley and
and sequence diagram. Rosenblatt.

3 Interpret the context appropriately in order to (b) Systems Analysis and Design 11th Edition by Tilley and
create use case diagram and UML diagrams, Rosenblatt.
including class diagrams and component
diagrams.

30
Computer Science
29. Learning unit 5: Software Requirements Gathering

Requirements gathering requires the software engineer (in this case, a business analyst) to interact with
the stakeholders, including clients and users, to gather/collect information about what the software
system being developed needs to do. There is also the situation where vendors are subcontracted to
develop all, or some components, of the software systems and/or develop the hardware that the
software will run on. In this unit, you will learn the data/information types, data collection techniques,
and data collection types.

Upon successful completion of this unit, you should be able to:

1. Identify different types of software requirements.


2. Identify and specify characteristics of good or bad software requirements.
3. Outline requirements/data gathering techniques, such as interviews, surveys, or observation.
4. Name software requirements validation techniques.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 5: Some relevant resources to consult


LO Description of the learning outcome Relevant resource
s
1 Identify different types of software (a) Systems Analysis and Design 11th Edition by Tilley and
requirements. Rosenblatt.
(b) https://learn.saylor.org/mod/page/view.php?id=33036

2 Identify and specify characteristics of good or (a) Systems Analysis and Design 11th Edition by Tilley and
bad software requirements. Rosenblatt.
(b) https://learn.saylor.org/mod/page/view.php?id=33036

3 Outline requirements/data gathering (a) Systems Analysis and Design 11th Edition by Tilley and
techniques, such as interviews, surveys, or Rosenblatt.
observation.

4 Name software requirements validation (a) https://learn.saylor.org/mod/page/view.php?id=33036


techniques.

31
Computer Science
30. Learning unit 6: Software Requirements Analysis

Software requirements analysis, also known as requirements engineering analysis, is about determining
the requirements of a new or altered system, taking into account of the possibly conflicting
requirements of the various stakeholders, such as users. Requirements must be measurable, testable,
related to identified business needs and be defined in detail to acceptable level to enable proper system
design. This unit explains the requirements analysis terms and main features of requirements.
Requirements analysis is critical to the success of a project.

Systematic requirements analysis is also known as requirements engineering. Sometimes requirements


analysis is loosely referred to as requirements gathering, requirements capturing or requirements
specification. Figure 1 illustrates requirements processes. Requirements must be measurable, testable,
related to identified business needs or opportunities, and defined to a level of detail sufficient for
system design.

Deliverable-Oriented Work Breakdown Structure: A Software Project Scope Verification Tool, RT Hans

Figure 1: Requirements process (Source: https://learn.saylor.org/mod/page/view.php?id=33845)

Upon successful completion of this unit, you should be able to:


32
Computer Science
1. Interpret fundamental software requirements and analysis terms, such as actors, constraints,
and use cases;
2. Apply each of the main activities of software requirements analysis, such as gathering,
specification, and verification;
3. Apply use case diagrams, to assist stakeholders to better understand system requirements.
4. Describe the analysis activities.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 6: Some relevant resources to consult


LO Description of the learning outcome Relevant resource
s
1 Interpret fundamental software requirements (a) Systems Analysis and Design 11th Edition by Tilley and
and analysis terms, such as actors, constraints, Rosenblatt.
and use cases (b) https://learn.saylor.org/mod/page/view.php?id=33036

2 Apply each of the main activities of software (a) Systems Analysis and Design 11th Edition by Tilley and
requirements analysis, such as gathering, Rosenblatt.
specification, and verification (b) https://learn.saylor.org/mod/page/view.php?id=33036

3 Apply use case diagrams, to assist stakeholders (a) Systems Analysis and Design 11th Edition by Tilley and
to better understand system requirements. Rosenblatt.
(b)

4 Describe the analysis activities (a) https://learn.saylor.org/mod/page/view.php?id=33036

33
Computer Science
31. Learning unit 7: Software Design

Following requirements and analysis of a system, a systems analyst converts the analysis models into
system design models, which can be implemented. The aim of this unit is to introduce students to
principles of design and show how class diagrams and sequence diagrams may be used during the
software design process phase. Just as there are various methodologies for requirements analysis, there
are three methodologies of the design model (data-oriented, process-oriented, and object-oriented).
The focus here is the object-oriented methodology and how it applies to software design.

Upon successful completion of this unit, you need to be able to:

1. Explain the software design principles used to create well-designed software that is easy
to understand, test, modify, and develop;
2. Apply the main activities of software design, such as creating class diagrams and
sequence diagrams;
3. Use design class diagrams to determine the way data is represented as well as the
processes are executed in object-oriented methodologies.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 7: Some relevant resources to consult


LO Description of the learning outcome Relevant resource
s
1 Explain the software design principles (a) Systems Analysis and Design 7th Edition by Satzinger, Jackson and
used to create well-designed software Burd.
that is easy to understand, test, (b) https://learn.saylor.org/course/view.php?id=73&sectionid=18254
modify, and develop
2 Apply the main activities of software (a) Systems Analysis and Design 7th Edition by Satzinger, Jackson and
design, such as creating class diagrams Burd.
and sequence diagrams (c) https://learn.saylor.org/course/view.php?id=73&sectionid=18254

3 Use design class diagrams to determine (a) Systems Analysis and Design 7th Edition by Satzinger, Jackson and
the way data is represented as well as Burd.
the processes are executed in object- (b) https://learn.saylor.org/course/view.php?id=73&sectionid=18254
oriented methodologies.

34
Computer Science
32. Learning unit 8: Software Implementation

Implementation, also known as programming or coding, is the process of using a programming language
to convert specified requirements into a programming language source code and later compiled into
executable code. Implementation activities broadly include coding the solution, testing the code,
integrating different codes and then testing the integrated parts (the complete solution). Software
developers may also choose to automate coding process by using software tools to convert design
requirements into code.

Upon successful completion of this unit, you need to be able to:


1. Describe implementation and deployment activities
2. Differentiate between types of programming languages, including system languages,
domain-specific languages, and scripting languages;
3. Explain the benefit(s) of version control systems.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 8: Some relevant resources to consult


LO Description of the learning outcome Relevant resource
s
1 Describe implementation and (a) Systems Analysis and Design 7th Edition by Satzinger, Jackson and
deployment activities Burd.
(b) https://learn.saylor.org/course/view.php?id=73&sectionid=18258

2 Differentiate between types of (a) Systems Analysis and Design 7th Edition by Satzinger, Jackson and
programming languages, including Burd.
system languages, domain-specific (d) https://learn.saylor.org/course/view.php?id=73&sectionid=18258
languages, and scripting languages
3 Explain the benefit(s) of version control (a) Systems Analysis and Design 7th Edition by Satzinger, Jackson and
systems. Burd.
(b) https://learn.saylor.org/course/view.php?id=73&sectionid=18258

35
Computer Science
33. Learning unit 9: Software Testing

Even though software testing is indicated as the last process the process in the software life cycle, it
should not be regarded as actually as the last thing that is carried in a software project but rather as an
ongoing activity once the coding process has commenced. In testing, we look to validate that software
requirements analysis, software design, and software implementation mesh together correctly to deliver
a software system that performs as expected, error-free, functionally and non-functionally.

As you study the software testing concepts in this unit, note the three levels of a test plan: unit,
integration, and system. Each of these levels of test plan assures the quality of the overall software from
varying levels of granularity. In your own practice as a software engineer, be sure to incorporate these
levels of testing as this is the last stop before the software goes out the door representing your
professional work and code of ethics.

Upon successful completion of this unit, you will be able to:


1. Describe basic software testing terms, such as test case, traceability matrix, and
acceptance criteria;
2. Compare and contrast the use of various testing strategies, including black-box, white-
box, top-down, and bottom-up;
3. Identify different types of tests, including functional, non-functional performance, and
user tests; and
4. Design a test plan that includes unit, integration, and system levels of test coverage.

The following table will assist you to find relevant resources to the abovementioned learning
outcomes (LOs):

Table 9: Some relevant resources to consult


Lo Description of the learning Relevant resource
s outcome
1 Describe basic software testing terms,
such as test case, traceability matrix,
and acceptance criteria
2 Compare and contrast the use of
various testing strategies, including
black-box, white-box, top-down, and
bottom-up
3 Identify different types of tests,
including functional, non-functional
performance, and user tests
4 Design a test plan that includes unit,

36
Computer Science
integration, and system levels of test
coverage

SECTION F – ASSESSMENT

1 Assessment Schedule

The learner will write two web tests, two supervised semester tests and a group assignment. These assessments
weights will collectively contribute to the students predicate mark of which the student must obtain at least 40%
in order to write exam.

The assessments weights are as follows:

Learning outcomes and


Weight towards assessment criteria to be
Date Time Assessment Task Predicate mark assessed
TBA Web Test/ Class 10% LU 1 & 2
Test 1
TBA Web Test 2/ Class 10% LU 5 & 6
Test 2
TBA Web Test 3/ Class 10% LU 7 & 8
Test 3
Per ICT Faculty Semester Test 1 30% LU 1-4
time table
Per ICT Faculty Semester Test 2 30% LU 6-9
time table
15th Oct Assignment 1 10% All
Total 100%

2 Promotional requirements

A student must achieve a final mark of at least 50% to pass the module.

Final mark = (Predicate + exam mark) / 2

A final mark of between 45 and 48 will mean re-exam.


37
Computer Science
3 Assignments

Assignments must be completed and handed in on the due date as is specified on the schedule of this study
guide. NO LATE ASSIGNMENT WILL BE ACCEPTED. Assignment must be submitted via Bright space.

There is only one group assignment that students are expected to submit this semester. The details will be
communicated to students and groups (with members between 4 and 8) will be formed by the criteria decided by
your lecturer at your campus.

Please note the following:

1. All assignments must be the author’s original work. No plagiarism will be tolerated.
2. Relevant cover page (as provided in this Document)
3. Typed in Calibri 11
4. 1.5 spacing, printed on one side of the page only
5. Top and Bottom margins 2.54cm (Standard margins)
6. Left and right margins 3.17cm (Standard margins)
7. A copy of all resources should be attached at the end of the bibliography
8. Full bibliography must be supplied; failure to do so will automatically fail you in the assignment. Please
follow the Harvard method of referencing. If you don’t know this method, ask the lecturer.
9. Unless otherwise stated stapled in the top left-hand corner.
10. Each assignment must be kept separate DO NOT bind multiple assignments together if it is to be
submitted on the same day.

4 Assessment Administration

Test administration:

1. Students will write the test.


2. The Lecturer/s will mark the test.
3. The Lecture will hand back the marked scripts to each student and discuss common problems
encountered. At the end of this session the marked scripts need to submitted back to the lecturer.
4. If there are any queries regarding the test, these queries must be submitted to the lecturer within 5 days
after the marked scripts were discussed. NO marks changes will be made after 5 days.

Assignments administration:

1. Student completes the assignment.

38
Computer Science
2. The student must then submit the assignment as is stated in the assignment question.
3. The lecturer will mark the assignment or web test.
4. If there are any queries regarding the assessment, these queries must be submitted to the lecturer within
5 days after the marks were published. NO marks changes will be made after 5 days.

5 Mode of delivery

The mode of delivery for this module is contact. This module will be presented in 4 periods per week during the
day.

6 Quality assurance

The quality of the study guide is maintained by the Quality Assurance committee of Tshwane University of
Technology.

Students evaluate the study guide using the lecturer assessment questionnaire that is completed twice a
semester.

The quality of the question papers and memorandums is maintained by an internal moderator a with
qualifications higher than the year the module is being presented in.

The quality of the marking is overseen by the internal moderator that ensures the marking of the scripts is fair. A
moderator report is completed for each major assessment.

7 Industry related learning

Where possible guest speakers will come and address the class on advanced software engineering issues.

8 Plagiarism

The following is an extract from TUT’s plagiarism policy. Reference: RIPPOL067.

All students have a moral obligation and responsibility to maintain the following academic integrity principles in
the production and presentation of academic outputs, regardless of the presentation format and/or work type:

Each student should only submit his/her own original academic work, except when formal group work was
required in the production of the academic output;

39
Computer Science
Each student should accurately indicate in all academic outputs when information is used that was produced by
another scholar by referencing it in accordance with a recognised referencing convention system;

No student should use, present or submit someone else’s electronic works, multimedia products or artistic works
as if it is his/her own;

Each student should accurately indicate the download/access date and the uniform resource locator (URL) of the
internet web page when information is used from a website, web page or other electronic source;

No student should allow another person/s to use or copy from his/her academic output and present it as their
own work;

Each student is required to attach a signed Declaration of Originality (see Annexures A and B) for each academic
output submission (e.g. assignment, project, manuscript, dissertation and thesis); and Each student has the
responsibility to request assistance from staff members should they require guidance and/or advice about
plagiarism in their academic outputs.

Students have a moral obligation to report plagiarism incidents in academic and/or research environments. All
whistle-blowers are protected in terms of the Policy on Prevention of Fraud, Corruption and Theft (Policy #:
VCPOL010).

Plagiarism is a form of misconduct. The relevant part (Chapter 15 – Student Discipline) of the Prospectus, Part 1
(Students’ rules and regulations) read as follows:

“Any student who contravenes the provisions of rule 15.1 of the disciplinary code is guilty of misconduct and will
be dealt with in terms of the disciplinary code for students …

15.1.16 Handing in any written assignment for assessment in which the essential parts of the assignment have
been copied from the work of another person, or any form of plagiarism.”

All students must be fully aware that plagiarism offences/penalties can seriously affect their academic status and
progress at TUT and other tertiary institutions. In the most serious cases, it can result in dismissal from the
University and/or formal cancellation/retraction of current/previously submitted academic outputs. In addition,
the University may indicate the nature and outcome of all plagiarism offences/penalties when it is required to
provide a reference or conduct statement for the particular student.

9 Glossary

A “Module coordinator”, is a lecturer responsible for coordinating the activities within the module. A module
coordinator is responsible for setting up the study guide and ensuring that all the participants stay on schedule.
40
Computer Science
A “Secondary module coordinator”, is a lecturer responsible for assisting the module coordinator with activities
that scaled due to large student number quantities within the module.

A “Site coordinator”, is a lecturer responsible for coordinating the activities (within the module) on a learning
site. The site coordinator is responsible for reporting all deviations from the activities scheduled to the module
coordinator.

A “Custodian department”, is the department responsible for managing the module and all the resources
required by the module.

41
Computer Science
ADDITIONAL DOCUMENTATION

Appendix A

Faculty of Information and Communication Technology


Department of Computer Science

Date: 23 January 2020

TO: All students currently in the Department of Computer Science


FROM: Office of the Head of Department: Computer Science

RE: The Phasing out of the old National Diploma in Information Technology
qualifications

According to the Department of Higher Education and Training, all NATED 151 qualifications
(that is the current National Diploma and Baccalaureus Techologiae qualifications) are to be
phased out by December 2019 and there will be no admission granted for such in 2020.
This old Nated programme is to be replaced with the new Higher Education Qualification
Sub-Framework aligned qualifications.

Therefore, the current National Diploma in IT: Software Development (NDIS12/NDISF1), will
be replaced with the Diploma in Computer Science. The National Diploma in IT: Multimedia
(NDIU12/NDIUF1) will be replaced with the Diploma in Multimedia Computing. The
department of Computer Science is consequently informing you, that students who are
already enrolled on the Nated National Diploma in IT: Software Development
(NDIS12/NDISF1), and National Diploma in IT: Multimedia (NDIU12/NDIUF1 will have up to
2023 to complete these qualifications as there will be no more admission or re-admission
to these qualifications.

In the table below a detailed explanation to the phasing out plan per subjects are provided.
The latter will give you a clear indication of how the phase out plan of the National Diploma
will unfold. Please it is also important that you observe these deadlines as some subjects
will not be repeated after a given period of time. Failure to do so will leave you with one
option of enrolling for the new qualification.

If you require more information with regards to this matter, please feel free to contact the
Department of Computer Science.

42
Computer Science
43
Computer Science
2020-S1 2020-S2 2021-S1 2021-S2 2022-S1 2022-S2 2023-S1 2023-S2 2024-S1
CFS10AT*
(new CFS10AT* CFS10AT* No longer No longer No longer No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered offered offered offered
1st Semester
CGS10AT*
First year

(new CGS10AT* CGS10AT* No longer No longer No longer No longer No longer No longer


students) (repeaters) (repeaters) offered offered offered offered offered offered
CMK10AT
(new CMK10AT CMK10AT No longer No longer No longer No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered offered offered offered
DSO17AT*
(new DSO17AT* DSO17AT* No longer No longer No longer No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered offered offered offered
2020-S1 2020-S2 2021-S1 2021-S2 2022-S1 2022-S2 2023-S1 2023-S2 2024-S1
CFS10BT*
(new CFS10BT* CFS10BT* No longer No longer No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered offered offered
2nd Semester

CGS10BT*
First Year

(new CGS10BT* CGS10BT* No longer No longer No longer No longer No longer


students) (repeaters) (repeaters) offered offered offered offered offered
CMK10BT
(new CMK10BT CMK10BT No longer No longer No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered offered offered
DSO17BT*
(new DSO17BT* DSO17BT* No longer No longer No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered offered offered
2020-S1 2020-S2 2021-S1 2021-S2 2022-S1 2022-S2 2023-S1 2023-S2 2024-S1
TPG12AT TPG12AT TPG12AT No longer No longer No longer No longer
(new students) (repeaters) (repeaters) offered offered offered offered
ITN20AT ITN20AT ITN20AT No longer No longer No longer No longer
(new students) (repeaters) (repeaters) offered offered offered offered
1st Semester
Second Year

MMN20AT MMN20AT MMN20AT No longer No longer No longer No longer


(new students) (repeaters) (repeaters) offered offered offered offered
ISY23AT* ISY23AT* ISY23AT* No longer No longer No longer No longer
(new students) (repeaters) (repeaters) offered offered offered offered
GUI10AT GUI10AT GUI10AT No longer No longer No longer No longer
(new students) (repeaters) (repeaters) offered offered offered offered
DSO23AT DSO23AT DSO23AT No longer No longer No longer No longer
(new students) (repeaters) (repeaters) offered offered offered offered
Computer Science Department
TPG111T TPG111T TPG111T No longer No longer No longer No longer
(new students) (repeaters) (repeaters) offered offered offered offered
SSF24AT SSF24AT SSF24AT No longer No longer No longer No longer
(new students) (repeaters) (repeaters) offered offered offered offered
2020-S1 2020-S2 2021-S1 2021-S2 2022-S1 2022-S2 2023-S1 2023-S2 2024-S1
TPG12BT
(new TPG12BT TPG12BT No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered
ITN20BT
(new ITN20BT ITN20BT No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered
MMN20BT
(new MMN20BT MMN20BT No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered
2nd Semester

ISY23BT
Second Year

(new ISY23BT ISY23BT No longer No longer No longer


students) (repeaters) (repeaters) offered offered offered
GUI10BT
(new GUI10BT GUI10BT No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered
DSO23BT
(new DSO23BT DSO23BT No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered
TPG201T*
(new TPG201T* TPG201T* No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered
SSF24BT
(new SSF24BT SSF24BT No longer No longer No longer
students) (repeaters) (repeaters) offered offered offered
2020-S1 2020-S2 2021-S1 2021-S2 2022-S1 2022-S2 2023-S1 2023-S2 2024-S1
MMX30BT
(new MMX30BT MMX30BT No longer No longer
students) (repeaters) (repeaters) offered offered
1st Semester
Third Year

MMX30AT
(new MMX30AT MMX30AT No longer No longer
students) (repeaters) (repeaters) offered offered
MMZ30AT
(new MMZ30AT MMZ30AT No longer No longer
students) (repeaters) (repeaters) offered offered
MMZ30BT MMZ30BT MMZ30BT No longer No longer
45
Computer Science
(new
students) (repeaters) (repeaters) offered offered
IDC30AT*
(new IDC30AT* IDC30AT* No longer No longer
students) (repeaters) (repeaters) offered offered
DSO34AT
(new No longer DSO34AT No longer No longer
students) offered (repeaters) offered offered
DSO34BT
(new DSO34BT DSO34BT No longer No longer
students) (repeaters) (repeaters) offered offered
ISY34AT
(new ISY34AT ISY34AT No longer No longer
students) (repeaters) (repeaters) offered offered
ISY34BT
(new ISY34BT ISY34BT No longer No longer
students) (repeaters) (repeaters) offered offered
2nd Semester

2020-S1 2020-S2 2021-S1 2021-S2 2022-S1 2022-S2 2023-S1 2023-S2 2024-S1


Third Year

IDC30B*
(new IDC30B* IDC30B* No longer
students) (repeaters) (repeaters) offered

46
Computer Science

Tel. 0861 102 422, Tel. (012) 382-5911, Fax (012) 382-5114, www.tut.ac.za • The Registrar, Private Bag X680, Pretoria 0001
References

[1] P. Bourque and R. E. Fairley, SWEBOK Guide V3.0. 2014.

Computer Science Department

You might also like