Module Code: 553/23/M03
Module Title: SOFTWARE ENGINEERING
ZNQF Level: 5
Credits: 15
Duration 150 hours
Relationship with Based on Unit Standard SOFTWARE ENGINEERING of
Qualification Qualification Standard for ICT TECHNICIAN
Standards:
Pre-requisite Programming Concepts
modules:
Purpose of Module: This module describes the skills, knowledge and attitudes required
by an ICT TECHNICIAN to develop and maintain software. This
includes elicit and analyse software requirements, design software,
construct software, test software, configure and maintain software
and apply software engineering process and methodologies.
Advantages of software engineering include, a systematic
development of high quality software products at the least cost and
within a reasonable short time space to make a positive
contribution on how we lead our lives. Access to this module is
open to all target groups including unemployed youths, women
and men wishing to establish or improve SMEs in the
development and maintenance of software
List of Learning LO1: Generate Software Requirements Specification
Outcomes: document (SRS)
LO2: Design software
LO3: Construct software
LO4: Test software for functionality
LO5: Configure and maintain software
LO6: Apply Software Engineering Process and Methodologies
Learning Outcome 01 PRODUCE SOFTWARE REQUIREMENTS
SPECIFICATION DOCUMENT (SRS)
Assessment Criteria: 1.1 Produce a problem statement
1.2 Outline the problem solving process
1.3 Perform software requirements gathering
1.4 Carry out feasibility study
1.5 Analyse software requirements
Content: 1.1 Produce a problem statement
Define software
Explain the importance of software engineering
Outline the attributes of good software
Highlight the key challenges facing software
engineering
Differentiate between software engineering and
computer science
Explain professional ethics in software engineering
Outline the roles in software engineering
Define problem statement
Explain the importance of a problem statement
Outline the procedure for writing a problem statement
1.2 Outline the problem solving process
Explain what the problem is being addressed by the
software product
Evaluate alternative solutions
Distinguish between bottom up and top down to
software engineering
1.3 Perform software requirements gathering
Define system requirements (functions)
Explain the two main types of system requirements
Differentiate between user requirements and system
requirements
Justify the need for user involvement in software
engineering
Evaluate fact finding techniques
Describe fact recording tools
1.4 Carry out feasibility study
Define feasibility study
Explain the importance feasibility study
Evaluate types of feasibility
1.5 Analyse software requirements
Outline the importance of requirements validation
Describe the requirements engineering process
Discuss requirements elicitation and analysis
Explain requirements management
Outline the components of an SRS document
Introduction.
Product Description.
Software Requirements.
External Interface Requirements.
Non-Functional Requirements.
State the benefits of an SRS document to developers
Write an SRS document for a given scenario
Assessment Tasks: 1. Written and/or oral assessment on the skills and knowledge
required to elicit and analyze software requirements as
outlined in the assessment criteria.
2. Practical assessment on the software engineering including
the following of SHEQ requirements, the consideration of
computer laboratory environmental factors which affect the
developing, the identification of the inputs, processes and
outputs of software based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Learning Outcome 02 DESIGN SOFTWARE
Assessment Criteria: 2.1 Perform System Logical or Conceptual Design.
2.2 Produce Physical Design, including Process and Interface
Design.
Content: 2.1 Perform System Logical or Conceptual Design
Distinguish between logical and conceptual design
Describe entity relationship modelling
Explain functional and data oriented design
Distinguish between top down and bottom up design
Explain the design quality concepts (modularity,
cohesion and coupling)
Outline software design heuristics
2.2 Produce Physical Design, including Process and Interface
Design
Discuss the importance of user interface design
Explain user interface design guidelines
Describe the types of menus
Describe object oriented design concepts
Discuss the use of CASE tools in software design
Advantages and disadvantages of CASE tools
Types of CASE tools
Levels of CASE tools
Illustrate object oriented design using the UML
Building blocks of UML
Categories of UML diagrams
Apply process specification tools
Explain model-driven engineering
Describe the process of file and database design
Describe system architectural design considering the
following (architectural design decisions, architectural
views, architectural patterns and application
architectures)
Assessment Tasks: 1. Written and/or oral assessment on the skills and knowledge
required to design software as outlined in the assessment
criteria.
2. Practical assessment on software engineering including the
following of SHEQ requirements, the consideration of
computer laboratory environmental factors which affect the
developing, the identification of the inputs, processes and
outputs of software based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the workplace
or simulated work environment in the training institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Learning Outcome 03 CONSTRUCT SOFTWARE
Assessment Criteria: 3.1 Use an appropriate programming language or framework.
3.2 Explain the coding of system units.
3.3 Describe the integration of developed system units.
Content: 3.1 Use an appropriate programming language or framework.
Explain the components of the .Net Framework
Explain the importance of the .Net framework
3.2 Explain the coding of system units
Explain the benefits of modularity in software design
Explain the choice of an appropriate IDE
Outline the process of compiling and running programs
Describe software testing
3.3 Describe the integration of developed system units
Explain the need for module integration
Outline integration challenges and solutions
Explain integration testing
Outline the types of software integration
Star integration
Horizontal integration
Vertical integration
Implementation of the common data formats
Assessment Tasks: 1. Written and/or oral assessment on the skills and knowledge
required to construct software as outlined in the assessment
criteria.
2. Practical assessment on software engineering including the
following of SHEQ requirements, the consideration of
computer laboratory environmental factors which affect the
developing, the identification of the inputs, processes and
outputs of software based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Learning Outcome 04 TEST SOFTWARE FOR FUNCTIONALITY
Assessment Criteria: 4.1 Perform software testing at different levels of software
development.
4.2 Perform system modification and regression testing.
4.3 Produce automation test scripts to test software.
Content: 4.1 Perform Software testing at different levels of software
development.
Define software testing
Justify the need for software testing
Explain verification and validation testing
Discuss the following
Development testing
Test-driven development
Release testing
User testing
Explain the levels of software testing
Explain the types of software testing
Alpha testing
Beta testing
Black box and white box testing
4.2 Perform System modification and regression testing.
Define change management
Outline measures to reduce resistance to change
Explain the impact of system modification
Justify system updates
Explain the need for regression testing
4.3 Produce Automation test scripts to test software.
Define test script
Explain steps on automation test script writing using
automated tools(Selenium)
Different ways to create a test script:
Record/playback
Keyword/data-driven scripting
Writing Code Using the Programming Language
Give Example of a Test script
Assessment Tasks: 1. Written and/or oral assessment on the skills and knowledge
required to test software for functionality as outlined in the
assessment criteria.
2. Practical assessment on software engineering including the
following of SHEQ requirements, the consideration of
computer laboratory environmental factors which affect the
developing, the identification of the inputs, processes and
outputs of software based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Learning Outcome 05 CONFIGURE AND MAINTAIN SOFTWARE
Assessment Criteria: 5.1 Develop software maintenance plan.
5.2 Deploy Software.
5.3 Track Software changes.
5.4 Apply Software Configuration Management tools such as
Cloud and DevOps.
Content: 5.1 Develop software maintenance plan.
Discuss importance of software maintenance
Create a software maintenance plan
Software maintenance strategies
Software maintenance process
Carryout the following types of maintenance:
Corrective Software Maintenance
Preventative Software Maintenance
Perfective Software Maintenance
Adaptive Software Maintenance
5.2 Deploy software
Define software deployment
Explain the software deployment process
Outline best practices for software deployment
Explain the types of deployment strategies
Outline the stages of software deployment
Describe the activities involved in software deployment
5.3 Track software changes
Define software change
Explain legacy systems
Outline the strategies for software change
Describe the following Tracking tools:
Audit trails
Notifications and alerts
Digital signature
Version control
5.4 Apply software configuration management tools such as
cloud and DevOps
Define and identify software configuration tools
Explain open source configuration management tools
Assessment Tasks: 1. Written and/or oral assessment on the skills and knowledge
required to configure and maintain software as outlined in
the assessment criteria.
2. Practical assessment on software engineering including the
following of SHEQ requirements, the consideration of
computer laboratory environmental factors which affect the
developing, the identification of the inputs, processes and
outputs of software based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Learning Outcome 06 APPLY SOFTWARE ENGINEERING PROCESSES AND
METHODOLOGIES
Assessment Criteria: 6.1 Apply The Software Development Life Cycle when
developing software.
6.2 Implement Software development methodologies including
agile methods.
Content: 6.1 Apply The Software Development Life Cycle when
developing software
Identify Software process models
Explain the SSADM and the SDLC
Explain the following:
Agile software development
The rational unified process
Process activities
Outline strategies for coping with change
Describe how to carry out a feasibility study
6.2 Implement Software development methodologies including
agile methods
Explain the following software development
methodologies:
Agile software development methodology
Waterfall methodology
Feature driven development (FDD)
Lean software development methodology
Scrum software development methodology
Extreme programming (XP)
Rapid application development (RAD)
DevOps deployment methodology
Identify Benefits of agile methodology
Explain agile project management terms:
Scrum
Kanban
Adaptive Project Framework (APF).
Explain the need for project management tools
Describe different project management tools, e.g. PERT
charts, Gantt Charts, WBS, network diagrams
Outline automated project management tools
Explain the process of risk management
Identify Types of risks
Recommend Risk mitigation strategies
Assessment Tasks: 1. Written and/or oral assessment on the skills and knowledge
required to apply software engineering process and
methodologies as outlined in the assessment.
2. Practical assessment on software engineering including the
following of SHEQ requirements, the consideration of
computer laboratory environmental factors which affect the
developing, the identification of the inputs, processes and
outputs of software based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Approach to Teaching and Learning:
1. Observation of adult learning principles.
2. Both institution-based and work-based learning to facilitate the integration of theory and
practice.
3. Face-to-face education and learning.
4. Problem-based learning.
5. Online/distance education and learning.
6. Blended/hybrid education and learning.
7. Use of social media.
Approach to Assessment:
1. Weighting of practical and theory assessment: 30% theory and 70% practical.
2. Weighting of institution-based and work-based assessment: 50% institution-based
assessment and 50%.
3. Oral assessment to be conducted by a panel of two or more assessors.
4. RPL assessment.
5. Portfolio of evidence.
6. Assessment of work conducted by both individual learners and teams of learners.
Resources:
1. Qualifications and experience of Trainers, Assessors and Moderators
All trainers, assessors and moderators should have undergone ZNQF accredited training
programmes and should have qualifications and experience recognised by the Zimbabwe
National Qualifications Authority (ZNQA).
2. Facilities, Tools, Equipment and Materials
For an institution to successfully implement this diploma programme, the underlisted
minimum infrastructure and equipment will need to be in place:-
Computer Laboratory (for Programming)
Personal Computers and a printing facility
Appropriate software
Computer Desks and chairs
One student per PC
Network facility
Internet connection
Writing surface for the instructor (e.g. securely-mounted whiteboard)
Adequately licensed computer software should be available for training purposes –
especially the under-listed:-
Operating Systems e.g. Windows, Linux, MacOS, MS-DOS
Computer Fault Diagnosis Software
C++ compiler
Spreadsheet (Windows based)
Database packages e.g. Oracle, MySQL, SQL Server, PostgreSQL
Web Editing software
Graphics editing software (e.g. Adobe Photoshop)
Network emulation software e.g. packet tracer, GNS3
UML diagramming software (e.g. star UML, Argo UML)
Word-processor (Windows based)
Internet and E-Mail software
Statistical Package
Microsoft Visual Studio at least 2010
Microsoft Projects
Screen reading software for the visually impaired e.g. JAWS, NVDA, ORCA
3. Learning Resources
Relevant training manual (learners’ guide) and facilitators’ guide
4. ASSESSMENT SCHEME
MODULE TITLE WRITTEN CONTINUOUS WEIGHTING
AND CODE EXAMINATION ASSESSMENT 60%
40%
Software Engineering 3 hour written A minimum of 100%
examination • 2 Assignments 20%
• 2 Practical assignments 20%
• 2 Tests 20%
5. ASSESSMENT SPECIFICATION GRID
TOPIC WEIGHTING %
Generate Software Requirements Specification document (SRS) 20
Design Software 20
Construct Software 10
Test Software 20
Configure and Maintain Software 10
Apply Software Engineering Process and Methodologies 20
TOTAL 100
5. Reference Materials (recommended textbooks, recommended readings)
i. Crookshanks E (2015), Practical Software Development Techniques, Apress
ii. Dooley.L (2011), Software Development and Professional Practice, Apress
iii. Foster.E.C (2014), Software Engineering, Apress
iv. Pressman, Roger (2014) Software Engineering: A Practitioner's Approach 8th Ed,
McGraw Hill , New York, NY.
v. Priyadarshi Tripathy, Kshirasagar Naik (2015), Software Evolution and
Maintenance, Wiley
vi. Sommerville, I. (2016). Software engineering. 10th ed. Harlow, Essex: Addison
Wesley.
vii. Stephens, Rod (2015) Beginning Software Engineering, Wrox.
viii. Tsui, Frank , Orlando Karam and Barbara Bernal (2016) Essentials of Software
Engineering 4th Ed., Jones & Bartlett Learning , Sudbury, MA.
ix. Tyler.J (2015), Building Great Software Engineering Teams, Apress
x. [Link]
xi. [Link]
xii. [Link]