Skip to main content
nounstudy
CIT831

Software Engineering Methodologies

  • Sciences
  • 800 level
  • 3 credit units
  • 156 pages
  • 29 units

This course introduces the basic principles of software engineering. It explores software engineering methodologies, including software processes and models. The course also covers professional and ethical responsibilities expected of software engineers. Students will learn about traditional software engineering process models, agile development methods, and requirements engineering processes. The course also covers system modeling and design, software testing, evolution, and maintenance.

About this course

Difficulty
Intermediate
Study hours
156 hours
Maths
Basic
Content
Theoretical, case study, problem solving
Practical work
No
Before you start
  • Basic Programming Concepts
  • Introduction to Computer Science
How it is assessed
  • Assignments
  • Tutor marked assessments
  • Final examination

One paragraph, so you can see how it reads

CIT831 · Unit 1: Software Engineering Methodology – Basic Notions

This module introduces you to the basic principles and notions of software engineering. We will discuss topics like software engineering methodology, including software process and software process models. You will also get to know the professional and ethical demands of a software engineer.

What you should be able to do

  1. Explain fundamental software engineering principles and methodologies.
  2. Apply ethical practices in software development.
  3. Analyze and select appropriate software process models for different projects.
  4. Elicit, analyze, and document software requirements effectively.
  5. Design and model software systems using various techniques.
  6. Implement software testing and validation strategies.
  7. Manage software evolution and maintenance processes.

What it prepares you for

Careers
  • Software Engineer
  • Software Developer
  • Systems Analyst
  • Software Architect
  • Quality Assurance Engineer
Where it is applied
  • Information Technology
  • Telecommunications
  • Finance
  • Healthcare
  • Education
Tools
  • UML Modeling Tools
  • Requirements Management Software
  • Testing Frameworks
  • Version Control Systems

Where it gets hard

The units students slow down on, and what makes each one heavy.

  • Module 3: Introduction

    Unit 3: Domain Requirements

    Domain requirements are specific to the application domain, making it difficult for software engineers without domain expertise to fully understand and capture them.

  • Module 5: System modeling

    Unit 2: Formal Methods

    Formal methods involve translating user requirements into mathematical expressions, which requires a strong foundation in mathematics and formal logic.

A suggested way through it

Suggested

13 weeks, about 42 hours in total. Yours will differ.

  1. Week 1Module 1: Introduction
    • Unit 1: Software Engineering Methodology – Basic Notions · 2 hours

      Define software engineering methodology.. Describe software engineering as a discipline.. Explain the concept of software and its types.. List and discuss the attributes of good software..

    • Unit 2: Professional and Ethical Responsibilities · 2 hours

      Describe the professional and ethical responsibilities of a software engineer.. Outline and explain the eight principles of IEEE-CS/ACM code of ethics.. Discuss areas of professional responsibility like confidentiality and intellectual property rights..

  2. Week 2Module 1: Introduction
    • Unit 3: Software Process · 2 hours

      Describe a software process and its importance.. Outline and describe the software process activities: specification, development, validation, and evolution.. Distinguish between software process and software engineering methodology..

    • Unit 4: Software Process Models · 2 hours

      Define software process model.. Explain the Waterfall model, its phases, and problems.. Distinguish between the Waterfall model and the V-Model, including applications and disadvantages..

  3. Week 3Module 1: Introduction
    • Unit 5: Evolutionary and Incremental Development · 2 hours

      Describe the objectives of evolutionary development.. Discuss the problems and applications of evolutionary development.. Outline the advantages of incremental development..

  4. Week 4Module 2: Introduction To Software Engineering Methodology
    • Unit 1: Prototyping · 2 hours

      Describe the prototyping model and its benefits.. Understand the problems associated with prototyping.. Identify situations where prototyping is most applicable..

    • Unit 2: Spiral Development · 2 hours

      Describe the spiral development process.. Discuss the advantages and problems of the spiral model.. Explain how the spiral model incorporates risk analysis..

  5. Week 5Module 2: Introduction To Software Engineering Methodology
    • Unit 3: Agile Development Methods · 3 hours

      Define Agile software development method.. Understand the differences between Agile and plan-based methods.. List the characteristics of Agile methods and their applications.. Understand the Agile Manifesto and its principles..

  6. Week 6Module 2: Introduction To Software Engineering Methodology
    • Unit 4: Extreme Programming · 3 hours

      Discuss Extreme Programming (XP) as an agile method.. List and explain the techniques of extreme programming: User Stories, Refactoring, Test-First Development, and Pair Programming.. Understand the criticisms of Extreme Programming..

  7. Week 7Module 2: Introduction To Software Engineering Methodology
    • Unit 5: The Dynamic System Development Method (DSDM) · 3 hours

      Discuss the Dynamic System Development Method (DSDM) as an agile method.. List the phases of the DSDM lifecycle and explain the DSDM principles.. Explain the techniques of the DSDM and identify the individual roles in the DSDM..

  8. Week 8Module 3: Introduction
    • Unit 1: Requirements · 3 hours

      Define requirements engineering and a requirement.. Explain requirements imprecision and list the types of requirements: User, System, Functional, Non-Functional, and Domain.. Understand requirements completeness and consistency..

  9. Week 9Module 3: Introduction
    • Unit 2: Functional and Non-Functional Requirements · 3 hours

      Describe functional requirements and give examples.. Describe non-functional requirements and their classifications.. Understand the problems associated with non-functional requirements and how to measure them..

  10. Week 10Module 3: Introduction
    • Unit 3: Domain Requirements · 3 hours

      Explain domain requirements and give examples.. State the problems associated with domain requirements: understandability and implicitness.. Discuss the challenges software engineers face in capturing domain requirements..

  11. Week 11Module 3: Introduction
    • Unit 4: Requirements Design and Writing · 3 hours

      List guidelines for writing requirements.. Explain system requirements and describe the requirements document.. Understand the IEEE requirement standard.. Differentiate between user requirements and system requirements..

  12. Week 12Module 3: Introduction
    • Unit 5: Requirement Elicitation and Analysis · 3 hours

      Describe requirements engineering processes.. Explain requirements elicitation and its processes.. Discuss the challenges of requirements elicitation..

  13. Week 13Final Revision
    • Final Revision · 4 hours

      Review all modules and units.. Work on assignments and TMAs.. Prepare for final examinations..

Preparing for the exam

What to do
  • Review all module introductions to understand key concepts.
  • Create concept maps linking software development lifecycle stages.
  • Practice answering self-assessment exercises at the end of each unit.
  • Focus on understanding the differences between software process models.
  • Study the IEEE/ACM code of ethics for software engineers.
  • Review examples of functional and non-functional requirements.
  • Practice drawing data flow diagrams for different scenarios.
  • Understand the principles of agile development and extreme programming.
  • Review past TMAs and identify areas of weakness.
  • Allocate time for thorough revision of all course materials.

Questions students ask about this course

What is CIT831 about?

This course introduces the basic principles of software engineering. It explores software engineering methodologies, including software processes and models. The course also covers professional and ethical responsibilities expected of software engineers. Students will learn about traditional software engineering process models, agile development methods, and requirements engineering processes. The course also covers system modeling and design, software testing, evolution, and maintenance.

How many units does CIT831 have?

CIT831, Software Engineering Methodologies, has 29 units across 6 modules, over 156 pages of course material. You can read it one unit at a time.

How many credit units is CIT831?

CIT831 carries 3 credit units, at 800 level in Sciences.

Is CIT831 hard?

CIT831 is rated intermediate level, with basic mathematical content. It is mostly theoretical, case study and problem solving work.

How long does CIT831 take to study?

About 156 hours of study, spread across its 29 units.

How is CIT831 assessed?

CIT831 is assessed by assignments, tutor marked assessments and final examination.

What do I need before starting CIT831?

Basic Programming Concepts Introduction to Computer Science

What can I do with CIT831?

Software Engineer, Software Developer, Systems Analyst, Software Architect and Quality Assurance Engineer.

More courses in Sciences

CIT802

Technical Report Writing

3 credit units

Open CIT802
CIT855

Advanced Cyber Security

3 credit units

Open CIT855
CIT851

Advanced Systems Analysis And Design

3 credit units

Open CIT851