
Developing Semantics-Driven Software Specifications
Inquiry Framework
Question Framework
Driving Question
The overarching question that guides the entire project.How can we leverage semantics and formal methods to develop precise, reliable, and verifiable software specifications that enhance the software development process?Essential Questions
Supporting questions that break down major concepts.- What is the role of semantics in software specification?
- How do propositional and predicate logic contribute to formal modelling?
- What are the key principles of formal modelling and their practical applications in software development?
- How can automatons and formal languages be used to enhance software decidability and verification?
- What methods exist for ensuring the accuracy and reliability of software specifications?
- How does formal semantics aid in the process of software verification and validation?
- What tools and techniques are available for creating semantics-driven software specifications?
- How does understanding formal methods impact the efficiency of software development processes?
Standards & Learning Goals
Learning Goals
By the end of this project, students will be able to:- Understand the role of semantics in developing software specifications.
- Apply propositional and predicate logic to create formal models in software development.
- Learn to utilize automatons and formal languages for software decidability and verification.
- Explore methods for ensuring accurate and reliable software specifications.
- Leverage formal semantics to aid software verification and validation processes.
- Use tools and techniques to create semantics-driven software specifications.
- Understand the impact of formal methods on the efficiency of software development.
Common Core Standards
Next Generation Science Standards
Entry Events
Events that will be used to introduce the project to studentsThe Language of Machines
Kickstart the project with a tour of the university's robotics or computer lab where advanced AI projects are taking place. Allow students to interact with these machines, encourage observation of the systems' 'behavior,' and prompt them to consider how semantics driven-specifications could play a role in improving their interaction. This hands-on experience will form the baseline inquiry into semantics and formal methods.Mystery Code Challenge
Provide students with a piece of 'mystery code' followed by glimpses of its unexpected consequences or bugs. Challenge them to diagnose the errors and consider how a semantics-driven specification might prevent such issues. This challenge will immediately engage students in the relevance and necessity of semantics-focused software specifications.Portfolio Activities
Portfolio Activities
These activities progressively build towards your learning goals, with each submission contributing to the student's final portfolio.Semantics and Logic Unpacked
Students work collaboratively to explore the foundational theories of semantics and logic as they apply to software specifications. This activity helps students gain a deeper understanding of the essential principles, linking the formal knowledge from their coursework to practical semantics-driven challenges.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA group presentation linking theoretical concepts of semantics and logic to real-world software specification examples.Alignment
How this activity aligns with the learning objectives & standardsAligns with CCSS.MATH.PRACTICE.MP2 by reason abstractly about semantics.Formal Modelling Workshop
Students apply formal modelling techniques using mathematical concepts to create a simplified software specification. This hands-on experience aims to strengthen studentsโ understanding of how mathematics is fundamental in modelling software specifications.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityMathematical models and a reflection paper highlighting their decisions and applications.Alignment
How this activity aligns with the learning objectives & standardsAligns with CCSS.MATH.PRACTICE.MP4 by demonstrating how to model with mathematics in software specification.Automatons in Action
Explore the use of automatons and formal languages in enhancing software reliability and verification. Students will create a basic automaton to solve a specific software problem, expanding their knowledge of how these tools aid in software development.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA functioning automaton designed to address a specific software problem.Alignment
How this activity aligns with the learning objectives & standardsAligns with NGSS.ETS1.A as students define and solve software specification problems using formal methods.Practical Semantics-driven Specification
In this culminating project, students use their skills to draft a comprehensive semantics-driven specification for a chosen software system. This involves crafting precise syntax and semantics definitions to ensure reliability and validate design decisions.Steps
Here is some basic scaffolding to help students complete the activity.Final Product
What students will submit as the final product of the activityA comprehensive semantics-driven specification document for a chosen software system.Alignment
How this activity aligns with the learning objectives & standardsAligns with CCSS.ELA-LITERACY.RST.11-12.3 as students follow complex procedures to create precise technical documents.Rubric & Reflection
Portfolio Rubric
Grading criteria for assessing the overall project portfolioSemantics-driven Software Specification Rubric
Understanding of Semantics and Logic
Assesses the students' comprehension of semantics-driven software specifications and the role of logic in their development.Conceptual Clarity
The depth of understanding of semantics and logic principles as applied to software specifications.
Exemplary
4 PointsDemonstrates a sophisticated and thorough understanding of semantics and logic principles, with clear connections to their application in software specifications.
Proficient
3 PointsShows a comprehensive and accurate understanding of semantics and logic principles, with appropriate application in software specifications.
Developing
2 PointsExhibits an emerging understanding of semantics and logic principles, with some connections to software specifications.
Beginning
1 PointsShows initial understanding with minimal connection to semantics and logic principles in software specifications.
Application of Logic
Assesses students' ability to apply propositional and predicate logic to solve software specification problems.
Exemplary
4 PointsApplies logic with exceptional accuracy and creativity, solving complex specification problems adeptly.
Proficient
3 PointsApplies logic accurately to solve software specification problems, demonstrating clear reasoning.
Developing
2 PointsApplies logic inconsistently, showing some understanding but difficulty in reasoning accurately.
Beginning
1 PointsStruggles to apply logic correctly, with limited reasoning shown in software specification tasks.
Modelling and Specification Development
Evaluates the application of formal modelling techniques and creation of software specifications.Mathematical Modelling
Skills in using mathematics to model software systems accurately.
Exemplary
4 PointsDemonstrates exceptional skill in mathematical modelling, with precise and innovative solutions.
Proficient
3 PointsShows competent ability in modelling software systems accurately using mathematics.
Developing
2 PointsExhibits basic understanding and application of mathematical modelling, with varied accuracy.
Beginning
1 PointsStruggles with mathematical modelling, showing inaccuracies and basic understanding.
Specification Clarity and Precision
The precision and clarity of the developed semantics-driven software specifications.
Exemplary
4 PointsProduces exceptionally clear and precise specifications with comprehensive detail and understanding of semantics.
Proficient
3 PointsCreates clear and precise software specifications with appropriate use of semantics.
Developing
2 PointsProduces specifications with emerging clarity and precision, but some semantic details may be lacking.
Beginning
1 PointsDevelops basic specifications with limited clarity and precision, struggling with semantic accuracy.
Collaborative and Reflective Practices
Assesses students' ability to work collaboratively and reflect on their learning and application of concepts.Collaboration
Evaluation of teamwork, communication, and collective problem-solving in software specification tasks.
Exemplary
4 PointsDemonstrates leadership and exceptional collaborative skills, effectively contributing to team goals and integrating input from others.
Proficient
3 PointsWorks effectively within a team, contributing ideas and solutions to achieve shared goals.
Developing
2 PointsShows developing team skills, participating in discussions and contributing some ideas.
Beginning
1 PointsParticipates minimally in group activities, limited contribution and communication.
Reflective Thinking
The ability to critically reflect on learning experiences and incorporate feedback to improve practice.
Exemplary
4 PointsEngages in deep reflective practice, incorporating feedback skilfully and showing insights into their learning process.
Proficient
3 PointsReflects effectively on experiences, using feedback to inform and improve practice.
Developing
2 PointsShows emerging reflective skills, considering feedback with some integration into practice.
Beginning
1 PointsEngages in minimal reflection, with limited consideration of feedback or its integration.