Software Engineering Challenges
40 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 the primary purpose of using UML models as a means of creating discussion about a proposed system?

To support discussion

What type of UML diagram is used to model the interactions between a system and its environment?

Interaction diagram

What is the main focus of a behavioral UML model?

The dynamic behavior of the system and how it responds to events

What is the primary purpose of a context diagram in UML?

<p>To define the boundary between the system and its environment</p> Signup and view all the answers

What are the three main elements of a context diagram?

<p>Context bubble, external entities, and data flows</p> Signup and view all the answers

What type of UML diagram is used to model the organization of the system?

<p>Structural diagram</p> Signup and view all the answers

What is the primary purpose of a use-case diagram?

<p>To represent a discrete task that involves interaction with an external system</p> Signup and view all the answers

What is the requirement for UML models when they are used as a detailed system description to implement the system?

<p>They must be accurate and complete</p> Signup and view all the answers

What is the primary responsibility of a Product Owner in a Scrum development team?

<p>Identifying software requirements, prioritizing them for development, and reviewing the backlog to ensure it meets their needs.</p> Signup and view all the answers

What is the purpose of a Daily Scrum in a Scrum development team?

<p>To share information, describe progress since the last sprint, problems that have risen, and what is planned for the day.</p> Signup and view all the answers

What is the definition of 'shippable' in Scrum development?

<p>A state of software that is finished and no further work is needed to incorporate into the final work.</p> Signup and view all the answers

What is the primary challenge with customer involvement in Scrum development?

<p>Customers have limited time, and may be reluctant to get involved in the testing process.</p> Signup and view all the answers

What is the main advantage of refactoring in software development?

<p>It keeps the code simple, improves understandability, and makes further changes easier to make.</p> Signup and view all the answers

What is the primary benefit of pair programming in software development?

<p>It develops collective ownership of the software, serves as an informal review process, and encourages refactoring.</p> Signup and view all the answers

What is the primary goal of continuous integration in software development?

<p>To immediately test code changes when added to a larger codebase, and ensure that all unit tests pass.</p> Signup and view all the answers

What is the definition of velocity in Scrum development?

<p>The amount of product backlog effort that a team can cover in a single sprint.</p> Signup and view all the answers

What is the key challenge of heterogeneity in software engineering?

<p>Developing techniques that can cope with increasing diversity of platforms and execution environments.</p> Signup and view all the answers

Why is trust a key challenge in software engineering?

<p>Developing software that can be trusted by its users.</p> Signup and view all the answers

What is the significance of professional issues in software engineering?

<p>Software engineers should not only uphold the law but also follow a set of principles that are morally correct.</p> Signup and view all the answers

What is the principle of confidentiality in software engineering?

<p>Engineers should not publicize information of their employers/clients, regardless of agreement.</p> Signup and view all the answers

Why is it important for software engineers to work within their range of skill and competence?

<p>Engineers should only accept work that is within their range of skill and competence.</p> Signup and view all the answers

What is the significance of intellectual property rights in software engineering?

<p>Engineers should be able to protect their employers/clients' intellectual property and be aware of local laws surrounding IP.</p> Signup and view all the answers

What is the principle of computer misuse in software engineering?

<p>Engineers should not use their skills to misuse other people's computers.</p> Signup and view all the answers

What is an example of a generic product in software engineering?

<p>Graphics programs, CAD software.</p> Signup and view all the answers

What is a limitation of agile development in terms of team size?

<p>Agile development is designed for small co-located teams, making it less suitable for large worldwide teams.</p> Signup and view all the answers

What is the main difference between verification and validation?

<p>Verification is a static process ensuring that documents and code meet the conditions of the starting phase, while validation is a dynamic process ensuring that the customer's real requirements are met.</p> Signup and view all the answers

Why is static testing alone not sufficient for software development?

<p>Static testing alone cannot check conformance with a customer's real requirements and cannot check non-functional requirements.</p> Signup and view all the answers

What is scaling up in agile development?

<p>Scaling up is adapting agile methods for large systems that cannot be developed by a small team.</p> Signup and view all the answers

When is a plan-driven approach preferred over agile development?

<p>A plan-driven approach is preferred when it is important to have a very detailed specification before moving to implementation.</p> Signup and view all the answers

What is the purpose of a walkthrough in static testing?

<p>The author walks through the code and explains what each piece does.</p> Signup and view all the answers

What is the limitation of agile development in terms of product documentation?

<p>Agile development lacks product documentation, relying on the development team's knowledge of what needs to be done.</p> Signup and view all the answers

What is the purpose of scaling out in agile development?

<p>Scaling out is introducing agile methods around a large organisation with years of software development experience.</p> Signup and view all the answers

What is the primary objective of security testing in software development?

<p>To identify flaws from a security point of view, ensuring confidentiality, integrity, authentication, availability, authorization, and non-repudiation.</p> Signup and view all the answers

What is portability testing, and what are the two strategies for performing it?

<p>Portability testing is determining the difficulty of transferring software from one hardware/software/other to another efficiently and effectively. The two strategies for portability testing are transferring an installed software from one computer to another and building executable files to run the software on different platforms.</p> Signup and view all the answers

What is the primary difference between functional and non-functional testing?

<p>Functional testing focuses on validating the behavior of the application, while non-functional testing focuses on validating the performance of the application.</p> Signup and view all the answers

What is the objective of performance testing?

<p>To validate the software's performance, such as how fast the dashboard loads.</p> Signup and view all the answers

What is the main difference between manual and automated testing?

<p>Manual testing is executed by manual testing, while automated testing is hard to do manually.</p> Signup and view all the answers

What is the focus area of functional testing?

<p>The focus area of functional testing is based on customer requirements.</p> Signup and view all the answers

What is the purpose of unit testing and smoke testing?

<p>Unit testing and smoke testing are examples of functional testing, which validate the behavior of the application.</p> Signup and view all the answers

What is an example of a test case in performance testing?

<p>The dashboard should load in 2 seconds.</p> Signup and view all the answers

Study Notes

Key Challenges in Software Engineering

  • Developing techniques for software that can cope with increasing diversity of platforms and execution environments
  • Developing techniques that make software delivery faster
  • Developing software that can be trusted by its users
  • Addressing ethical and professional issues in software engineering

Professional Issues

  • Confidentiality: Engineers should not publicize information about their employers or clients
  • Competence: Engineers should only accept work that is within their range of skills and competence
  • Intellectual property rights: Engineers should protect their employers' or clients' intellectual property and be aware of local laws surrounding IP
  • Computer misuse: Engineers should not use their skills to misuse other people's computers

Software Engineering Types

  • Stand-alone systems: Generic software that can be sold to any customer who wants to buy them
  • System perspectives: Models that describe the structure, behavior, and interactions of a system

System Perspectives

  • External perspective: Models the context of the system
  • Interaction perspective: Models the interactions between a system and its environment, or between components of the system
  • Structural perspective: Models the organization of the system
  • Behavioral perspective: Models the dynamic behavior of the system and how it responds to events

UML Models

  • Context diagrams: Define the boundary between the system and its environment, showing the entities that interact with it
  • Use-case diagrams: Represent a discrete task that involves the interaction with an external system, focusing on automated processes

Scrum Development

  • Product owner: Responsible for identifying software requirements, prioritizing them, and reviewing the backlog to ensure it meets their needs
  • Sprint: Development iteration usually lasting 2-4 weeks, where all scrum members share information and describe their progress
  • Daily scrum: Meeting where team members share information, describe their progress, and plan their work for the day
  • Potentially shippable: State of software that is finished and no further work is needed to incorporate into the final work
  • Velocity: Measures how much product backlog effort a team can cover in a single sprint

Programming Practices

  • Refactoring: Constant code improvement, looking for possible software improvements and making them
  • Pair programming: Involves programmers working in pairs at the same computer, promoting collective ownership and informal review
  • Continuous integration: Code changes are immediately tested when added to a larger code base, and as soon as a task is complete it is integrated to the whole system

Agile Development

  • Advantages: Flexibility, incremental delivery, and customer satisfaction
  • Disadvantages: Incompatibility with contract definitions, lack of product documentation, and reliance on development team knowledge

Verification and Validation

  • Verification: Static process of verifying documents and code to ensure they satisfy the conditions of the starting phase
  • Validation: Dynamic process that ensures customer's real requirements are met and satisfied

Testing Approaches

  • Static testing: Peer review, walkthrough, and security testing
  • Dynamic testing: Focuses on customer's real requirements and non-functional requirements
  • Strategies for portability testing: Transferring an installed software from one computer to another, and building executable files to run the software on different platforms

Functional vs Non-Functional Testing

  • Functional testing: Performs before non-functional testing, based on customer's requirements, and focuses on the behavior of the app
  • Non-functional testing: Performs after functional testing, focuses on customer's expectations, and validates the performance of the app

Studying That Suits You

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

Quiz Team

Description

This quiz covers the key challenges in software engineering, including heterogeneity, delivery, trust, and ethical issues.

More Like This

Software Engineering and Development
12 questions
CSC 303 Software Engineering 1
16 questions

CSC 303 Software Engineering 1

NoblePrehistoricArt4993 avatar
NoblePrehistoricArt4993
Software Engineering Overview
40 questions
Use Quizgecko on...
Browser
Browser