Software Engineering Overview
32 Questions
9 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

A program is an executable code that solves a particular ______.

problem

Software Engineering is the application of a systematic, disciplined, and ______ approach.

quantifiable

Software is a collection of not just executable codes only, but also other ______.

components

Engineering is the creative application of Science, Mathematics, and other technological ______.

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

A Software Product is defined as a Software made for a specific ______.

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

Software Engineering is the establishment and use of sound engineering principles to obtain economically reliable ______.

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

Fritz Bauer described Software Engineering as the practical application of scientific knowledge to the creative ______ and building of computer programs.

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

Software Engineers utilize engineering techniques to build ______.

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

A developer can bypass SE Principle when writing ______ Programs.

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

It is not possible for developers to bypass SE Principle when writing ______ Programs.

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

The principle of ______ simplifies the solution of a problem by omitting irrelevant details.

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

Another approach to tackle problem complexity is ______.

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

In the 1960s, many software projects ______.

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

Software Demand was much higher than the ______.

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

Every improvement in hardware capability led to a corresponding increase in software ______.

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

Resulting software was unreliable and expensive to ______.

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

The emphasis on Software Project Management and Quality Processes like ISO 9001 occurred in the ______.

<p>1990s</p> Signup and view all the answers

The growth of Computer-Aided Software Engineering (CASE) began in the ______.

<p>1980s</p> Signup and view all the answers

Widespread uses of software engineering principles started in the ______.

<p>1970s</p> Signup and view all the answers

One of the major goals of software engineering is to ensure products are ______.

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

Myth 2 states that if we get behind schedule, we shall add more ______ to catch up.

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

The unique attributes of software include being easy to ______.

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

Domain experts have core knowledge of the software ______ area.

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

Realities about myths suggest that the company book of standards may not be ______.

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

Adding more people to a late project could make it _____.

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

Beginning a program without an unambiguous Statement of Objectives (SOO) will lead to _____.

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

The major work begins after the project is _____.

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

One of the most effective software quality assurance mechanisms is through the use of Formal Technical _____.

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

Working program is only a part of the software product; other deliverables such as ____ are equally important.

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

Project requirements could change, but the impacts could grow _____.

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

It is when I get the program running that I can really assess its _____.

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

If a third party did not understand the project, it will not succeed in handling ____.

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

Study Notes

Program, Software & Products

  • A program is an executable code that solves a specific problem.
  • Software is not just program code; it includes associated libraries, documentation, and other components.
  • A software product is a software made for a specific requirement.

Engineering

  • Engineering involves the conception and development of products using well-defined scientific principles and methods.
  • It encompasses the creative application of science, mathematics, and other technological disciplines for the design, construction, and maintenance of structures, devices, systems, and processes to solve problems.

Software Engineering

  • Software engineering utilizes engineering techniques to build software.
  • It is an engineering branch focusing on developing software products using well-defined scientific principles, methods, and procedures.

Importance of Software Engineering

  • Large programs can be complex and difficult to develop without software engineering principles.
  • Complexity increases exponentially with program size.

Reducing Complexity

  • Software engineering uses two techniques: abstraction and decomposition.

Abstraction

  • Simplifies problem solving by omitting irrelevant details.
  • Considers only relevant aspects for a specific purpose.

Decomposition

  • Divides complex problems into smaller, independently solvable components.
  • Combines solutions from smaller problems to get the complete solution.

Software Crisis

  • The Software Crisis of the 1960s was a catalyst for the evolution of software engineering.

Issues Leading to the Software Crisis

  • Many software projects failed.
  • Software became over budget.
  • Software was unreliable and expensive to maintain.
  • Most software could not satisfy customer requirements.
  • Software demand was higher than supply.
  • Every hardware improvement led to increased software complexity.

Evolution of Software Engineering

  • Step 1 (1970s): Widespread use of software engineering principles.
  • Step 2 (1980s): Automation of software engineering processes and growth of computer-aided software engineering (CASE).
  • Step 3 (1990s): Emphasis on software project management and quality processes like ISO 9001.
  • Step 4 (2000 and above): Object-oriented software methodology, AI-enabled software techniques and tools.

Software Stakeholders

  • End-users: Users or their representatives
  • Customers: Those who purchase the software
  • Analysts: Specialize in software analysis during development
  • Domain Experts: Have core knowledge of the software usage area
  • Implementers: Experts in software implementation
  • Managers: In charge of Human and Resource management
  • Maintainers: In charge of software maintenance
  • Others: Many other stakeholders exist.

Goals of Software Engineering

  • Efficient
  • Reliable
  • Usable
  • Modifiable
  • Maintainable
  • Re-usable
  • Portable
  • Testable
  • Interoperable
  • Correct

Unique Attributes of Software

  • Easy to modify.
  • No physical wear and tear like hardware.
  • Unskilled people can create software.
  • Development efforts can be difficult to visualize.
  • Easy to replicate.

Myths about Software Engineering

  • Management Myths:
    • Having a book of standards and procedures is enough for efficient programming.
    • Adding more programmers to a late project will speed it up.
  • Customer Myths:
    • Outsourced software projects automatically succeed.
    • A general statement of objectives is enough to start programming.
    • Project development should be flexible enough to accommodate new requirements during development.
  • Practitioner Myths:
    • Once a program is working, the job is done.
    • The quality of a program can only be assessed after it's running.
    • The only deliverable that matters is a working program.

Reality vs. Myth

  • Companies' standard books may not be complete, adaptable, or reflect modern SE practices.
  • Adding programmers to a late software project can make it later.
  • Outsourcing software without a clear understanding of the project can lead to failure.
  • Starting programming without a clear statement of objectives can result in disaster.
  • While changes are inevitable, their impact can grow significantly over time.
  • Maintaining software is a significant part of the software lifecycle.
  • Formal technical reviews from the start are essential for quality assurance.
  • Besides working programs, documentation and other components are essential.

Question 1

  • The difference between a program and software is that a program is a single executable code, while software is a collection of programs, libraries, documentation, and other components.

Studying That Suits You

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

Quiz Team

Description

This quiz explores the fundamentals of software engineering, including the differences between programs, software, and software products. It emphasizes the engineering principles applied in developing software and the importance of structured methodologies in managing complex software projects.

More Like This

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

Steps in Program Development

BestPerformingVirginiaBeach avatar
BestPerformingVirginiaBeach
Software Engineering Chapter 1 - Introduction
34 questions
Use Quizgecko on...
Browser
Browser