Advanced Software Engineering COMP319
49 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What is a key factor that influences the interpretation of the low birth weight paradox?

  • Low birth weight babies born to mothers who smoke have lower infant mortality. (correct)
  • Low birth weight is the only risk factor for infant mortality.
  • All low birth weight babies face the same risks.
  • Smoking during pregnancy increases infant mortality.
  • Which hypothesis would be tested when examining the effectiveness of pair programming?

  • Pair programming is ineffective in all scenarios.
  • Pair programming has a negative effect on productivity.
  • Pair programming is more effective than any other programming method.
  • There is no difference in productivity between pair programming and solo programming. (correct)
  • What should be considered when assessing performance in a software research context?

  • Only the number of lines of code produced.
  • Purely the time taken to complete the project.
  • The size of the development team alone.
  • The overall quality of the delivered software. (correct)
  • How did the gender bias at Harvard University manifest in the admissions data?

    <p>Men had a greater number of applications and a higher acceptance rate.</p> Signup and view all the answers

    What is a potential issue when using raw figures to compare software performance?

    <p>They do not account for the complexity of the projects.</p> Signup and view all the answers

    What is the percentage weight of the written examination in the assessment of this module?

    <p>80%</p> Signup and view all the answers

    Which of the following tools is suggested for Java development?

    <p>Eclipse</p> Signup and view all the answers

    What is one of the aims of the COMP319 module?

    <p>Assess research papers in software engineering</p> Signup and view all the answers

    Which of the following topics is NOT included in the contents of the module?

    <p>Data analysis techniques</p> Signup and view all the answers

    What is the focus of this advanced software engineering module?

    <p>Improving software production efficiency and understanding research</p> Signup and view all the answers

    What resource is suggested for source control?

    <p>GitHub</p> Signup and view all the answers

    Which of the following books is recommended for understanding Agile methodologies?

    <p>Learning Agile: Understanding Scrum, XP, Lean, and Kanban</p> Signup and view all the answers

    When are tutorials/seminars conducted for COMP319?

    <p>Once a week for 1 hour</p> Signup and view all the answers

    What type of failure does the crash of the Ariane 5 represent?

    <p>Catastrophic failure</p> Signup and view all the answers

    Which of the following is a characteristic of chronic failures?

    <p>Functionality problems</p> Signup and view all the answers

    In Theoretical Development Scenario 1, which factor is likely to lead to a successfully developed product?

    <p>Highly skilled coding team</p> Signup and view all the answers

    What was a major issue causing the delay in the rollout of the Pfizer COVID-19 vaccine in 2023?

    <p>Software glitch</p> Signup and view all the answers

    Which of the following are common indicators of project failure?

    <p>Project exceeding the budget</p> Signup and view all the answers

    What type of issue may impede the portability of code between platforms?

    <p>Poor web browser compatibility</p> Signup and view all the answers

    In Theoretical Development Scenario 2, low coding skills of the team may result in which outcome?

    <p>Code that is unsupportable</p> Signup and view all the answers

    What consequence can result from a project being incompletely developed?

    <p>Project will likely overrun budget</p> Signup and view all the answers

    What is a central focus of software engineering activities?

    <p>Requirements analysis</p> Signup and view all the answers

    What significant period was characterized by the software crisis in software engineering history?

    <p>1965 – 1985</p> Signup and view all the answers

    Which of the following is NOT considered a general engineering principle in software engineering?

    <p>Market positioning</p> Signup and view all the answers

    What was one of the consequences of the glitch that occurred on the Microsoft Azure platform?

    <p>Concerns about the safety and efficacy of the vaccine</p> Signup and view all the answers

    What is emphasized in current trends of software engineering?

    <p>Agile methodologies</p> Signup and view all the answers

    What does the software engineering definition from the NATO Science Committee emphasize?

    <p>The economic reliability and efficiency on real machines</p> Signup and view all the answers

    What percentage of projects in large companies are completed on time and on budget according to the Standish Chaos Report?

    <p>9%</p> Signup and view all the answers

    Which of the following is one of the activities included in software engineering?

    <p>Software testing and analysis</p> Signup and view all the answers

    Which factor contributes the most to project overruns according to the Standish CHAOS report findings?

    <p>Project Objectives Not Fully Specified</p> Signup and view all the answers

    What tool is commonly utilized in Agile methodologies within software engineering?

    <p>Scrum</p> Signup and view all the answers

    What was a successful project characterized by according to the findings from the Standish CHAOS report?

    <p>User involvement and executive support</p> Signup and view all the answers

    What challenge is associated with designing experiments in the context of software engineering?

    <p>All aspects of activities must be considered</p> Signup and view all the answers

    Which reason led to the cancellation of projects according to the Standish Chaos findings?

    <p>Unrealistic expectations</p> Signup and view all the answers

    What type of project is classified as 'Challenged' in the Standish project resolution types?

    <p>Projects over budget and incomplete features</p> Signup and view all the answers

    What role does user involvement play in project success based on the provided content?

    <p>It significantly contributes to project success.</p> Signup and view all the answers

    Which of the following was identified as a frequent reason for project failures according to the Standish report?

    <p>Insufficient resources</p> Signup and view all the answers

    Which statement is true about the performance of software projects from the Standish Chaos Report?

    <p>52.7% of projects cost more than initially estimated.</p> Signup and view all the answers

    What does the lack of clear project requirements often lead to in project management?

    <p>Project delays and cancellations</p> Signup and view all the answers

    How does the Chaos report define project failure?

    <p>1 out of 20 features incomplete</p> Signup and view all the answers

    What aspect can lead companies to estimate high timescales?

    <p>Over-resourcing the project</p> Signup and view all the answers

    What is the condition under which an Estimation Quality Factor (EQF) is considered very good?

    <p>EQF &gt; 10</p> Signup and view all the answers

    What was the average EQF reported, suggesting the quality of estimation in projects?

    <p>0.43</p> Signup and view all the answers

    What does the Chaos report suggest about the relationship between surplus budgets and project success?

    <p>Surplus budgets correlate with overestimating project timelines.</p> Signup and view all the answers

    What critical analysis should be applied when reviewing headline figures from reports?

    <p>Consider the cause of the results.</p> Signup and view all the answers

    What factor influences the definition of project success or failure?

    <p>Estimation skill</p> Signup and view all the answers

    What does a higher EQF indicate about a project's estimation?

    <p>It reflects better estimation.</p> Signup and view all the answers

    What could be a reason for the Chaos report's figures being considered meaningless?

    <p>They do not take EQF and bias into account.</p> Signup and view all the answers

    What does the term 'Boem’s cone of uncertainty' relate to?

    <p>Estimating the duration of projects.</p> Signup and view all the answers

    Study Notes

    Course Information

    • Course title: SOFTWARE ENGINEERING II
    • Course code: COMP319
    • Academic year: 2024-2025
    • Lecturer: Sebastian Coope
    • Lecturer email: [email protected]

    Delivery

    • Lectures: on-campus and online recorded
    • Tutorials/Seminars: 1 hour per week

    Installation

    • Install Eclipse for Java development (latest version)
    • Install AspectJ development tools via Eclipse
    • Use a source-control resource, like a GitHub account

    Assessment

    • 80% Written examination
    • 20% Object-Oriented (OO) pattern design programming assignment
    • Examination based on material from lectures and tutorials.

    Module Aims

    • Introduce advanced software engineering topics
    • Review and analyze research papers in software engineering
    • Focus on how to read and understand research in general and how to produce better software in a timely manner.

    Module Materials

    • Lecture notes
    • Selected research papers
    • Past exam papers and model answers
    • Tutorial sheets
    • No single recommended textbook, but resources should include research and advanced topics.
    • Java Design Pattern Essentials (ISBN 0956575803)
    • Learning Agile: Understanding Scrum, XP, Lean, and Kanban (ISBN 978-1449331924)
    • Actors: A Model of Concurrent Computation in Distributed Systems (ISBN 978-0262511414)

    Contents

    • Software engineering crisis
    • Software cost estimation and project management
    • Object-Oriented (OO) design patterns
    • Agile and eXtreme Programming (XP)
    • Concurrency and the Actor model
    • Dependency graphs and program slicing

    Software Engineering

    • Highly complex systems (many platforms, models, problems, large sizes)
    • Examples: iPhone, Android, PC, Linux, HTML5; Standalone, client-server, peer-to-peer; Artificial intelligence (AI) neural nets; Linux kernel (>10 million lines)

    Software Crisis and Failures

    • Catastrophic failures (e.g., Ariane 5 launch failure): 7 billion USD cost, caused by variable overflow in software.
    • Chronic failures: project overruns, functionality problems, poor performance, and poor quality code.

    Ways to Fail

    • Project incomplete
    • Project over budget
    • Project buggy
    • Project over schedule
    • Project does not fully deliver what is required
    • Code base unsupportable (badly written, inflexible)
    • Code doesn't port well between platforms (e.g., web browser compatibility)

    Theoretical Development Scenarios

    • Scenario 1: Imperfect specification, perfectly implemented and tested.
    • Scenario 2: Perfect specification, but low coding skills, fully implemented and tested.

    Failures 2023

    • Tesla Autopilot: Several high-profile crashes due to the Autopilot feature failing to detect obstacles (Washington Post, 17 fatal incidents).
    • Pfizer COVID-19 Vaccine rollout: Delayed in several countries due to software glitch affecting vaccine distribution tracking.

    Failures 2024 (July)

    • Microsoft Azure platform: Update released from Crowdstrike caused Windows PC blue screen of death, affecting airlines, medical centres, etc. This impacted global operations. Not an attack. Question: can systems be made less vulnerable?

    CNET Money

    • Used AI engine to write compound interest article
    • Example result: $10,000 deposited in a 3% annually compounding interest account will earn $10,300 in the first year.

    Limits of Language Models

    • ChatGPT does not understand the meaning of the words/sentences/paragraphs.
    • It uses statistical patterns from training data to generate text.

    Standish Chaos Report (US)

    • Comprehensive report on software development.
    • Average cost of projects (large, medium, small companies).
    • 31% of projects are cancelled before completion.
    • 52.7% cost 189% of original estimate.
    • 16.2% are completed on time and on budget.
    • For larger companies, only 9% are completed on time and on budget.
    • Project resolutions: successful, challenged, incomplete.

    Standish CHAOS Report Findings

    • Reasons for project overruns and failures.
    • Reasons for successful projects, e.g. user involvement, executive support, clear requirements, proper planning, etc.

    Reasons for Cancelled/Failed Projects

    • Detailed list of reasons for project cancellation/failure, percentages for each one.

    Standish Chaos in Perspective

    • Critiques of the Standish report; did it only look at bad news? What is the context and extent of the software crisis? How many systems in daily use? How would they be rated?

    Chaos Report Analyzed

    • Defining failure and overrun (e.g., incomplete features, delivery schedule).
    • Techniques for project delivery or estimation failure.

    Chaos Report Criticisms

    • Classification of incomplete projects.
    • Published data completeness (raw or not)
    • Measuring failure (forecast/actual).

    Estimation and Chaos Report

    • Success measured relative to initial estimate.
    • Companies sometimes underestimate (under-resourced, over-promised) or overestimate (over-resourced).

    Boem's Cone of Uncertainty

    • Graphical representation of uncertainty in project scheduling and various stages, e.g., initial product definition to accepted software.

    Project Success/Failure

    • Success or failure defined by context (budget, estimations, type of company).
    • Culture of sales-driven or development-driven estimations, estimation skills, development skills.

    Estimation Quality Factor (EQF)

    • Formal method for measuring how accurate estimations are.

    EQF Example

    • Calculating EQF and bias for a sample project data set and outcomes.

    Higher EQF Scores

    • Indicate better estimations.
    • EQF >10 is considered very good.

    Bias

    • Formula for calculating bias in project estimations (Bias = Mean(Estimator) - ActualValue).
    • Percentage for bias is (Mean(Estimator) - ActualValue)/ActualValue

    Things That Affect Estimations

    • Early estimations harder
    • Management pressure affecting estimations.
    • Inexperienced developers overestimate/underestimate
    • Poor design specifications
    • Poor quality specifications create issues, causing difficulty with estimation.

    In General

    • Negative or positive bias in estimations due to over-complex initial thought, mid-project specification changes, over-optimism(past experience, underestimate), risk-adverse project managers.

    Exercise

    • Calculate EQF and bias for 3 projects, and draw conclusions.
    • Project data sets given.

    Rise and Fall of the Chaos Report Figures

    • Determination of organizational performance relative to Chaos Report findings.
    • Data for projects over two years for 3 organizations, including EQF and other success metrics.

    Research and Critical Analysis

    • Warnings about headline figures, and considerations for research (cause of results, sample size, random outcomes).

    Exercise (Further)

    • Designing an experiment to test the effectiveness of pair-programming.
    • What is the null hypothesis of that experiment?

    Final Point on Using Statistics

    • Low birth weight paradox and explanations.
    • Babies born to mothers who smoked in pregnancy having lower infant mortality.

    Another Example

    • Harvard University gender bias application/admission rates data table.
    • The breakdown of this data.

    What's This To Do With Software Research?

    • Comparing software developers/teams/companies.
    • Are raw figures adequate? How performance is measured? How to measure the size of code?

    Engineering

    • Definition of engineering, based on the American Engineers' Council for Professional Development.

    Software Engineering

    • Definition of software engineering, with the focus on application of principles to design and develop software systems.

    Software Engineering History

    • Timeline of software engineering, with emphasis on:
      • Pioneer stage (1945-1965)
      • Software crisis (1965-1985) and related research areas.
      • Current stage (1985-today) and relevant research areas.

    Software Engineering

    • Quote from the NATO Science Committee, Fritz Bauer, explaining the principles of software engineering.

    General Engineering Principles

    • General engineering principles (specification, design, manufacture/implementation, quality control, testing, modification).

    Software Engineering Activities

    • Key activities in software engineering, including requirements analysis, software design/implementation, patterns, actor model, AOP, software testing and analysis, program slicing, software management (scheduling, quality assurance, workflow), etc.
    • Trends related to Agile; Test-driven development, good usage of software tools, better languages, incremental development, Scrum, improved estimation & project management.

    Summary

    • Designing experiments is difficult.
    • Context of activities is important in software engineering
    • Software engineering: a mixed bag of evidence for approaches.
    • Be skeptical of headline/summary results.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Test your knowledge on the key factors and methodologies in the Advanced Software Engineering COMP319 module. This quiz covers topics like pair programming, performance assessment, gender bias in admissions, and recommended resources for Agile practices. Prepare to dive deep into this essential area of software development education.

    More Like This

    Software Engineering Essentials Quiz
    12 questions
    Scrum and Agile Methodologies Quiz
    10 questions
    Use Quizgecko on...
    Browser
    Browser