Apply Now
Contact
Parent Programme
Bachelor of Science in Computing (Level 7 NFQ)
MODULE NFQ
Level 7
MODULE CREDIT UNITS
ECTS: 10
MODULE TITLE
Software Engineering
Reference Code: M3.1
STAGE
Year 3
Semester 1 & 2
26 Weeks X 3 Hours per week

Software Engineering -Module

Software engineering principles and Process Models

This module develops the learners’ theoretical and practical understanding of the lifecycle of software development giving an overview of a project from beginning to end.

  • Goals of Software Engineering and various software disciplines.
  • What is software? Software engineering and software engineering processes.
  • Four steps of software engineering: specification, development, validation and evaluation.
  • Waterfall approach and evolutionary development.
  • System assembly from re-usable components.
  • Agile software development

Software Requirements and Specifications

Applied methods for developing computer software in a practical context, focusing on software development in teams, testing, and documentation.

  • What are SW requirements? How to specify the requirements? Guidelines on documenting requirements.
  • Functional and non-functional requirements. User requirements. System requirements.
  • Requirements capture and analysis. Feasibility study.
  • Requirements validation and management.

System Modelling, Software Design and Implementation

  • System modelling. Context models, behavioural models, data models and object models.
  • What is architectural design? What is architecture specification? Guidelines on documenting the architecture.
  • System structuring and modular decomposition. What are control models?
  • Difference between domain-specific architectures and client-server architectures.
  • User interface design. Human-computer interaction. UI main principles: user interaction, information presentation, user support. UI evaluation.
  • Prototyping in SW process. Agile development and rapid prototyping techniques. User interface prototyping.

Software Verification and Testing

  • What is software product quality? Quality measurement. software defects and software reliability.
  • What is software verification? software inspections. Improvement of product quality.
  • What is software testing? Unit testing, defect testing, integration testing and OO testing.
  • Automatic static analysis. Testing workbenches. Clean room software development.
  • Practical testing.
  • Validation versus Verification.

Software maintenance, change and evolution

  • Moral and ethical aspects related to development of software products.
  • Legal aspects of software engineering. Copyrights. software patenting.
  • Introduction to software change. Program evolution dynamics.
  • Architectural evolution.
  • What is software maintenance? Version and release management.

Minimum Intended Learning Outcomes (MIMLOs)

Upon successful completion of this module, the learner should be able to:
LO1
Demonstrate an in-depth and specialised knowledge of software engineering practices applicable to a range of real-world contexts.
LO2
Appraise different software process models.
LO3
Evaluate the core concepts and theories relating to Agile methods of software development.
LO4
Design software solutions according to the required criteria and specifications in a systematic manner.
LO5
Apply the main principles of software engineering design for a wide range of computing artefacts.
LO6
Debug a software system using well-established debug techniques and create effective technical documentation.
LO7
Understand the objectives of software testing distinguishing between software validation and verification.

Assessment

MIMLOs
Assessment
Percentage
1, 3, 4, 5, 6
CA 1 & 2 – In- Class Test
60%
1-7
Examination
40%

Reassessment Opportunity

Where the combined marks of the assessment and examination do not reach the pass mark the learner will be required to repeat the element of assessment that they failed. Reassessment materials will be published on Moodle after the Examination Board and will be aligned to the MIMLOs and learners will be capped at 40% unless there are personal mitigating circumstances.

Aims & Objectives

This module develops the learners’ theoretical and practical understanding of the lifecycle of software development giving an overview of a project from beginning to end.   It uses applied methods for developing computer software in a practical context, focusing on software development in teams, testing, and documentation.

This module will ensure learners meet the following objectives:

  • Introduce basic principles of software engineering.
  •  Identify and deploy appropriate practices for an Object-Orientated system.
  • Enable learners to specify and design software.
  • Ensure learners can verify, test and maintain software using best practice.
  • Familiarise learners with standards for documentation and technical writing.
APPLY NOW
Top
X