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?
- 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?
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?
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?
How did the gender bias at Harvard University manifest in the admissions data?
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?
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?
Which of the following tools is suggested for Java development?
Which of the following tools is suggested for Java development?
What is one of the aims of the COMP319 module?
What is one of the aims of the COMP319 module?
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?
What is the focus of this advanced software engineering module?
What is the focus of this advanced software engineering module?
What resource is suggested for source control?
What resource is suggested for source control?
Which of the following books is recommended for understanding Agile methodologies?
Which of the following books is recommended for understanding Agile methodologies?
When are tutorials/seminars conducted for COMP319?
When are tutorials/seminars conducted for COMP319?
What type of failure does the crash of the Ariane 5 represent?
What type of failure does the crash of the Ariane 5 represent?
Which of the following is a characteristic of chronic failures?
Which of the following is a characteristic of chronic failures?
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?
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?
Which of the following are common indicators of project failure?
Which of the following are common indicators of project failure?
What type of issue may impede the portability of code between platforms?
What type of issue may impede the portability of code between platforms?
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?
What consequence can result from a project being incompletely developed?
What consequence can result from a project being incompletely developed?
What is a central focus of software engineering activities?
What is a central focus of software engineering activities?
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?
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?
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?
What is emphasized in current trends of software engineering?
What is emphasized in current trends of software engineering?
What does the software engineering definition from the NATO Science Committee emphasize?
What does the software engineering definition from the NATO Science Committee emphasize?
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?
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?
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?
What tool is commonly utilized in Agile methodologies within software engineering?
What tool is commonly utilized in Agile methodologies within software engineering?
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?
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?
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?
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?
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?
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?
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?
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?
How does the Chaos report define project failure?
How does the Chaos report define project failure?
What aspect can lead companies to estimate high timescales?
What aspect can lead companies to estimate high timescales?
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?
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?
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?
What critical analysis should be applied when reviewing headline figures from reports?
What critical analysis should be applied when reviewing headline figures from reports?
What factor influences the definition of project success or failure?
What factor influences the definition of project success or failure?
What does a higher EQF indicate about a project's estimation?
What does a higher EQF indicate about a project's estimation?
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?
What does the term 'Boem’s cone of uncertainty' relate to?
What does the term 'Boem’s cone of uncertainty' relate to?
Flashcards
Software Engineering Crisis
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
Software Cost Estimation
The process of estimating the time, resources, and cost required to complete a software project.
OO Design Patterns
OO Design Patterns
A standardized solution to a common problem in software design, offering a reusable, well-tested approach.
XP (Extreme Programming)
XP (Extreme Programming)
Signup and view all the flashcards
Agile
Agile
Signup and view all the flashcards
Actor Model
Actor Model
Signup and view all the flashcards
Dependency Graphs
Dependency Graphs
Signup and view all the flashcards
Program Slicing
Program Slicing
Signup and view all the flashcards
Catastrophic Software Failure
Catastrophic Software Failure
Signup and view all the flashcards
Chronic Software Failures
Chronic Software Failures
Signup and view all the flashcards
Project Over Time Schedule
Project Over Time Schedule
Signup and view all the flashcards
Project Over Budget
Project Over Budget
Signup and view all the flashcards
Project is Buggy
Project is Buggy
Signup and view all the flashcards
Code Base is Unsupportable
Code Base is Unsupportable
Signup and view all the flashcards
Code Doesn't Port Well Between Platforms
Code Doesn't Port Well Between Platforms
Signup and view all the flashcards
Project Doesn't Fully Deliver
Project Doesn't Fully Deliver
Signup and view all the flashcards
Null Hypothesis
Null Hypothesis
Signup and view all the flashcards
Alternative Hypothesis
Alternative Hypothesis
Signup and view all the flashcards
Sample Size
Sample Size
Signup and view all the flashcards
Simpson's Paradox
Simpson's Paradox
Signup and view all the flashcards
Observer Bias
Observer Bias
Signup and view all the flashcards
Project Cancellation
Project Cancellation
Signup and view all the flashcards
User Involvement
User Involvement
Signup and view all the flashcards
System Resilience
System Resilience
Signup and view all the flashcards
Language Model
Language Model
Signup and view all the flashcards
Software Failure
Software Failure
Signup and view all the flashcards
Project Success Rate
Project Success Rate
Signup and view all the flashcards
Software Appraisal
Software Appraisal
Signup and view all the flashcards
Statistical Text Generation
Statistical Text Generation
Signup and view all the flashcards
Project Failure Reasons
Project Failure Reasons
Signup and view all the flashcards
System Robustness
System Robustness
Signup and view all the flashcards
Estimation Quality Factor (EQF)
Estimation Quality Factor (EQF)
Signup and view all the flashcards
Boehm's Cone of Uncertainty
Boehm's Cone of Uncertainty
Signup and view all the flashcards
Estimation Bias
Estimation Bias
Signup and view all the flashcards
Project Success and Failure
Project Success and Failure
Signup and view all the flashcards
Estimation Skill
Estimation Skill
Signup and view all the flashcards
Software Crisis
Software Crisis
Signup and view all the flashcards
Chaos Report
Chaos Report
Signup and view all the flashcards
Estimation Manipulation
Estimation Manipulation
Signup and view all the flashcards
Risk Assessment
Risk Assessment
Signup and view all the flashcards
Software Engineering
Software Engineering
Signup and view all the flashcards
Software Engineering Principles
Software Engineering Principles
Signup and view all the flashcards
Requirements Analysis
Requirements Analysis
Signup and view all the flashcards
Software Design/Implementation
Software Design/Implementation
Signup and view all the flashcards
Software Testing and Analysis
Software Testing and Analysis
Signup and view all the flashcards
Software Management
Software Management
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
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.