Skip to main content
nounstudy
CIT308

Formal Methods and Software Development

  • Sciences
  • 300 level
  • 3 credit units
  • 243 pages
  • 23 units

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.

About this course

Difficulty
Intermediate
Study hours
156 hours
Maths
Intermediate
Content
Theoretical, practical
Practical work
No
Before you start
  • CIT201: Introduction to Computer Science
  • MTH101: Elementary Mathematics
How it is assessed
  • Assignments
  • Tutor marked assessments
  • Final examination

One paragraph, so you can see how it reads

CIT308 · MODULE 1: AN OVERVIEW OF FORMAL METHODS AND SOFTWARE DEVELOPMENT

Software development is a vital activity in modern society, and is likely to have increasing significance in the future. Software manages our bank accounts, pays our salaries, controls the aircraft we fly in, regulates power generation and distribution, controls our communications, etc. Hence, such software should integrate certain characteristics that guarantee accuracy and precision.

What you should be able to do

  1. Apply formal methods in software development
  2. Understand the software development lifecycle
  3. Manage software projects effectively
  4. Design software systems
  5. Test software thoroughly

What it prepares you for

Careers
  • Software Engineer
  • Software Developer
  • Systems Analyst
  • Project Manager
  • Quality Assurance Engineer
Where it is applied
  • Aerospace
  • Healthcare
  • Finance
  • Telecommunications
  • Transportation
Tools
  • Z notation
  • VDM
  • OBJ
  • Statecharts
  • UML
  • CASE tools

Where it gets hard

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

  • MODULE 2: FORMAL METHODS

    Unit 2: Proposition

    Requires strong understanding of mathematical logic and truth tables to construct and interpret complex propositions effectively.

  • MODULE 3: FORMAL PROOFS AND APPLICATION

    Unit 1: Mathematical Proof

    Requires advanced mathematical reasoning and the ability to apply different proofing methods to validate formal specifications.

A suggested way through it

Suggested

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

  1. Week 1MODULE 1: AN OVERVIEW OF FORMAL METHODS AND SOFTWARE DEVELOPMENT
    • Unit 1: General Information · 2 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 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..

  2. Week 2MODULE 2: FORMAL METHODS
    • Unit 1: Introduction to Formal Methods · 3 hours

      Review the background of formal methods.. Define formal methods and their advantages.. Understand the stages of formal methods and SDLC..

  3. Week 3MODULE 2: FORMAL METHODS
    • Unit 2: Proposition · 3 hours

      Define proposition and identify proposition operators.. Construct and interpret propositions.. Create truth tables to evaluate logical statements..

  4. Week 4MODULE 2: FORMAL METHODS
    • Unit 3: Predicates · 3 hours

      Understand predicates and their quantifiers.. Differentiate between bound and free variables.. Apply predicates in formal specifications..

  5. Week 5MODULE 2: FORMAL METHODS
    • Unit 4: Sets · 3 hours

      Define a set and its terminologies.. Differentiate between finite and infinite elements.. Perform operations on sets with examples..

  6. Week 6MODULE 2: FORMAL METHODS
    • Unit 5: Series or Sequence · 3 hours

      Define a sequence and its types.. Find a term in a given sequence.. Apply series and sequences in formal specifications..

  7. Week 7MODULE 3: FORMAL PROOFS AND APPLICATION
    • Unit 1: Mathematical Proof · 3 hours

      Discuss formal proof and its terminologies.. Explain the four proofing methods.. Apply mathematical proofs in formal specifications..

  8. Week 8MODULE 3: FORMAL PROOFS AND APPLICATION
    • Unit 2: Testing · 3 hours

      Outline stages in SDLC.. Identify the focus of validation and verification.. Discuss test plan and test cases..

  9. Week 9MODULE 3: FORMAL PROOFS AND APPLICATION
    • Unit 3: Application to Formal Specification · 3 hours

      Discuss the stages to apply formal methods.. Understand what to do at various stages.. Apply formal specifications in the SDLC..

  10. Week 10MODULE 3: FORMAL PROOFS AND APPLICATION
    • Unit 4: Z Notation · 3 hours

      Discuss terminologies used in Z notation.. Outline the various functions in Z notation.. Apply Z notation in formal specifications..

  11. Week 11MODULE 4: SOFTWARE DEVELOPMENT OVERVIEW
    • Unit 1: Software Development and Software Engineering · 3 hours

      Relate software development with engineering process.. State software evolution laws.. Discuss E-Type software evolution..

    • Unit 2: Software Development Life Cycle · 3 hours

      List SDLC activities and explain them.. Explain the Software Development Paradigm.. Understand the need of Software Engineering..

  12. Week 12MODULE 4: SOFTWARE DEVELOPMENT OVERVIEW
    • Unit 3: Software Project Management · 3 hours

      Identify the characteristics of a software project.. Describe a software project.. Justify the need for software project management..

    • Unit 4: Software Requirements · 3 hours

      List and explain the four steps in requirement engineering process.. Depict the requirement elicitation process with a diagram.. Mention software requirement characteristics..

  13. Week 13MODULE 5: OVERVIEW OF SOFTWARE DESIGN, ANALYSIS AND DESIGN TOOLS, DESIGN STRATEGIES AND USER INTERFACE BASICS
    • Unit 1: Software Design Basics · 3 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 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..

Preparing for the exam

What to do
  • Create concept maps linking Modules 1-3 formal methods concepts
  • Practice constructing truth tables from Units 2-3 weekly
  • Review SDLC diagrams from Units 4-6 and their relationships
  • Solve sample problems related to software design complexity from Module 6
  • Focus on key definitions and examples from all units

Questions students ask about this course

What is CIT308 about?

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.

How many units does CIT308 have?

CIT308, Formal Methods and Software Development, has 23 units across 6 modules, over 243 pages of course material. You can read it one unit at a time.

How many credit units is CIT308?

CIT308 carries 3 credit units, at 300 level in Sciences.

Is CIT308 hard?

CIT308 is rated intermediate level, with intermediate mathematical content. It is mostly theoretical and practical work.

How long does CIT308 take to study?

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

How is CIT308 assessed?

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

What do I need before starting CIT308?

CIT201: Introduction to Computer Science MTH101: Elementary Mathematics

What can I do with CIT308?

Software Engineer, Software Developer, Systems Analyst, Project Manager and Quality Assurance Engineer.

More courses in Sciences

CHM391

Practical Chemistry V- Inorganic And Analytical

2 credit units

Open CHM391
ESM341

Introduction To Instrumentation Measurement And Field Methods In Environmental Science

2 credit units

Open ESM341
EMT326

Oceanography

2 credit units

Open EMT326