Skip to main content
CIT308Sciences3 Unitsintermediate

Formal Methods and Software Development

This course introduces students to the fundamental concepts of Formal Methods and Software Development. It covers various aspects of formal methods, including specification, semantics, and verification techniques. The course also explores the software development lifecycle, project management, and software requirements. Students will learn about software design principles, testing methodologies, and maintenance strategies, equipping them with the knowledge to develop high-quality software systems.

Transform this course into personalized study materials with AI

156h
Study Time
13
Weeks
12h
Per Week
intermediate
Math Level
Course Keywords
Formal MethodsSoftware DevelopmentVerificationSpecificationSDLC

Course Overview

Everything you need to know about this course

Course Difficulty

Intermediate Level
Builds on foundational knowledge
65%
intermediate
📊
Math Level
Moderate Math
📖
Learning Type
Theoretical Focus

Course Topics

Key areas covered in this course

1

Formal Methods

2

Software Development Life Cycle

3

Software Project Management

4

Software Design

5

Software Testing

6

Software Maintenance

Total Topics6 topics

Requirements

Knowledge and skills recommended for success

CIT201: Introduction to Computer Science

MTH101: Elementary Mathematics

💡 Don't have all requirements? Don't worry! Many students successfully complete this course with basic preparation and dedication.

Assessment Methods

How your progress will be evaluated (3 methods)

assignments

Comprehensive evaluation of course material understanding

Written Assessment

tutor-marked assessments

Comprehensive evaluation of course material understanding

Written Assessment

final examination

Comprehensive evaluation of course material understanding

Written Assessment

Career Opportunities

Explore the career paths this course opens up for you

Software Engineer

Apply your skills in this growing field

Software Developer

Apply your skills in this growing field

Systems Analyst

Apply your skills in this growing field

Project Manager

Apply your skills in this growing field

Quality Assurance Engineer

Apply your skills in this growing field

Industry Applications

Real-world sectors where you can apply your knowledge

AerospaceHealthcareFinanceTelecommunicationsTransportation

Study Schedule Beta

A structured 13-week journey through the course content

Week
1

MODULE 1: AN OVERVIEW OF FORMAL METHODS AND SOFTWARE DEVELOPMENT

4h

Unit 1: General Information

2 study hours
  • Read the introduction to understand the importance of high-quality software.
  • Identify characteristics of high-quality software.
  • Understand the need for precision in software specification.

Unit 2: Approaches to formal methods and their use in software development

2 study hours
  • Define formal methods and their role in software development.
  • Explore different approaches to formal methods.
  • Understand the uses and applications of formal methods in software development.
Week
2

MODULE 2: FORMAL METHODS

3h

Unit 1: Introduction to Formal Methods

3 study hours
  • Review the background of formal methods.
  • Define formal methods and their advantages.
  • Understand the stages of formal methods and SDLC.
Week
3

MODULE 2: FORMAL METHODS

3h

Unit 2: Proposition

3 study hours
  • Define proposition and identify proposition operators.
  • Construct and interpret propositions.
  • Create truth tables to evaluate logical statements.
Week
4

MODULE 2: FORMAL METHODS

3h

Unit 3: Predicates

3 study hours
  • Understand predicates and their quantifiers.
  • Differentiate between bound and free variables.
  • Apply predicates in formal specifications.
Week
5

MODULE 2: FORMAL METHODS

3h

Unit 4: Sets

3 study hours
  • Define a set and its terminologies.
  • Differentiate between finite and infinite elements.
  • Perform operations on sets with examples.
Week
6

MODULE 2: FORMAL METHODS

3h

Unit 5: Series or Sequence

3 study hours
  • Define a sequence and its types.
  • Find a term in a given sequence.
  • Apply series and sequences in formal specifications.
Week
7

MODULE 3: FORMAL PROOFS AND APPLICATION

3h

Unit 1: Mathematical Proof

3 study hours
  • Discuss formal proof and its terminologies.
  • Explain the four proofing methods.
  • Apply mathematical proofs in formal specifications.
Week
8

MODULE 3: FORMAL PROOFS AND APPLICATION

3h

Unit 2: Testing

3 study hours
  • Outline stages in SDLC.
  • Identify the focus of validation and verification.
  • Discuss test plan and test cases.
Week
9

MODULE 3: FORMAL PROOFS AND APPLICATION

3h

Unit 3: Application to Formal Specification

3 study hours
  • Discuss the stages to apply formal methods.
  • Understand what to do at various stages.
  • Apply formal specifications in the SDLC.
Week
10

MODULE 3: FORMAL PROOFS AND APPLICATION

3h

Unit 4: Z Notation

3 study hours
  • Discuss terminologies used in Z notation.
  • Outline the various functions in Z notation.
  • Apply Z notation in formal specifications.
Week
11

MODULE 4: SOFTWARE DEVELOPMENT OVERVIEW

6h

Unit 1: Software Development and Software Engineering

3 study hours
  • Relate software development with engineering process.
  • State software evolution laws.
  • Discuss E-Type software evolution.

Unit 2: Software Development Life Cycle

3 study hours
  • List SDLC activities and explain them.
  • Explain the Software Development Paradigm.
  • Understand the need of Software Engineering.
Week
12

MODULE 4: SOFTWARE DEVELOPMENT OVERVIEW

6h

Unit 3: Software Project Management

3 study hours
  • Identify the characteristics of a software project.
  • Describe a software project.
  • Justify the need for software project management.

Unit 4: Software Requirements

3 study hours
  • List and explain the four steps in requirement engineering process.
  • Depict the requirement elicitation process with a diagram.
  • Mention software requirement characteristics.
Week
13

MODULE 5: OVERVIEW OF SOFTWARE DESIGN, ANALYSIS AND DESIGN TOOLS, DESIGN STRATEGIES AND USER INTERFACE BASICS

6h

Unit 1: Software Design Basics

3 study hours
  • Mention and describe the three levels of software design.
  • Discuss modularization and state its advantages.
  • Differentiate between cohesion and coupling.

Unit 2: Analysis and Design tools

3 study hours
  • Explain what data flow is and describe Logical and Physical DFD.
  • Describe the components of DFD with their symbols.
  • Differentiate between a data flow and control flow in a structure chart.

This study schedule is in beta and may not be accurate. Please use it as a guide and consult the course outline for the most accurate information.

Course PDF Material

Read the complete course material as provided by NOUN.

Access PDF Material

Study Tips & Exam Preparation

Expert tips to help you succeed in this course

1

Create concept maps linking Modules 1-3 formal methods concepts

2

Practice constructing truth tables from Units 2-3 weekly

3

Review SDLC diagrams from Units 4-6 and their relationships

4

Solve sample problems related to software design complexity from Module 6

5

Focus on key definitions and examples from all units

Related Courses

Other courses in Sciences that complement your learning