Introduction to Software Engineering
47 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 typically happens to the failure rate of software after changes are made?

  • It spikes and potentially deteriorates. (correct)
  • It decreases immediately.
  • It remains constant.
  • It becomes zero.
  • Software cannot be reused in different applications.

    False (B)

    What type of software is responsible for managing hardware and providing services to other software?

    System software

    Programs that monitor, analyze, and control real-world events are called ______.

    <p>real-time software</p> Signup and view all the answers

    Match the following software types with their descriptions:

    <p>System Software = Manages hardware and services other programs Real-Time Software = Monitors and responds to real-world events Business Software = Facilitates business operations and management decisions Engineering and Scientific Software = Characterized by complex number calculations</p> Signup and view all the answers

    Which of the following is a characteristic of engineering and scientific software?

    <p>Number crunching algorithms (C)</p> Signup and view all the answers

    Business software operates independently of large databases.

    <p>False (B)</p> Signup and view all the answers

    What is the largest single area of software application?

    <p>Business information processing</p> Signup and view all the answers

    What is a characteristic that differentiates software from hardware?

    <p>Software does not wear out over time. (B)</p> Signup and view all the answers

    Software is subjected to environmental factors that can cause it to wear out.

    <p>False (B)</p> Signup and view all the answers

    Which of the following fields utilizes embedded software?

    <p>All of the above (D)</p> Signup and view all the answers

    What does the term 'software engineering' refer to?

    <p>The application of engineering principles to software development.</p> Signup and view all the answers

    Artificial intelligence software primarily relies on numerical algorithms to solve problems.

    <p>False (B)</p> Signup and view all the answers

    Software is primarily composed of __________, data structures, and documents.

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

    What type of software is specifically designed to simulate brain processes?

    <p>artificial neural networks</p> Signup and view all the answers

    Match the following software characteristics with their descriptions:

    <p>Developed = Created through engineering processes Unique = Not manufactured like hardware Stable = Does not wear out Documented = Includes manuals and descriptions</p> Signup and view all the answers

    Legacy software often remains in use for more than _____ years.

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

    Which of the following options best describes the 'bathtub curve' in relation to hardware?

    <p>Failure rates initially increase, then decrease, before rising again. (C)</p> Signup and view all the answers

    What is a common application area for AI software?

    <p>Pattern recognition (A)</p> Signup and view all the answers

    High quality in software development can only be achieved during the manufacturing phase.

    <p>False (B)</p> Signup and view all the answers

    Companies often abandon software systems that are over 20 years old.

    <p>False (B)</p> Signup and view all the answers

    What are the three main components of software according to the characteristics defined?

    <p>Instructions, data structures, and documents.</p> Signup and view all the answers

    Name a new branch of software that has evolved in recent years.

    <p>artificial neural networks</p> Signup and view all the answers

    What is a primary reason for maintaining legacy systems?

    <p>It's too risky to replace them (B)</p> Signup and view all the answers

    Legacy software is usually designed with a flexible architecture.

    <p>False (B)</p> Signup and view all the answers

    Name one characteristic of legacy systems.

    <p>Complex code</p> Signup and view all the answers

    Legacy systems consist of a series of __________, each depending on the layer immediately below it.

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

    Which layer might introduce new facilities that could require changes to higher layers in a legacy system?

    <p>Support software layer (D)</p> Signup and view all the answers

    Match the following characteristics with legacy systems:

    <p>Older quality = Poorly maintained Documentation = Usually nonexistent Change history = Poorly managed Code complexity = Often complex</p> Signup and view all the answers

    Software engineering is conducted by individuals who lack creativity and knowledge.

    <p>False (B)</p> Signup and view all the answers

    Software must be designed properly according to user __________.

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

    What is the primary goal of software engineering?

    <p>To improve the quality of software products (C)</p> Signup and view all the answers

    Software engineering methods do not require any organization commitment to quality.

    <p>False (B)</p> Signup and view all the answers

    What does the IEEE define software engineering as?

    <p>A systematic, disciplined, quantifiable approach to software development, operation, and maintenance.</p> Signup and view all the answers

    Software engineering layers include _____, methods, and tools.

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

    Match the following key components of software engineering with their descriptions:

    <p>Process = Framework for key areas of software delivery Methods = Technical 'how to's' for building software Tools = Support for processes and methods applicable to projects Quality = Organizational commitment to ensure software reliability</p> Signup and view all the answers

    Which of the following is a key activity in software engineering methods?

    <p>Requirements analysis (D)</p> Signup and view all the answers

    Tools in software engineering provide automated support for processes.

    <p>True (A)</p> Signup and view all the answers

    Name one approach that software engineering studies.

    <p>Multi-person construction of multiversion software.</p> Signup and view all the answers

    What is the main purpose of the communication phase in the software process?

    <p>To gather and specify software requirements (D)</p> Signup and view all the answers

    The deployment phase includes assessing risks that may affect the outcome of the project.

    <p>False (B)</p> Signup and view all the answers

    What are the two main engineering actions involved in the modeling activity?

    <p>Analysis and Design</p> Signup and view all the answers

    The _____ combines code generation and testing to uncover errors in the software.

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

    Match the following umbrella activities with their descriptions:

    <p>Software quality assurance = Ensures software quality through defined activities Risk management = Assesses potential risks to the project outcome Software project tracking and control = Monitors progress against the project plan Formal technical review = Identifies and removes errors before further action</p> Signup and view all the answers

    Which of the following is NOT a task associated with the analysis action in the modeling phase?

    <p>Data design (C)</p> Signup and view all the answers

    All software engineering actions are composed solely of individual work tasks.

    <p>True (A)</p> Signup and view all the answers

    List one of the work tasks involved in the design action.

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

    Flashcards

    Software Engineering Definition

    The systematic approach to developing software, encompassing design, construction, and testing.

    Software Characteristics

    Software is logical, developed, and doesn't wear out like physical hardware.

    Software Components

    Includes instructions, data structures, and documentation.

    Software vs. Hardware Creation

    Software is created through design, whereas hardware is physically constructed.

    Signup and view all the flashcards

    Software Reliability

    Software, unlike hardware, doesn't wear out due to environmental factors.

    Signup and view all the flashcards

    Hardware Failure Model

    Hardware failure follows a "bathtub curve", with high failure rates initially, then a steady state, and finally an increasing failure rate.

    Signup and view all the flashcards

    Software Process Framework

    A structured way to organize the different tasks and steps involved in software development.

    Signup and view all the flashcards

    Umbrella Activities

    Process-related tasks that are important for overall software quality but aren't strictly part of the specific software function being built.

    Signup and view all the flashcards

    Software Maintenance

    The process of modifying software after it has been delivered to correct faults, improve performance, or adapt to changing requirements.

    Signup and view all the flashcards

    Software Customization

    Software developed to meet specific customer requirements.

    Signup and view all the flashcards

    Software Versions

    New versions of software with added features, improvements, or bug fixes.

    Signup and view all the flashcards

    Hardware Requirements

    The specific computer hardware necessary for a software program to run.

    Signup and view all the flashcards

    System Software

    Programs that provide essential services for other programs (e.g., compilers, editors, file managers).

    Signup and view all the flashcards

    Real-Time Software

    Software designed to react quickly to real-world events, typically in a monitored, responsive manner.

    Signup and view all the flashcards

    Business Software

    Software used for business tasks such as payroll, accounting, inventory, and management information systems (MIS).

    Signup and view all the flashcards

    Embedded Software

    Software that controls products and systems in consumer and industrial markets. It often resides in read-only memory.

    Signup and view all the flashcards

    Personal Computer Software

    Software for personal computers, covering a wide range of applications like word processing, spreadsheets, and multimedia.

    Signup and view all the flashcards

    AI Software

    Software using non-numerical algorithms to solve complex problems, including expert systems, pattern recognition, and artificial neural networks.

    Signup and view all the flashcards

    Expert Systems

    A type of AI software that acts as an expert on a specific subject.

    Signup and view all the flashcards

    Artificial Neural Networks

    A type of AI software designed to mimic the structure and functionality of biological neurons in the brain.

    Signup and view all the flashcards

    Legacy Software

    Software systems that are in use for many years, often more than 10, and may be crucial to a business.

    Signup and view all the flashcards

    Software Application Range

    Software applications are diverse, spanning astronomy, volcanology, automotive stress analysis, orbital dynamics, molecular biology, and automation.

    Signup and view all the flashcards

    Legacy Systems

    Old software systems still in use, often critical for business operations but hard to replace due to risks.

    Signup and view all the flashcards

    Why are Legacy Systems maintained?

    Replacing them is too risky due to potential business disruptions and the complexity of the software.

    Signup and view all the flashcards

    Characteristics of Legacy Software

    Often includes poor quality code, lack of flexibility, complex structure, and inadequate documentation.

    Signup and view all the flashcards

    Legacy Layered Model

    Legacy systems are organized into layers, each depending on the one below. Changes in one layer can affect layers above and below.

    Signup and view all the flashcards

    Software Engineering

    A systematic approach to developing high-quality software by applying principles of design, construction, and testing.

    Signup and view all the flashcards

    Software Requirements

    Detailed descriptions of what the software must do, based on user needs and expectations.

    Signup and view all the flashcards

    Software Documentation

    Essential materials supporting the software, including user manuals, installation guides, training materials, and maintenance information.

    Signup and view all the flashcards

    IEEE Definition of Software Engineering

    The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, emphasizing engineering principles.

    Signup and view all the flashcards

    Software Engineering Goal

    To improve software quality, increase developer productivity, and enhance job satisfaction for software engineers.

    Signup and view all the flashcards

    Layered Software Engineering Technology

    Software engineering consists of multiple layers: process, methods, and tools, each building upon the previous one.

    Signup and view all the flashcards

    Software Engineering Methods

    The technical 'how-to's' of building software, encompassing tasks like requirements analysis, design, coding, testing, and maintenance.

    Signup and view all the flashcards

    Software Engineering Tools

    Automated or semi-automated support for process and methods, making software development more efficient.

    Signup and view all the flashcards

    Software Process Activities

    Framework activities applicable to all software projects, serving as a template for various process models.

    Signup and view all the flashcards

    Communication (Framework Activity)

    Involves continuous collaboration with the customer and stakeholders to gather and refine requirements.

    Signup and view all the flashcards

    Planning (Framework Activity)

    Defines the technical tasks, resources, timeline, and potential risks for the project.

    Signup and view all the flashcards

    Modeling (Framework Activity)

    Creates visual representations of the software's requirements and design, promoting understanding and collaboration.

    Signup and view all the flashcards

    Analysis (Modeling Action)

    Involves gathering requirements, refining them through discussion, and creating a detailed specification.

    Signup and view all the flashcards

    Design (Modeling Action)

    Translates the analyzed requirements into a blueprint for the software's architecture, interfaces, and components.

    Signup and view all the flashcards

    Construction (Framework Activity)

    Combines coding with testing to create and validate the software based on the design.

    Signup and view all the flashcards

    Study Notes

    Introduction to Software Engineering

    • Software is defined as instructions (computer programs), data structures for program operations, and documents explaining program use.
    • Software characteristics differ significantly from hardware. Hardware design translates directly to a physical form, while software evolves from sketches, formal designs, and prototypes into a physical form.
    • Software is developed, not manufactured. Software development and hardware manufacture are fundamentally distinct processes. Quality problems can arise during hardware manufacturing but are often nonexistent or easily rectified in software.
    • Software does not wear out in the same way hardware does; hardware failure rates are initially high then steady, eventually increasing with time. Software defects, however, can be introduced through maintenance, causing failure rates to spike, and requiring fixes.

    Software Characteristics

    • Software is a logical element, not a physical one. Its characteristics differ significantly from those of hardware.
    • Software is not susceptible to the environmental maladies that cause hardware to wear out. The software's life cycle involves changes (maintenance). These changes can lead to new defects and spikes in failure rates that require more changes, gradually increasing this failure rate.

    Software Applications

    • System software supports other programs. Its tasks include complex, determinate processing, heavy interaction with hardware, multiple user concurrency, complex data structures, and multiple external interfaces. Real-time software monitors, analyzes, and controls real-world events, incorporating data gathering, analysis, and control elements.
    • Business software manages and processes business information. Discrete "systems" have evolved into management information systems (MIS) software that manipulates large databases.
    • Engineering/scientific software utilizes "number-crunching" algorithms, ranging from astronomy to manufacturing.
    • Embedded software, common in consumer and industrial products, is used for controlled operations. Personal computer software is a wide area of applications (e.g., word processing, spreadsheets, etc.)
    • Artificial intelligence (AI) software uses non-numerical algorithms for complex problem-solving and analysis. Active areas encompass expert systems, pattern recognition, theorem proving, and game playing. AI software is also exploring new branches like artificial neural networks.

    Legacy Software

    • Companies invest heavily in software. Long lifespans are needed for return on investment (ROI).
    • Many large systems remain in use for over 20 years, sometimes being business-critical.
    • Legacy software may be maintained due to cost or technical issues involved in replacement. Quality issues can include older, poor quality, inflexible designs, complex code, and lack of documentation.

    Legacy Layered Model

    • Legacy systems are layered. Each layer relies on the layer below and interfaces with it.
    • Maintenance of interfaces within the system allows for changes in one layer without affecting adjacent layers (directly).
    • Changes to one layer may necessitate changes in layers above and below. Changes may introduce new system facilities. Other parts of the system can be modified to utilize these advancements. Changing the software or new hardware can impact performance and require changes that may not be immediately clear. Interface maintenance can be difficult when changes to hardware are radical.

    Software Engineering

    • Software engineering is a framework of tasks for building high-quality software. It is driven by knowledgeable professionals. The software should properly meet user requirements, implemented, tested, and contain supporting documents (e.g., user manuals).
    • Software engineering principles are aimed at reliability and efficiency. This approach utilizes sound engineering principles to establish a software process (reliable, efficient software).
    • A comprehensive approach to software engineering includes a layered view encompassing tools, methods, process, and quality. The key process areas are a basis for effective software delivery.

    Software Process

    • A common process framework is applicable to all software projects, regardless of size or complexity.
    • The framework includes communication, planning, modeling, construction, and deployment.

    Umbrella Activities

    • Software project tracking and control, risk management, software quality assurance, formal technical reviews, and measurement are process aspects that add value to software projects.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Explore the fundamental concepts of software engineering, including the definition, unique characteristics, and the differences between software and hardware. This quiz delves into the processes of software development and the challenges associated with software maintenance and quality. Test your understanding of how software evolves from design to implementation.

    More Like This

    Use Quizgecko on...
    Browser
    Browser