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. (A)</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. (A)</p> Signup and view all the answers

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

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

    Which of the following tools is suggested for Java development?

    <p>Eclipse (A)</p> Signup and view all the answers

    What is one of the aims of the COMP319 module?

    <p>Assess research papers in software engineering (B)</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 (D)</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 (A)</p> Signup and view all the answers

    What resource is suggested for source control?

    <p>GitHub (A)</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 (D)</p> Signup and view all the answers

    When are tutorials/seminars conducted for COMP319?

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

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

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

    Which of the following is a characteristic of chronic failures?

    <p>Functionality problems (C)</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 (D)</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 (A)</p> Signup and view all the answers

    Which of the following are common indicators of project failure?

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

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

    <p>Poor web browser compatibility (D)</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 (B)</p> Signup and view all the answers

    What consequence can result from a project being incompletely developed?

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

    What is a central focus of software engineering activities?

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

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

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

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

    <p>Market positioning (B)</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 (D)</p> Signup and view all the answers

    What is emphasized in current trends of software engineering?

    <p>Agile methodologies (A)</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 (B)</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% (D)</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 (B)</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 (B)</p> Signup and view all the answers

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

    <p>Scrum (A)</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 (B)</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 (A)</p> Signup and view all the answers

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

    <p>Unrealistic expectations (A)</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 (A)</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. (B)</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 (A)</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. (B)</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 (B)</p> Signup and view all the answers

    How does the Chaos report define project failure?

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

    What aspect can lead companies to estimate high timescales?

    <p>Over-resourcing the project (C)</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 (A)</p> Signup and view all the answers

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

    <p>0.43 (C)</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. (B)</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. (C)</p> Signup and view all the answers

    What factor influences the definition of project success or failure?

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

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

    <p>It reflects better estimation. (D)</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. (D)</p> Signup and view all the answers

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

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

    Flashcards

    Software Engineering Crisis

    A state in the software development industry where projects are often over budget, behind schedule, and fail to meet user expectations.

    Software Cost Estimation

    The process of estimating the time, resources, and cost required to complete a software project.

    OO Design Patterns

    A standardized solution to a common problem in software design, offering a reusable, well-tested approach.

    XP (Extreme Programming)

    A software development methodology that emphasizes iterative development, collaboration, and customer feedback.

    Signup and view all the flashcards

    Agile

    A collection of methodologies and practices that focus on delivering value to customers through iterative and incremental development.

    Signup and view all the flashcards

    Actor Model

    A model of concurrent computation where independent actors communicate through messages, ensuring efficient and scalable parallel processing.

    Signup and view all the flashcards

    Dependency Graphs

    A graphical representation of dependencies between different parts of a software system, aiding in understanding code structure and managing changes.

    Signup and view all the flashcards

    Program Slicing

    A technique that isolates a specific portion of code related to a particular functionality, simplifying analysis and debugging.

    Signup and view all the flashcards

    Catastrophic Software Failure

    When a software system completely fails to meet its intended purpose, resulting in significant consequences, often financial, safety, or operational.

    Signup and view all the flashcards

    Chronic Software Failures

    Software failures that occur repeatedly, hindering project progress and negatively impacting the final product. These may include exceeding budget, deadlines, or lacking functionality as intended.

    Signup and view all the flashcards

    Project Over Time Schedule

    A software project failing to be completed within the allocated time frame.

    Signup and view all the flashcards

    Project Over Budget

    A software project that exceeds its allocated budget.

    Signup and view all the flashcards

    Project is Buggy

    A software system where the final product is not fully functional as intended, containing bugs or missing features.

    Signup and view all the flashcards

    Code Base is Unsupportable

    The software's codebase is poorly written, making it challenging to maintain, modify, or understand. It may lead to difficulties adding new features or fixing bugs.

    Signup and view all the flashcards

    Code Doesn't Port Well Between Platforms

    Software that doesn't work as expected across different platforms, such as web browsers, operating systems, or devices.

    Signup and view all the flashcards

    Project Doesn't Fully Deliver

    The final software product is not meeting the requirements outlined in the original specification. It might lack promised features or functionalities.

    Signup and view all the flashcards

    Null Hypothesis

    A hypothesis that assumes no relationship or effect exists between variables being studied.

    Signup and view all the flashcards

    Alternative Hypothesis

    A statement that predicts a relationship or effect between variables being investigated.

    Signup and view all the flashcards

    Sample Size

    The number of individuals or data points included in a study or experiment.

    Signup and view all the flashcards

    Simpson's Paradox

    The tendency for certain groups of people to have different experiences or outcomes despite similar characteristics.

    Signup and view all the flashcards

    Observer Bias

    The act of manipulating or influencing the outcome of an experiment due to the observer's knowledge of the experimental conditions.

    Signup and view all the flashcards

    Project Cancellation

    A situation where a software project is canceled before completion, often due to issues like unclear requirements, poor planning, or inadequate resources.

    Signup and view all the flashcards

    User Involvement

    The process of actively involving users in the software development process to ensure their needs and expectations are met.

    Signup and view all the flashcards

    System Resilience

    The ability of software systems to withstand unexpected failures or attacks without causing significant disruptions.

    Signup and view all the flashcards

    Language Model

    A language model is a type of AI that can generate text, translate languages, write different kinds of creative content, and answer your questions in an informative way.

    Signup and view all the flashcards

    Software Failure

    An event that causes a significant disruption or failure in a system, often leading to unexpected consequences.

    Signup and view all the flashcards

    Project Success Rate

    The proportion of software projects that are completed successfully, meeting both budget and deadline constraints.

    Signup and view all the flashcards

    Software Appraisal

    The process of thoroughly assessing and evaluating the quality and effectiveness of a software system.

    Signup and view all the flashcards

    Statistical Text Generation

    A technique that uses statistical patterns learned from large datasets to generate text that appears similar to human-written text.

    Signup and view all the flashcards

    Project Failure Reasons

    Factors that contribute to the failure of software projects, such as unclear requirements, poor planning, and inadequate resources.

    Signup and view all the flashcards

    System Robustness

    The ability of a software system to function reliably despite changes in its operating environment or user requirements.

    Signup and view all the flashcards

    Estimation Quality Factor (EQF)

    A metric that measures the accuracy of software project estimations. It is calculated as the inverse of the average deviation between estimated and actual project durations. A higher score indicates better estimation accuracy.

    Signup and view all the flashcards

    Boehm's Cone of Uncertainty

    The idea that the accuracy of project estimations decreases as the project progresses. The uncertainty about the project scope, requirements, and potential risks increases over time.

    Signup and view all the flashcards

    Estimation Bias

    The practice of intentionally underestimating project durations or overestimating available resources to increase the likelihood of project success or meeting deadlines.

    Signup and view all the flashcards

    Project Success and Failure

    A measure of how successful a software project is, taking into account factors like cost, schedule, and functionality. Success can be defined differently depending on the context and company culture.

    Signup and view all the flashcards

    Estimation Skill

    The ability of a company to accurately assess and predict the time, resources, and effort required to complete a software project.

    Signup and view all the flashcards

    Software Crisis

    A critical analysis of the software development industry's challenges and shortcomings, highlighting issues with project management, estimations, and delivery.

    Signup and view all the flashcards

    Chaos Report

    A report that analyzes the success and failure rates of software projects. While valuable, it has faced criticism for its methodology and interpretation of data.

    Signup and view all the flashcards

    Estimation Manipulation

    The practice of making intentional adjustments to project estimations, often to make projects appear more achievable or to ensure meeting deadlines.

    Signup and view all the flashcards

    Risk Assessment

    The ability to understand the risks and challenges associated with a software project and to plan accordingly. It is essential for making informed decisions and minimizing potential failures.

    Signup and view all the flashcards

    Software Engineering

    The creative application of scientific principles to design or develop software systems.

    Signup and view all the flashcards

    Software Engineering Principles

    A collection of principles, practices, and methodologies that guide software development, aiming for reliable, efficient, and cost-effective software.

    Signup and view all the flashcards

    Requirements Analysis

    The stage where software engineers understand the requirements of a system, defining what the software should do.

    Signup and view all the flashcards

    Software Design/Implementation

    The process of translating requirements into a concrete design, detailing how the software will be built.

    Signup and view all the flashcards

    Software Testing and Analysis

    Verifying that the software meets the requirements and functions as intended, eliminating errors and improving quality.

    Signup and view all the flashcards

    Software Management

    Managing the development process effectively, including scheduling, quality assurance, and workflow.

    Signup and view all the flashcards

    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

    Use Quizgecko on...
    Browser
    Browser