Software vs Hardware
41 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

Which of the following is NOT a core component of software?

  • Hardware interfaces (correct)
  • Documentation
  • Data structures
  • Instructions (computer programs)

Unlike hardware, software is said to:

  • Have a consistently high failure rate
  • Be manufactured rather than engineered
  • Wear out over time due to environmental factors
  • Not 'wear out' in the traditional sense (correct)

In the context of software, deterioration is best described as:

  • The increasing failure rate due to environmental factors
  • The effect of dust, vibration and abuse on hardware
  • The physical degradation of storage media
  • The increased failure rate due to changes made during its life (correct)

Which of the following is an example of system software with 'determinate' inputs?

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

Which software application resides within a product or system and is used to implement and control features for the end user?

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

Which of the given 'new category' software types involves source code being available to the computing community?

<p>Open source (D)</p> Signup and view all the answers

What is the primary characteristic of legacy software that makes it a focus of continuous attention?

<p>Business criticality (C)</p> Signup and view all the answers

According to the IEEE definition, software engineering involves a systematic, disciplined, and quantifiable approach to which aspects of software?

<p>Development, operation, and maintenance (A)</p> Signup and view all the answers

In the context of software engineering as a layered technology, which layer serves as the foundation?

<p>Process model (C)</p> Signup and view all the answers

What role does the 'process' play in software engineering's layered technology?

<p>Holds the technology layers together (A)</p> Signup and view all the answers

What do 'methods' provide in the context of software engineering?

<p>The technical 'how-to's' for building software (D)</p> Signup and view all the answers

What is the primary purpose of 'tools' in software engineering?

<p>Automated support for processes and methods (B)</p> Signup and view all the answers

An 'activity' in a software process is characterized by striving to:

<p>Achieve a broad objective (D)</p> Signup and view all the answers

What distinguishes a 'task' from an 'activity' or 'action' in a software process?

<p>It focuses on a well-defined objective with a tangible outcome. (A)</p> Signup and view all the answers

Framework activities in a software process are applicable:

<p>To all software projects, regardless of size or type (B)</p> Signup and view all the answers

What is the primary intent during the 'communication' activity in a general framework activity?

<p>Understand stakeholders' objectives (B)</p> Signup and view all the answers

The 'planning' activity in the software process is characterized by:

<p>Creating a 'map' for the software engineering work (C)</p> Signup and view all the answers

What is the main purpose of 'modeling' during software development?

<p>To better understand software requirements (B)</p> Signup and view all the answers

What comprises the 'construction' activity in the context of software engineering?

<p>Code generation and testing (C)</p> Signup and view all the answers

During the 'deployment' phase of the software process, what action takes place?

<p>The software is delivered to the customer for evaluation (A)</p> Signup and view all the answers

Across multiple project iterations, what happens to the software?

<p>It becomes more and more complete. (B)</p> Signup and view all the answers

Which of the following activities would be classified as an 'umbrella activity'?

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

What factor suggests one software engineering process should be different from another?

<p>The organizational culture (D)</p> Signup and view all the answers

Which of these principles from Hooker's General Principles emphasizes designing software that can be used in future projects?

<p>Plan Ahead for Reuse (D)</p> Signup and view all the answers

What is often the initiating factor for a software project?

<p>A business need (D)</p> Signup and view all the answers

What are the key components that define software?

<p>Programs, data, and descriptive information (B)</p> Signup and view all the answers

What is a primary challenge associated with maintaining legacy software?

<p>Addressing special challenges related to its age (B)</p> Signup and view all the answers

Which of the following best describes the evolution of software over the past 50 years?

<p>It has evolved into a major industry (D)</p> Signup and view all the answers

The failure rate of correctly designed hardware displays what kind of characteristics?

<p>Failures rise as hardware components suffer cumulative effects (A)</p> Signup and view all the answers

The failure rate of software displays what kind of characteristic?

<p>As defects are corrected, the curve flattens (C)</p> Signup and view all the answers

Which of the following is an example of software application?

<p>Stand-alone business program (C)</p> Signup and view all the answers

Which of the following is an example of a WebApp?

<p>Browser-Based App (B)</p> Signup and view all the answers

What is the focus of concern for legacy software?

<p>Since the 1960s (A)</p> Signup and view all the answers

Which of the following approaches for software engineering can be burdensome?

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

Which of the following software engineering attributes need to be balanced?

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

Which of the following establishes the basis for management control activities?

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

Which of the following includes communication activities?

<p>Software Engineering Methods (D)</p> Signup and view all the answers

What is one way that computer-aided software engineering tools are integrated?

<p>Information by one tool can be used by another (B)</p> Signup and view all the answers

Which of the following focuses on a small, but well-defined objective?

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

Which of the following relies on a skeleton architecture?

<p>Generic Framework Activities and Umbrella Activities (C)</p> Signup and view all the answers

Which of the following follows Polya's suggestion?

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

Flashcards

What is Software?

Software is composed of instructions (computer programs), data structures, and documentation.

How is Software unique?

Software is developed/engineered, not manufactured. It doesn't 'wear out' in the traditional sense. It's mostly custom-built.

Instructions (in Software)

Describes computer programs that, when executed, provide desired features, function, and performance.

Data structures (in Software)

Enable programs to adequately manipulate information.

Signup and view all the flashcards

Documentation (in Software)

Describes the operation and use of the programs.

Signup and view all the flashcards

Hardware Failure Pattern

Hardware has high early failure rates, gets corrected, stabilizes, then 'wears out' over time.

Signup and view all the flashcards

Software 'Wear'

Unlike hardware, software doesn't 'wear out,' but it deteriorates over time due to changes and corrections.

Signup and view all the flashcards

System Software

Software which services other programs, manages system resources or utilities.

Signup and view all the flashcards

Determinate System Software

System software with predictable inputs.

Signup and view all the flashcards

Indeterminate System Software

System software with unpredictable inputs.

Signup and view all the flashcards

Application Software

Software that Solves a specific business need.

Signup and view all the flashcards

Engineering/Scientific Software

Software for number-crunching tasks, from astronomy to genetic analysis.

Signup and view all the flashcards

Embedded Software

Software that resides within a system to implement and control features.

Signup and view all the flashcards

Product-line Software

Software designed to provide a specific capability for many different customers.

Signup and view all the flashcards

WebApps

Web applications accessed via a browser or mobile device.

Signup and view all the flashcards

AI Software

Software using nonnumerical algorithms to solve complex problems.

Signup and view all the flashcards

Legacy Software

Legacy software is old, core to business, and requires ongoing attention.

Signup and view all the flashcards

Open world Computing

Pervasive, distributed computing.

Signup and view all the flashcards

Ubiquitous Computing

Wireless Networks.

Signup and view all the flashcards

Netsourcing & Cloud Computing

The Web as a computing engine.

Signup and view all the flashcards

Open source

Free source code open to the computing community.

Signup and view all the flashcards

IEEE Definition of Software Engineering

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

Signup and view all the flashcards

Layered Technology

A framework for software engineering which includes tools, methods, and process.

Signup and view all the flashcards

Process Layer

The foundation of software engineering that enables timely development

Signup and view all the flashcards

Methods

Provide the technical 'how-to's' for building software.

Signup and view all the flashcards

Tools

Provides automated or semi-automated support for the process and the methods.

Signup and view all the flashcards

Software Process

A collection of activities, actions, and tasks performed when creating a work product.

Signup and view all the flashcards

Activity

Strives to achieve a broad objective.

Signup and view all the flashcards

Action

Encompasses a set of tasks that produce a major work product.

Signup and view all the flashcards

Task

Focuses on a small, but well-defined objective that produces a tangible outcome.

Signup and view all the flashcards

Process Framework

Establishes foundation by framework activities.

Signup and view all the flashcards

Framework Activities

Applicable across all software projects (communication, planning, modeling, construction and deployment).

Signup and view all the flashcards

Umbrella Activities

Activities that are applicable across the entire software process.

Signup and view all the flashcards

Process Adaptation

Software engineering process should be agile and adaptable.

Signup and view all the flashcards

Polya's Suggestion: Step 1

Understand the problem (communication and analysis).

Signup and view all the flashcards

Polya's Suggestion: Step 2

Plan a solution (modeling and software design).

Signup and view all the flashcards

Polya's Suggestion: Step 3

Carry out the plan (code generation).

Signup and view all the flashcards

Polya's Suggestion: Step 4

Examine the result for accuracy (testing and quality assurance).

Signup and view all the flashcards

Software impact

Software is the key element in the evolution of computer-based systems and products.

Signup and view all the flashcards

Software engineering

Encompasses process, methods and tools.

Signup and view all the flashcards

Study Notes

What is Software

  • Software consists of programs, data, and descriptive information.
  • Instructions or computer programs provide desired features, function, and performance when executed are software
  • Data structures enable programs to adequately manipulate information
  • Documentation is a component of software and describes the operation/use of the programs.
  • Software is engineered/developed, not manufactured in the classic sense.
  • Software does not "wear out".
  • Most software continues to be custom-built, despite the industry's move toward component-based construction.

Hardware

  • Hardware has relatively high failure rates early in its life.
  • Hardware defects are corrected
  • Hardware's failure rate drops to a steady-state level for some time.
  • As time passes, the hardware failure rate rises again as components suffer from cumulative effects/abuse which cause it to wear out.

Software: The Changing Nature

  • Software is not susceptible to environmental maladies that cause hardware to wear out.
  • Theoretically, the failure rate curve for software should take the form of an idealized curve.
  • Undiscovered defects cause high failure rates early in a program's life; these defects are corrected, and the curve flattens.
  • Software deteriorates as it undergoes change during its life

Software Applications

  • System software services other programs, including determinate items like compilers, editors, and file management utilities.
  • Indeterminate system software includes operating systems and network software because of unpredictable inputs.
  • Application software includes stand-alone programs that solve a specific business need.
  • Engineering/scientific software includes a broad array of number-crunching programs used in astronomy, volcanology, automotive stress analysis, orbital dynamics, computer-aided design, molecular biology, genetic analysis, and meteorology
  • Embedded software resides within a product/system and is used to implement/control features and functions for the end user and for the system itself.
  • Product-line software provides a specific capability for use by many different customers, like inventory control products.
  • WebApps (Web applications) are browser-based apps, including software that resides devices.
  • AI software uses nonnumerical algorithms to solve complex problems that are not amenable to computation or straightforward analysis, like Robotics, expert systems, pattern recognition, artificial neural networks, theorem proving, and game playing

New Software Categories

  • Open-world computing is pervasive, distributed computing.
  • Ubiquitous computing involves wireless networks.
  • Netsourcing & Cloud Computing relates to the Web as a computing engine.
  • Open source "free" code is open to the computing community.
  • New Software Categories also now includes data mining, grid computing, cognitive machines and software for nanotechnologies.

Legacy Software

  • Legacy software consists of very old programs, which support core business functions, and are indispensable to the business.
  • Legacy software characteristics include longevity and business criticality.
  • Legacy software has been the focus of continuous attention and concern since the 1960s.

Software Engineering: Definition of Discipline

  • The IEEE defines software engineering as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
  • A "systematic, disciplined and quantifiable” approach applied by one software team may be burdensome to another.
  • Discipline is needed with adaptability and agility in software engineering.

Software Engineering: A Layered Technology

  • Software engineering is composed of tools, methods, and a process model which results in a "quality" focus.

Software Engineering Process

  • The software engineering process layer is the foundation of software engineering.
  • Process is the glue that holds the technology layers together and enables rational and timely development of computer software.
  • Process defines a framework for effective delivery of software engineering technology and forms the basis for management control of software projects.
  • The process layer establishes the context in which technical methods are applied, work products are produced, milestones are established, quality is ensured, and change is properly managed.

Software Engineering Methods

  • Methods provide the technical how-to's for building software.
  • Methods encompass an array of tasks that include communication, requirements analysis, design modeling, program construction, testing, and support.
  • Methods rely on basic principles that govern each area of the technology and include modeling activities/descriptive techniques.

Software Engineering Tools

  • Tools provide automated or semi-automated support for the process and the methods.
  • Computer-aided software engineering tools can be integrated so that information created by one tool can be used by another.

Software Process

  • A process is a collection of activities, actions, and tasks that are performed when some work product is to be created.
  • An activity strives to achieve a broad objective, such as communication and is applied regardless of the application domain, size of the project, or complexity of the effort.
  • An action encompasses a set of tasks that produce a major work product, such as architectural design.
  • A task focuses on a well-defined objective that produces a tangible outcome.

Process Framework

  • The process framework establishes the foundation for a complete software engineering process by identifying a small number of framework activities that are applicable to projects, regardless of their size or complexity.
  • The process framework encompasses a set of umbrella activities that are applicable across the entire software process.

Framework Activities: General Setting

  • Framework activities include communication, planning, modeling, construction, and deployment.
  • Modeling includes the analysis of requirements and design
  • Construction includes code generation and testing

Communication

  • Before any technical work can commence, communication and collaboration with the customer (and other stakeholders) is critical.
  • The intent is to understand stakeholders' objectives and to gather requirements that help define software features and functions.

Planning

  • Any complicated journey can be simplified if a map exists.
  • A software project is a complicated journey, and the planning activity creates a "map" that helps guide the team as it makes the journey.
  • This map, which is also called a software project plan, defines the software engineering work by describing the technical tasks to be conducted, the risks that are likely, the resources that will be required, the work products to be produced, and a work schedule.

Modeling

  • Whether you're a landscaper, a bridge builder, an aeronautical engineer, a carpenter, or an architect, you work with models every day.
  • You create a "sketch" of the thing so that you'll understand the big picture
  • What it will look like architecturally, how the constituent parts fit together, and many other characteristics.
  • If required, you refine the sketch into greater and greater detail in an effort to better understand the problem and how you're going to solve it.
  • A software engineer does the same thing by creating models to better understand software requirements and the design that will achieve those requirements.

Construction

  • Construction is code generation (either manual or automated) and the testing that is required to uncover errors in the code.

Deployment

  • The software (as a complete entity or as a partially completed increment) is delivered to the customer who evaluates the delivered product and provides feedback based on the evaluation.

Process Framework: Iteration

  • Communication, planning, modeling, construction, and deployment are applied repeatedly through a number of project iterations.
  • Each project iteration produces a software increment that provides stakeholders with a subset of overall software features/functionality.
  • For each increment, the software becomes more and more complete

Umbrella Activities

  • Software project tracking and control.
  • Risk management.
  • Software quality assurance.
  • Technical reviews.
  • Measurement.
  • Software configuration management.
  • Reusability management.
  • Work product preparation and production.

Process Adaptation

  • Software engineering process should be agile and adaptable (to the problem, to the project, to the team, and to the organizational culture).
  • A process adopted for one project might be significantly different than a process adopted for another project.
  • Differences include the overall flow of activities, actions, and tasks and the interdependencies among them.
  • The difference resides in the degree to which actions and tasks are defined within each framework, also the degree to which work products are identified and required
  • Differences depends upon the manner in which quality assurance and project tracking/control activities are applied, and the overall degree of detail and rigor with which the process is described.
  • Difference depends on the degree to which the customer and stakeholders are involved with the project
  • Difference depends on level of autonomy given to the software team, and the degree to which team organization and roles are prescribed

Software Engineering Practice

  • There are generic framework activities—communication, planning, modeling, construction, and deployment—and umbrella activities establish a skeleton architecture for software engineering work.

The Essence of Practice

  • Polya suggests the following:
    • Understand the problem through communication and analysis.
    • Plan a solution through modeling and software design.
    • Carry out the plan through code generation.
    • Examine the result for accuracy through testing and quality assurance.

Hooker's General Principles

  • Include; The Reason It All Exists, KISS (Keep It Simple, Stupid!), Maintain the Vision, What You Produce, Others Will Consume, Be Open to the Future, Plan Ahead for Reuse, and Think!.

How It All Starts

  • Every software project is precipitated by some business need
    • The need to correct a defect in an existing application
    • The need to adapt a 'legacy system' to a changing business environment
    • The need to extend the functions and features of an existing application
    • The need to create a new product, service, or system

Chapter 1: Summary

  • Software is the key element in the evolution of computer-based systems/products and one of the most important technologies.
  • Over the past 50 years, software has evolved from a specialized problem-solving/information analysis tool to an industry in itself.
  • There remains trouble developing high-quality software on time and within budget
  • Software (programs, data, descriptive information) addresses a wide array of technology and application areas.
  • Legacy software continues to present special challenges to those who must maintain it, as the nature of software is changing
  • Web-based systems/applications have evolved and mobile applications present new challenges as apps migrate to several platforms.
  • Cloud computing transforms how software is delivered and the environment in which it exists.
  • Software engineering encompasses processes, methods, and tools that enable complex computer-based systems to be built in a timely manner with quality.
  • The software process incorporates five framework activities: communication, planning, modeling, construction, and deployment applicable to all software projects.
  • Software engineering practice is a problem-solving activity that follows core principles.
  • A wide array of software myths leads managers and practitioners astray as the collective knowledge of software/technologies needed to build it grows.

Studying That Suits You

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

Quiz Team

Related Documents

Description

This content describes what software and hardware consists of. It also highlights the key differences between software and hardware. It emphasizes that software is engineered and doesn't wear out.

More Like This

Computing Platforms Quiz
10 questions

Computing Platforms Quiz

PlentifulMonkey2722 avatar
PlentifulMonkey2722
Computing Fundamentals Quiz
10 questions
Introduction to Computer Software
34 questions
Use Quizgecko on...
Browser
Browser