<?xml version="1.0" encoding="UTF-8"?>
<CourseUnit xmlns="http://www.manchester.ac.uk/CUICourseUnitDetails" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.manchester.ac.uk/CUICourseUnitDetails.xsd">
  <UnitCode Applicant="Y" Label="Unit code" Student="Y">
    <Code>COMP43342</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Software Security</Title>
  </UnitTitle>
  <MaxUnits Applicant="Y" Label="Credit rating" Student="Y">
    <Units>15</Units>
  </MaxUnits>
  <TeachingPeriods Applicant="Y" Label="Teaching period(s)" Student="Y">
    <Period>Semester 2</Period>
  </TeachingPeriods>
  <AcademicCareer Applicant="Y" Label="Academic career" Student="Y">
    <Value>Undergraduate</Value>
  </AcademicCareer>
  <UnitLevel Applicant="Y" Label="Unit level" Student="Y">
    <Level>Level 4</Level>
  </UnitLevel>
  <StaffList Applicant="Y" Label="Teaching staff" RoleLabel="Course Unit Role" Student="Y">
    <StaffMember>
      <Name>Lucas Cordeiro</Name>
      <Role>Unit coordinator</Role>
    </StaffMember>
  </StaffList>
  <OfferedBy Applicant="Y" Label="Offered by" Student="Y">
    <OrganisationList>
      <Organisation>
        <OrgName></OrgName>
      </Organisation>
    </OrganisationList>
    <GroupList>
      <Group>
        <GroupName></GroupName>
      </Group>
    </GroupList>
    <FheqLevels>
      <FheqLevel>
        <LevelNumber>1</LevelNumber>
        <LevelName>FHEQ level (Framework for Higher Education Qualifications) ' Masters/Integrated Masters P4 ' </LevelName>
      </FheqLevel>
    </FheqLevels>
    <Ects>
      <MaxUnits>European Credit Transfer &amp; Accumulation System Rating :   7.5</MaxUnits>
    </Ects>
  </OfferedBy>
  <MarketingOverview Applicant="Y" Label="Marketing Course unit overview" Student="">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;Software is subject to numerous forms of attack such as memory corruption, buffer overflows and injection; these flaws are often too complex or expressive to be manually detected by the software developer. Techniques and tools exist to prevent and detect software flaws, which are typically too hard to be manually found, e.g., modelling, code reviews, fuzzing, static and dynamic code analyses, program verification and code tainting.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;This course unit introduces students to basic and advanced approaches to formally build verified trustworthy software systems, where trustworthy comprise five attributes: reliability, availability, safety, resilience and security.&lt;/span&gt;&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;Software is subject to numerous forms of attack such as memory corruption, buffer overflows and injection; these flaws are often too complex or expressive to be manually detected by the software developer. Techniques and tools exist to prevent and detect software flaws, which are typically too hard to be manually found, e.g., modelling, code reviews, fuzzing, static and dynamic code analyses, program verification and code tainting.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;This course unit introduces students to basic and advanced approaches to formally build verified trustworthy software systems, where trustworthy comprise five attributes: reliability, availability, safety, resilience and security.&lt;/span&gt;&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content></Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;On successful completion of this course unit, a student will be able to&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Explain computer security problem&lt;/strong&gt;&amp;nbsp;and why broken software lies at its heart.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Explain&lt;/strong&gt;&amp;nbsp;continuous&amp;nbsp;&lt;strong&gt;risk management&lt;/strong&gt;&amp;nbsp;and how to put it into practice to ensure software security.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Introduce security properties&lt;/strong&gt;&amp;nbsp;into the software&amp;nbsp;&lt;strong&gt;development lifecycle&lt;/strong&gt;.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Use software validation and verification techniques&lt;/strong&gt;&amp;nbsp;to detect software vulnerabilities and mitigate against them.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Relate security testing and verification to risk analysis&lt;/strong&gt;&amp;nbsp;to address continued resilience when a cyber-attack takes place.&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Develop case studies&lt;/strong&gt;&amp;nbsp;to think as an attacker and mitigate them using software verification and testing.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; line-height: 1.5; text-size-adjust: 100%; font-size: 16px; margin: var(--universal-margin); color: rgb(17, 17, 17);"&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </LearningOutcomes>
  <Knowledge Applicant="Y" Label="Knowledge and understanding" Student="Y">
    <Content></Content>
  </Knowledge>
  <IntellectualSkills Applicant="Y" Label="Intellectual skills" Student="Y">
    <Content></Content>
  </IntellectualSkills>
  <PracticalSkills Applicant="Y" Label="Practical skills" Student="Y">
    <Content></Content>
  </PracticalSkills>
  <TransferableSkills Applicant="Y" Label="Transferable skills and personal qualities" Student="Y">
    <Content></Content>
  </TransferableSkills>
  <EmployabilitySkillsList Applicant="Y" Label="Employability skills" Student="Y">
    <Skill>
      <SkillId></SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;Part I: Software Security Fundamentals&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Defining a Discipline&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;A Risk Management Framework&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Vulnerability Assessment and Management&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Overview on Traffic, Vulnerability and Malware Analysis&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Part II: Software Security&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Code Inspection for Finding Security Vulnerabilities and Exposures (ref: Mitre&amp;rsquo;s CVE)&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Architectural Risk Analysis&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Penetration Testing, Concolic Testing, Fuzzing, Automated Test Generation&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Model Checking, Abstract Interpretation, Symbolic Execution&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Risk-Based Security Testing and Verification&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Software Security Meets Security Operations&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Part III: Software Security Grows Up&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Withstanding adversarial tactics and techniques defined in Mitre&amp;rsquo;s ATT&amp;amp;CK&amp;trade; knowledge base&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;An Enterprise Software Security Program&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;ul&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Lectures&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Workshops&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Tutorials&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Labs/Practicals&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</Content>
  </TeachingMethods>
  <AssessmentMethods Applicant="Y" Label="Assessment methods" Student="Y">
    <IntroText> </IntroText>
    <Method>
      <MethodId>1</MethodId>
      <MethodName>Written exam</MethodName>
      <MethodWeight>30%</MethodWeight>
    </Method>
    <Method>
      <MethodId>2</MethodId>
      <MethodName>Written assignment (inc essay)</MethodName>
      <MethodWeight>70%</MethodWeight>
    </Method>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;ul&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Lectures&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Workshops&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Tutorials&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Labs/Practicals&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode></UnitCode>
      <UnitTitle></UnitTitle>
      <RequirementType></RequirementType>
      <Description></Description>
    </Requirement>
  </RequirementsList>
  <AcademicPrograms Applicant="Y" Label="Academic programmes" Student="Y">
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>MSc Adv Computer Science</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Optional</Requirement>
    </AcademicProgram>
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>Artificial Intelligence</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Optional</Requirement>
    </AcademicProgram>
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>Computer Security</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Mandatory</Requirement>
    </AcademicProgram>
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>Data and Knowledge Management</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Optional</Requirement>
    </AcademicProgram>
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>Digital Biology</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Optional</Requirement>
    </AcademicProgram>
  </AcademicPrograms>
  <FreeChoice Applicant="Y" Label="Available as a free choice unit?" Student="Y">
    <Content>N</Content>
  </FreeChoice>
  <Accreditation Applicant="Y" Label="Accreditation" Student="Y">
    <Content></Content>
  </Accreditation>
  <RecommendedReading Applicant="Y" Label="Recommended reading" Student="Y">
    <Content></Content>
  </RecommendedReading>
  <StudyHours Applicant="Y" Label="Study hours" Student="Y">
    <IntroText> </IntroText>
    <ScheduledHours Applicant="Y" Label="Scheduled activity hours" Student="Y">
      <ActivityHours>
        <ActivityType>Assessment written exam</ActivityType>
        <Hours>2</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>20</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Practical classes &amp; workshops</ActivityType>
        <Hours>20</Hours>
      </ActivityHours>
    </ScheduledHours>
    <PlacementHours Applicant="Y" Label="Placement hours" Student="Y">
      <ActivityHours>
        <ActivityType></ActivityType>
        <Hours></Hours>
      </ActivityHours>
    </PlacementHours>
    <TotalHours Applicant="Y" Label="Independent study hours" Student="Y">
      <Hours>108</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content></Content>
  </Notes>
</CourseUnit>
