Introduction to Software Engineering
37 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 percentage of software projects were reported to be delivered on time, on budget, and with the required features according to the Standish Group report in 2012?

  • 39% (correct)
  • 18%
  • 43%
  • 56%
  • Which of the following best describes the primary focus of software engineering compared to computer science?

  • Comparison of programming languages
  • Practicalities of developing useful software (correct)
  • Hardware engineering
  • Making theoretical models
  • What is NOT an attribute of good software?

  • Flexible
  • Maintainable
  • Obsolete (correct)
  • Reliable
  • What is a significant problem identified in software project management?

    <p>Lack of clear business objectives</p> Signup and view all the answers

    Which of the following is one of the fundamental activities of software engineering?

    <p>Software validation</p> Signup and view all the answers

    What distinguishes software engineering from system engineering?

    <p>Concentration solely on software processes</p> Signup and view all the answers

    What is the term used to describe computer programs and associated documentation?

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

    Based on the content provided, which of the following is a reason why economies depend on software?

    <p>All economic sectors require software solutions</p> Signup and view all the answers

    What does the term 'system boundary' refer to?

    <p>The conceptual line that divides the system from external elements</p> Signup and view all the answers

    How does software malleability impact its development?

    <p>It creates pressure to change software rather than replace it.</p> Signup and view all the answers

    Which of the following best describes a software process model?

    <p>An abstract representation of a software process</p> Signup and view all the answers

    What is a primary characteristic of complex software?

    <p>It requires more explanation than simpler systems.</p> Signup and view all the answers

    Which of the following is NOT one of the main activities in software processes?

    <p>Software Regulation</p> Signup and view all the answers

    What influences the likelihood of errors in software?

    <p>The size and complexity of the software</p> Signup and view all the answers

    What does the 'evolution' activity in the software process refer to?

    <p>Modifying the system based on user feedback</p> Signup and view all the answers

    Which statement accurately reflects the definition of a domain in software development?

    <p>It designates a specific area of interest.</p> Signup and view all the answers

    Which of the following correctly describes plan-driven processes?

    <p>They have all activities planned in advance.</p> Signup and view all the answers

    What is a characteristic of the Waterfall Model?

    <p>It has distinct phases of specification and development.</p> Signup and view all the answers

    In the context of software processes, what do 'pre- and post-conditions' refer to?

    <p>The outcomes expected before and after a process activity.</p> Signup and view all the answers

    What is the primary benefit of incremental development?

    <p>It enables easier customer feedback on development.</p> Signup and view all the answers

    Which phase of the Waterfall Model involves defining system architecture?

    <p>System and Software Design</p> Signup and view all the answers

    What best describes reuse-oriented software engineering?

    <p>Assembling systems from existing software components.</p> Signup and view all the answers

    What does 'operation and maintenance' entail in the Waterfall Model?

    <p>Delivering the software to the customer for use.</p> Signup and view all the answers

    How do agile processes differ from plan-driven processes?

    <p>Agile processes are easier to adapt to changing requirements.</p> Signup and view all the answers

    What is a key characteristic of the Agile model compared to the Waterfall model?

    <p>It actively seeks customer feedback at each stage.</p> Signup and view all the answers

    In the context of the Waterfall model, when is the risk of failing to meet user needs highest?

    <p>During the final testing phase.</p> Signup and view all the answers

    Which of the following is NOT a current standard approach for building many types of business systems?

    <p>Development of new components from scratch.</p> Signup and view all the answers

    What is one of the primary stages in reuse-oriented software engineering?

    <p>Component analysis.</p> Signup and view all the answers

    Which type of software component is designed for remote invocation according to service standards?

    <p>Web services.</p> Signup and view all the answers

    What is the main drawback of the waterfall model?

    <p>Difficulty of accommodating change</p> Signup and view all the answers

    In which scenario is the waterfall model most appropriate?

    <p>When the requirements are well-understood and limited changes are expected</p> Signup and view all the answers

    What is one of the main benefits of incremental development?

    <p>Reduces the cost of accommodating changing requirements</p> Signup and view all the answers

    What is a potential issue with incremental development?

    <p>Difficulty in producing comprehensive documentation</p> Signup and view all the answers

    How does incremental development improve customer interaction?

    <p>By enabling customers to comment on demonstrations and see the progress</p> Signup and view all the answers

    What drawback can occur if regular change is incorporated in incremental development?

    <p>Increased difficulty and cost in incorporating further changes</p> Signup and view all the answers

    What is the role of alternating cycles in incremental development?

    <p>To validate and refine the development process</p> Signup and view all the answers

    What can be negatively affected in incremental development without proper maintenance?

    <p>System structure</p> Signup and view all the answers

    Study Notes

    Why Software Engineering?

    • Economies of developed nations are dependent on software.
    • Software controls more systems than ever.
    • Software engineering is concerned with methods, tools, and theories for professional software development.
    • Software expenditure is a significant part of the Gross National Product in developed countries.
    • The Standish Group reports on software project success since 1994.
      • Only 39% of projects are delivered on time, within budget, and with the required features.
      • 43% are late, over budget, or lack features.
      • 18% are cancelled or delivered but never used.
    • Common problems:
      • Poor or absent user involvement,
      • Unclear business objectives.
      • Over or under building - features are never used or are missing.

    What is Software?

    • Computer programs and associated documentation
    • Developed for specific customers or the general market

    Attributes of Good Software

    • Useful - Delivers necessary functionality and performance
    • Flexible - Can be easily adapted and changed
    • Usable - Easy to learn and use
    • Reliable - Functions correctly and provides expected results
    • Available - Accessible when needed
    • Affordable - Price is reasonable for the value it offers
    • Maintainable - Can be easily changed and improved over time

    What is Software Engineering?

    • An engineering discipline covering all aspects of software production.

    Fundamental Software Engineering Activities:

    • Software specification - Defining what the system should do.
    • Software development - Constructing the system.
    • Software validation - Checking that it meets the requirements
    • Software evolution - Adapting the system to meet changing needs.

    Computer Science vs. Software Engineering

    • Computer Science focuses on theory and fundamentals.
    • Software Engineering focuses on the practical aspects of developing and delivering useful software.

    System Engineering vs. Software Engineering

    • System Engineering covers all aspects of computer-based systems development, including hardware, software, and process engineering.
    • Software Engineering is a part of this broader process.

    System Boundary

    • Divides the system under study from everything else (defines the scope of the system).

    System Environment

    • Consists of everything outside the system that can affect or is affected by it.

    Domain

    • A particular area of interest.

    Characteristics of Software that Affect Development:

    • Malleability: Software is easy to change.
    • Complexity: Software can be complex and is difficult to define.
    • Size: Larger software tends to have more errors than smaller software.

    Software Process Models

    • Plan-driven Processes: All activities are planned in advance, and progress is measured against the plan.
    • Agile Processes: Planning is incremental, making it easier to adapt to changing requirements.

    The Waterfall Model

    • A plan-driven model with separate and distinct phases for specification and development.
    • It is inflexible and difficult to adapt to changing requirements.

    Incremental Development

    • Specification, development, and validation are interwoven.
    • Can be plan-driven or agile.
    • Easier to get customer feedback on the work done and can provide faster delivery.

    Reuse-Oriented Software Engineering

    • Systems assembled from existing components.
    • Can be plan-driven or agile.
    • Increasingly used as commercial off-the-shelf components grow.

    The Software Process

    • A structured set of activities for developing a software system.
    • All processes involve:
      • Specification
      • Design
      • Implementation
      • Validation (Testing)
      • Evolution (Maintenance)
    • A software process model is an abstract representation of a process.

    Software Process Descriptions

    • Emphasize activities like specifying a data model or designing a user interface.
    • Include:
      • Products (outcomes of activities)
      • Roles (responsibilities of people involved)
      • Pre and post-conditions (statements about the state before and after an activity)

    Plan-Driven and Agile Processes

    • Plan-driven processes are where all the activities are planned in advance.
    • Agile processes focus on incremental planning and are easier to change.

    Waterfall Model Stages

    • Requirements Definition: Outlines the system's functionality, performance, and constraints.
    • System and Software Design: Defines the overall system architecture and detailed software design.
    • Implementation and Unit Testing: Develop and test individual program units.
    • Integration and System Testing: Integrate and test the individual units as a complete system.
    • Operation and Maintenance: Deliver the software to the customer for operation and maintenance.

    Waterfall Model Problems

    • Inflexible partitioning into stages makes it difficult to accommodate change.
    • Less suitable for projects with unstable requirements.
    • Mostly used for large systems engineering projects involving multiple locations.

    Incremental Development Benefits

    • Reduced cost of accommodating changes
    • Less analysis and documentation to redo
    • Easier to get customer feedback
    • More rapid delivery and deployment of useful software

    Incremental Development Problems

    • Process may not be visible to managers.
    • System structure may degrade as new increments are added.
    • Regular changes can corrupt the structure, making future changes more difficult and expensive.

    Waterfall vs. Agile

    • Waterfall:
      • Phased process, all phases completed before deployment.
      • High risk of failing to meet user needs as feedback is not actively sought until the final stage.
    • Agile:
      • Cyclical process, each cycle adds functionality.
      • Active customer feedback at each stage.
    • Risk:
      • Waterfall: High risk at the beginning, low risk at the end.
      • Agile: Low risk at the beginning, high risk at the end.
    • Value:
      • Waterfall: User receives value only after deployment.
      • Agile: User receives value at each stage.

    Reuse-Oriented Software Engineering

    • Based on systematic reuse where components are integrated into a new system
    • Stages include:
      • Component Analysis: Identify potential reusable components.
      • Requirements Modification: Adapt requirements to existing components.
      • System Design with Reuse: Integrate reusable components into the system.
      • Development and Integration: Implement the system using reusable components.

    Types of Software Components

    • Web services: Developed according to service standards for remote invocation.
    • Collections of objects: Developed as a package to integrate with a component framework like .NET or J2EE.
    • Stand-alone software systems (COTS): Configured for specific environments.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Explore the critical role of software engineering in modern economies. This quiz covers essential concepts such as the importance of software projects, common challenges faced, and the attributes of good software. Delve into the statistics regarding software project success and discover what constitutes effective software development.

    More Like This

    Software Engineering Basics Quiz
    10 questions
    Software Development Lifecycle
    15 questions
    Software Development Methodologies Quiz
    24 questions
    Use Quizgecko on...
    Browser
    Browser