0% found this document useful (0 votes)
6 views12 pages

Software Engineering

The document outlines the Software Engineering module (553/23/M03) at ZNQF Level 5, which requires 150 hours of study and awards 15 credits. It covers essential skills for ICT technicians, including software requirements specification, design, construction, testing, configuration, maintenance, and application of software engineering processes. The module is accessible to all target groups and emphasizes both theoretical and practical assessments in various learning environments.

Uploaded by

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

Software Engineering

The document outlines the Software Engineering module (553/23/M03) at ZNQF Level 5, which requires 150 hours of study and awards 15 credits. It covers essential skills for ICT technicians, including software requirements specification, design, construction, testing, configuration, maintenance, and application of software engineering processes. The module is accessible to all target groups and emphasizes both theoretical and practical assessments in various learning environments.

Uploaded by

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

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]

You might also like