Podcast
Questions and Answers
What is a key factor that influences the interpretation of the low birth weight paradox?
What is a key factor that influences the interpretation of the low birth weight paradox?
Which hypothesis would be tested when examining the effectiveness of pair programming?
Which hypothesis would be tested when examining the effectiveness of pair programming?
What should be considered when assessing performance in a software research context?
What should be considered when assessing performance in a software research context?
How did the gender bias at Harvard University manifest in the admissions data?
How did the gender bias at Harvard University manifest in the admissions data?
Signup and view all the answers
What is a potential issue when using raw figures to compare software performance?
What is a potential issue when using raw figures to compare software performance?
Signup and view all the answers
What is the percentage weight of the written examination in the assessment of this module?
What is the percentage weight of the written examination in the assessment of this module?
Signup and view all the answers
Which of the following tools is suggested for Java development?
Which of the following tools is suggested for Java development?
Signup and view all the answers
What is one of the aims of the COMP319 module?
What is one of the aims of the COMP319 module?
Signup and view all the answers
Which of the following topics is NOT included in the contents of the module?
Which of the following topics is NOT included in the contents of the module?
Signup and view all the answers
What is the focus of this advanced software engineering module?
What is the focus of this advanced software engineering module?
Signup and view all the answers
What resource is suggested for source control?
What resource is suggested for source control?
Signup and view all the answers
Which of the following books is recommended for understanding Agile methodologies?
Which of the following books is recommended for understanding Agile methodologies?
Signup and view all the answers
When are tutorials/seminars conducted for COMP319?
When are tutorials/seminars conducted for COMP319?
Signup and view all the answers
What type of failure does the crash of the Ariane 5 represent?
What type of failure does the crash of the Ariane 5 represent?
Signup and view all the answers
Which of the following is a characteristic of chronic failures?
Which of the following is a characteristic of chronic failures?
Signup and view all the answers
In Theoretical Development Scenario 1, which factor is likely to lead to a successfully developed product?
In Theoretical Development Scenario 1, which factor is likely to lead to a successfully developed product?
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?
What was a major issue causing the delay in the rollout of the Pfizer COVID-19 vaccine in 2023?
Signup and view all the answers
Which of the following are common indicators of project failure?
Which of the following are common indicators of project failure?
Signup and view all the answers
What type of issue may impede the portability of code between platforms?
What type of issue may impede the portability of code between platforms?
Signup and view all the answers
In Theoretical Development Scenario 2, low coding skills of the team may result in which outcome?
In Theoretical Development Scenario 2, low coding skills of the team may result in which outcome?
Signup and view all the answers
What consequence can result from a project being incompletely developed?
What consequence can result from a project being incompletely developed?
Signup and view all the answers
What is a central focus of software engineering activities?
What is a central focus of software engineering activities?
Signup and view all the answers
What significant period was characterized by the software crisis in software engineering history?
What significant period was characterized by the software crisis in software engineering history?
Signup and view all the answers
Which of the following is NOT considered a general engineering principle in software engineering?
Which of the following is NOT considered a general engineering principle in software engineering?
Signup and view all the answers
What was one of the consequences of the glitch that occurred on the Microsoft Azure platform?
What was one of the consequences of the glitch that occurred on the Microsoft Azure platform?
Signup and view all the answers
What is emphasized in current trends of software engineering?
What is emphasized in current trends of software engineering?
Signup and view all the answers
What does the software engineering definition from the NATO Science Committee emphasize?
What does the software engineering definition from the NATO Science Committee emphasize?
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?
What percentage of projects in large companies are completed on time and on budget according to the Standish Chaos Report?
Signup and view all the answers
Which of the following is one of the activities included in software engineering?
Which of the following is one of the activities included in software engineering?
Signup and view all the answers
Which factor contributes the most to project overruns according to the Standish CHAOS report findings?
Which factor contributes the most to project overruns according to the Standish CHAOS report findings?
Signup and view all the answers
What tool is commonly utilized in Agile methodologies within software engineering?
What tool is commonly utilized in Agile methodologies within software engineering?
Signup and view all the answers
What was a successful project characterized by according to the findings from the Standish CHAOS report?
What was a successful project characterized by according to the findings from the Standish CHAOS report?
Signup and view all the answers
What challenge is associated with designing experiments in the context of software engineering?
What challenge is associated with designing experiments in the context of software engineering?
Signup and view all the answers
Which reason led to the cancellation of projects according to the Standish Chaos findings?
Which reason led to the cancellation of projects according to the Standish Chaos findings?
Signup and view all the answers
What type of project is classified as 'Challenged' in the Standish project resolution types?
What type of project is classified as 'Challenged' in the Standish project resolution types?
Signup and view all the answers
What role does user involvement play in project success based on the provided content?
What role does user involvement play in project success based on the provided content?
Signup and view all the answers
Which of the following was identified as a frequent reason for project failures according to the Standish report?
Which of the following was identified as a frequent reason for project failures according to the Standish report?
Signup and view all the answers
Which statement is true about the performance of software projects from the Standish Chaos Report?
Which statement is true about the performance of software projects from the Standish Chaos Report?
Signup and view all the answers
What does the lack of clear project requirements often lead to in project management?
What does the lack of clear project requirements often lead to in project management?
Signup and view all the answers
How does the Chaos report define project failure?
How does the Chaos report define project failure?
Signup and view all the answers
What aspect can lead companies to estimate high timescales?
What aspect can lead companies to estimate high timescales?
Signup and view all the answers
What is the condition under which an Estimation Quality Factor (EQF) is considered very good?
What is the condition under which an Estimation Quality Factor (EQF) is considered very good?
Signup and view all the answers
What was the average EQF reported, suggesting the quality of estimation in projects?
What was the average EQF reported, suggesting the quality of estimation in projects?
Signup and view all the answers
What does the Chaos report suggest about the relationship between surplus budgets and project success?
What does the Chaos report suggest about the relationship between surplus budgets and project success?
Signup and view all the answers
What critical analysis should be applied when reviewing headline figures from reports?
What critical analysis should be applied when reviewing headline figures from reports?
Signup and view all the answers
What factor influences the definition of project success or failure?
What factor influences the definition of project success or failure?
Signup and view all the answers
What does a higher EQF indicate about a project's estimation?
What does a higher EQF indicate about a project's estimation?
Signup and view all the answers
What could be a reason for the Chaos report's figures being considered meaningless?
What could be a reason for the Chaos report's figures being considered meaningless?
Signup and view all the answers
What does the term 'Boem’s cone of uncertainty' relate to?
What does the term 'Boem’s cone of uncertainty' relate to?
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
Recommended Books
- 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 Going Forwards
- 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.
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.