Software Engineering Chapter 1 - Introduction
34 Questions
3 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 type of software product is a stand-alone system marketed to any customer?

  • Embedded systems
  • Control systems
  • Customized products
  • Generic products (correct)
  • Software specifications for customized products are owned by the software developer.

    False

    What is software engineering concerned with?

    All aspects of software production

    Coping with increasing diversity and demands for reduced ______ are key challenges in software engineering.

    <p>delivery times</p> Signup and view all the answers

    Match the type of software products with their descriptions:

    <p>Generic products = Marketed to any customer Customized products = Commissioned by a specific customer Embedded systems = Integrated into electronic devices Control systems = Manage specific operations like air traffic</p> Signup and view all the answers

    Which of the following is NOT a fundamental software engineering activity?

    <p>Hardware design</p> Signup and view all the answers

    Software reliability is solely the responsibility of the software developer.

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

    Name one example of a generic software product.

    <p>Graphics program</p> Signup and view all the answers

    What percentage of software costs are typically attributed to development?

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

    All software projects benefit from the same development methodologies.

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

    What are the essential attributes of dependable software?

    <p>Reliability, security, and safety</p> Signup and view all the answers

    For custom software, evolution costs often exceed ______ costs.

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

    Match the software systems with their attributes:

    <p>Banking system = Secure Interactive game = Responsive Telephone switching system = Reliable Safety critical control system = Complete and analyzable specification</p> Signup and view all the answers

    Which software engineering technique is suitable for developing games?

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

    Web-based systems development has led to advances in programming languages.

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

    What is a critical attribute of software that allows it to evolve to meet changing business needs?

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

    Which of the following is NOT considered a factor of software efficiency?

    <p>Code readability</p> Signup and view all the answers

    Software engineering encompasses only the technical processes of software development.

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

    What is the primary goal of software engineering?

    <p>To produce reliable and trustworthy systems economically and quickly.</p> Signup and view all the answers

    Software must be _____ to the type of users it is designed for.

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

    Match the following software engineering aspects with their definitions:

    <p>Efficiency = Minimizing wasteful use of resources such as memory and processor cycles. Acceptability = Usability and compatibility with user needs. Reliability = Producing trustworthy software that functions as intended. Maintenance = Updating and modifying software after it has been deployed.</p> Signup and view all the answers

    Which of the following best describes software maintenance?

    <p>The process of modifying software after it has been deployed.</p> Signup and view all the answers

    Using software engineering methods is more costly in the long run than ad-hoc programming.

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

    What significant challenge do modern software systems face due to heterogeneity?

    <p>Developing dependable software that is flexible enough to operate across different types of devices and networks.</p> Signup and view all the answers

    What is meant by software engineering?

    <p>Software engineering is a systematic approach to the design, development, and maintenance of software systems.</p> Signup and view all the answers

    The notion of 'software engineering' was first proposed in 1969.

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

    What was the primary reason for the "software crisis" in the 1960s?

    <p>The increasing complexity of software systems, coupled with inadequate development methodologies, led to projects that were unreliable, costly, and often delivered late.</p> Signup and view all the answers

    What are the three fundamental types of software components used in a reuse-oriented process?

    <p>Web services, object collections, standalone software systems</p> Signup and view all the answers

    In a waterfall model, all activities are planned and scheduled beforehand, making it a plan-driven process.

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

    What are the main benefits of incremental development?

    <p>Reduced development costs, faster delivery of usable software, easier customer feedback</p> Signup and view all the answers

    What are the potential problems associated with using a waterfall model for software development?

    <p>The waterfall model's rigidity can hinder its adaptability to changing requirements, leading to higher costs, longer development cycles, and a potential lack of customer satisfaction.</p> Signup and view all the answers

    A prototype is an initial version of a system used to demonstrate concepts and test design options.

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

    How does software engineering handle the challenge of heterogeneity in modern software development?

    <p>Software engineering aims to develop techniques that create dependable yet flexible software capable of adapting to diverse environments, including networks with varying computer and mobile devices.</p> Signup and view all the answers

    What is the importance of dependability and security in software development?

    <p>Dependable and secure software is crucial for ensuring that systems function correctly, do not cause harm, and protect sensitive information from unauthorized access or manipulation.</p> Signup and view all the answers

    Study Notes

    Chapter 1 - Introduction

    • Topics covered: Professional software development, explanation of software engineering.
    • Need for Software Engineering:
      • Modern world relies on software, controlling national infrastructure, utilities, industrial manufacturing, distribution, and entertainment.
      • Software is often more costly than hardware, especially in systems with extended lifespans.
      • Software engineering is vital for the smooth functioning of national and international societies to manage software cost-effectively.
    • Software engineering:
      • Focuses on supporting professional software development, rather than individual programming.
      • Includes critical techniques for program specification, design, and evolution.
    • Software System Structure
      • Professionally developed software systems are usually composed of multiple programs and configuration files.
      • Often include system documentation, user documentation, and online resources for users.
    • Software engineering principles:
      • Concerned with the theories, methods, and tools of professional software development.
    • Software Costs:
      • Software costs often dominate the total cost of a computer system.
      • Maintenance costs often significantly exceed development costs.
      • Software engineers focus on creating cost-effective software development processes.
    • Software Products:
      • Two main types:
        • Generic products: Stand-alone systems sold to any customer (e.g., PC software, CAD software).
        • Customized products (Bespoke products): Systems commissioned by a specific customer to meet their needs (e.g., embedded control systems, air traffic control software).
    • Product Specification Differences:
      • Generic products: Specification and changes are managed by the developer.
      • Customized products: Specification and changes are managed by the customer.
    • Frequently asked questions:
      • What is software?: Computer programs and associated documentation.
      • What is software engineering?: Engineering discipline concerning all aspects of software production.
      • What are the fundamental software engineering activities?: Specification, development, validation, and evolution.
      • What is the difference between software engineering and system engineering?: System engineering encompasses hardware, software, and process aspects, while software engineering is a part of it.

    Important Characteristics of Good Software

    • Maintainability: Software should be adaptable to evolving customer needs.
    • Dependability and Security: Reliability, security, and safety are crucial to prevent damage.
    • Efficiency: Optimized usage of system resources.
    • Acceptability: Designed to meet the expectations and needs of users.

    Software Engineering Diversity

    • Many types of software systems.
    • No single set of techniques applies to all.
    • Software methods and tools used depend on the system, customer requirements, development staff.

    Types of Applications

    • Stand-alone Applications: Run on a local computer (e.g. office applications, photo manipulation).
    • Interactive Transaction-based Applications: Run on remote computers (e.g., web applications, business systems)

    Application Types (continued)

    • Embedded Control Systems: Software to control hardware devices (e.g. mobile phones, car anti-lock braking).
    • Batch Processing Systems: Processing large amounts of data in batches (e.g., billing systems, salary payment).
    • Entertainment Systems: Primarily focused on personal entertainment (e.g., games).
    • Systems for modeling and simulation: Modeling physical processes (e.g., weather forecasting, flight simulators).
    • Data collection Systems: Gathering data from sensors, processing it (e.g. environmental observation).
    • Systems of systems: A system comprised of other systems (e.g. a large business).

    Fundamental Principles: Software Engineering

    • Managed process: Developing software using a structured, planned process.
    • Dependability and performance: Software should be dependable and perform efficiently.
    • Requirement Management: Understanding and managing customer expectations.
    • Resource Management: Make the most effective use of existing software and/or resources.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    This quiz covers the fundamental aspects of software engineering, highlighting its importance in modern society. It delves into the necessity for professional software development and provides insight into the structure of software systems. Test your knowledge on these introductory concepts crucial for understanding software engineering.

    More Like This

    Software Engineering Concepts
    10 questions
    CP317 Software Engineering Chapter 2
    41 questions
    Steps in Program Development
    36 questions

    Steps in Program Development

    BestPerformingVirginiaBeach avatar
    BestPerformingVirginiaBeach
    Software Engineering Overview
    32 questions
    Use Quizgecko on...
    Browser
    Browser