Introduction to Software Engineering Quiz
50 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 application development costs is considered wasted due to projects getting abandoned or reworked?

  • 31% (correct)
  • 20%
  • 56%
  • 56%

What is the average cost overrun percentage documented?

  • 100%
  • 189% (correct)
  • 150%
  • 250%

Which of the following is NOT mentioned as an observed problem in software products?

  • Frequent crashes
  • Expensive alterations and debugging
  • Failure to meet user requirements
  • Inability to use advanced algorithms (correct)

What percentage of client/server applications are stated to be abandoned or restarted from scratch?

<p>10% (D)</p> Signup and view all the answers

What is identified as a major misconception in software development?

<p>The man-month myth. (C)</p> Signup and view all the answers

What is a reason stated for poor software statistics?

<p>Software professionals lacking engineering training. (C)</p> Signup and view all the answers

Which of the following is a common outcome for apps, according to the provided information?

<p>Significantly altered to avoid disaster. (A)</p> Signup and view all the answers

What aspect of software complexity increases exponentially with size?

<p>Overall development difficulty. (B)</p> Signup and view all the answers

What was the primary focus of the SABRE project?

<p>Airline reservation system (C)</p> Signup and view all the answers

Which company developed Flowchart Software known as Autoflow?

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

What was a significant characteristic of the software era that began in 1981?

<p>The introduction of packaged software for the masses. (B)</p> Signup and view all the answers

Which of the following companies was associated with systems, applications, and products in the software industry?

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

What was the significance of unbundling software from hardware?

<p>It enabled software to be developed and marketed independently. (B)</p> Signup and view all the answers

Which product is considered one of the first packaged software products for the masses?

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

What was the primary product that Microsoft bought from Seattle Computer Products in 1981?

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

In which era did internet software and value-added services begin to emerge?

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

What is a misconception about the stability of application requirements?

<p>Application requirements are always stable. (B)</p> Signup and view all the answers

Which statement reflects a common belief among developers about software demonstration?

<p>The job is done once the software is demonstrated. (C)</p> Signup and view all the answers

What is incorrectly assumed about the deliverables in a software development project?

<p>Testing is the only deliverable. (C)</p> Signup and view all the answers

According to management myths, what is believed to ensure software quality?

<p>Good standards and procedures. (C)</p> Signup and view all the answers

What is a misconception regarding software engineers and their tools?

<p>Access to sophisticated tools is the sole factor of quality. (D)</p> Signup and view all the answers

What is a flawed approach to handling schedule delays in software projects?

<p>Adding more engineers to the project. (B)</p> Signup and view all the answers

Which of the following misconceptions is related to assessing software quality?

<p>Quality can only be assessed post-coding. (A)</p> Signup and view all the answers

What aspect is often underestimated in the software development process?

<p>The importance of clear requirements. (B)</p> Signup and view all the answers

Which of the following is NOT categorized as a software service?

<p>Hardware Maintenance (D)</p> Signup and view all the answers

What is a common issue faced by organizations in software engineering today?

<p>Utilization of outdated practices (A)</p> Signup and view all the answers

Which company is primarily recognized for providing packaged mass-market software?

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

The statement 'Organizations go with what has worked in the past' describes which aspect of software development?

<p>Resistance to change (B)</p> Signup and view all the answers

Which of these companies is NOT associated with professional software services?

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

What challenge is noted regarding the integration of best practices in software engineering?

<p>Lack of awareness among software developers (B)</p> Signup and view all the answers

Which software type focuses on solutions for individual businesses rather than packaged offerings?

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

What is one result of the rapidly evolving nature of the software industry?

<p>Overall improvement remains limited (B)</p> Signup and view all the answers

What is a primary difference between software programming and software engineering?

<p>Software engineering typically involves numerous stakeholders. (A)</p> Signup and view all the answers

Which item is NOT a characteristic of software products as compared to programs?

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

Which assumption is commonly made about user requirements during software development?

<p>All requirements can be pre-specified. (B), Users are experts at specifying their needs. (C)</p> Signup and view all the answers

What percentage of overall development costs does maintenance typically account for in software engineering?

<p>Over 60% (A)</p> Signup and view all the answers

Which of the following best describes a software product?

<p>Has a systematic development approach. (A)</p> Signup and view all the answers

What typically characterizes software programming compared to software engineering?

<p>Often results in 'toy' applications with short lifespans. (D)</p> Signup and view all the answers

What is included in the configuration of software?

<p>Programs, documents, and data. (C)</p> Signup and view all the answers

Which of the following roles is NOT typically associated with software engineering?

<p>Sales Manager (D)</p> Signup and view all the answers

What is a primary goal of software engineering?

<p>To deliver software that meets user requirements and is within budget (B)</p> Signup and view all the answers

Which model is NOT part of traditional software engineering?

<p>Machine Learning model (A)</p> Signup and view all the answers

Who is associated with defining software engineering as a systematic approach to software analysis and design?

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

Which of the following definitions emphasizes the economic reliability of software?

<p>Use of sound engineering principles for economically reliable software (D)</p> Signup and view all the answers

Which diagram is part of Object-Oriented Software Engineering?

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

In the evolution of the software industry, which phase was characterized by the creation of tailored solutions for individual clients?

<p>Independent Programming Service (C)</p> Signup and view all the answers

Which principle is NOT directly associated with the goals of software engineering?

<p>Specifications driven by market moods (B)</p> Signup and view all the answers

What is one of the aspects of systematic production in software engineering?

<p>Application of engineering principles (A)</p> Signup and view all the answers

Which software process model emphasizes iterative development?

<p>Spiral model (D)</p> Signup and view all the answers

Which of the following best describes the essence of software engineering?

<p>A multidisciplinary approach involving technology and management (A)</p> Signup and view all the answers

Flashcards

Software Crisis

A significant problem in software development, characterized by high cost overruns, project delays, and failure to meet user needs.

Cost Overruns

Software projects exceeding the initially estimated budget.

Project Delays

Software projects taking longer than expected to complete.

User Requirements

Specifications and needs defined by users for a software product.

Signup and view all the flashcards

Software Myths

False assumptions and beliefs about software development, leading to problems.

Signup and view all the flashcards

Ad Hoc Approach

Developing software without a defined process or plan.

Signup and view all the flashcards

Software Complexity

The increasing difficulty and intricacy of software as its size grows.

Signup and view all the flashcards

Engineering Mindset

A systematic and structured approach to software development, not just coding.

Signup and view all the flashcards

Software Requirements

The specified needs and functionalities of a software application.

Signup and view all the flashcards

Software Development Process

A series of steps taken to build a software product.

Signup and view all the flashcards

Software Myths (Customer)

Common misconceptions about software development from the customer's perspective.

Signup and view all the flashcards

Software Myths (Developer)

Common misconceptions about software development from the developer's perspective.

Signup and view all the flashcards

Software Myths (Management)

Common misconceptions about software development from the management perspective.

Signup and view all the flashcards

Vague Requirements

Unclear or incomplete specifications for a software project.

Signup and view all the flashcards

Fixing Mistakes Later

The belief that missing or poorly defined requirements can be easily changed or added later in the development process.

Signup and view all the flashcards

Software Quality

The extent to which a software product meets its requirements and expectations in terms of performance, reliability, usability, and other factors.

Signup and view all the flashcards

Software Programming vs. Software Engineering

Software programming is about translating problems into computer language for single developers. Software engineering is about building complex systems with teams, multiple roles, and a long lifespan.

Signup and view all the flashcards

Software Product Characteristics

Software products are larger, have more users and utilize teamwork and well-defined processes. They are more well-documented, user friendly and maintained than software programs.

Signup and view all the flashcards

Software Requirements

Clear user needs are essential for software success but are often only assumed.

Signup and view all the flashcards

Development Assumptions

Assumptions about predictability of requirements, user expertise, visualization, and communication.

Signup and view all the flashcards

Software Components

Software includes programs, documents, and data that form a configuration.

Signup and view all the flashcards

Software Size & Complexity

Software programs are typically smaller than software products, reflecting their different complexity levels and scopes.

Signup and view all the flashcards

Software Lifespan

Programs have a short lifespan, whereas software products tend to have ongoing maintenance.

Signup and view all the flashcards

Project Teams

Software development requires teams with various roles.

Signup and view all the flashcards

SABRE System

A major airline reservation system, costing approximately $30 million.

Signup and view all the flashcards

SAGE System (1949-1962)

An early air defense system requiring 700-1000 programmers in the US, with an estimated cost of $8 billion.

Signup and view all the flashcards

Flowchart Software (Autoflow)

Software developed for automating flowchart creation, aimed at reducing the time to develop software.

Signup and view all the flashcards

Database Management Systems (Precursor)

Early software, marking a step towards modern database management systems.

Signup and view all the flashcards

Enterprise Solutions (Era 3)

Software solutions addressing the needs of entire businesses, with SAP and Baan as prominent examples.

Signup and view all the flashcards

Packaged Software (Era 4)

Standardized software products for mass use, like spreadsheets (e.g., VisiCalc)

Signup and view all the flashcards

IBM PC (1981)

Key event that triggered mass-market PC-based software development and usage.

Signup and view all the flashcards

Internet Software & Services (Era 5)

Software and services related to the internet, exemplified by Netscape's early web browser.

Signup and view all the flashcards

Software Engineering Definition

A discipline focused on creating high-quality software on time and within budget, satisfying user needs.

Signup and view all the flashcards

Software Process

Series of steps used in software creation. Different models exist (Waterfall, Prototyping, etc.).

Signup and view all the flashcards

Software Quality

Measure of how well software meets its requirements and expectations.

Signup and view all the flashcards

Traditional Software Engineering

Software development using systems focused on defining functions, data and behaviors.

Signup and view all the flashcards

Object-Oriented Software Engineering

Development method emphasizing objects, functions and their behavior.

Signup and view all the flashcards

Software Goals

Producing high-quality, timely, and budget-conscious software that satisfies user needs.

Signup and view all the flashcards

Waterfall Lifecycle

Software development approach with sequential phases.

Signup and view all the flashcards

Prototyping

Software development approach that creates models, prototypes, prior to complete development.

Signup and view all the flashcards

Independent Programming Services

Early era in software, focusing on creating custom software, often for hardware companies.

Signup and view all the flashcards

Software Scope

Study of software development principles, techniques, methods, and process.

Signup and view all the flashcards

Software Engineering Today (Problem)

Software development organizations often rely on past practices instead of adopting new and proven methods. This results in a lack of effective strategies for addressing contemporary problems.

Signup and view all the flashcards

Lack of Best Practices Integration

Many individuals lack the knowledge or ability to integrate established best practices into software development. This limits the application of proven methodologies in a timely manner.

Signup and view all the flashcards

Evolving Software Industry

Software development is constantly evolving, and this rapid change makes overall improvement in the industry challenging, despite improvements in specific areas.

Signup and view all the flashcards

Software Products

Larger software projects, often with numerous users and relying on teamwork, well-defined processes, documentation, usability, and maintenance.

Signup and view all the flashcards

IT Market Components

The IT market comprises hardware products, hardware maintenance and services, software, processing services, and internet services that are often categorized as embedded, professional, enterprise, and packaged software or mass-market.

Signup and view all the flashcards

Professional Software Services

In the IT market, professional services encompass specialized consulting or development assistance by firms like Anderson Consulting, IBM, and EDS.

Signup and view all the flashcards

Enterprise Solutions

Larger companies providing software solutions for complex business needs are categorized as 'enterprise solutions'.

Signup and view all the flashcards

Packaged Mass-Market Software

Software products designed for widespread use and affordability are considered 'packaged mass-market' software.

Signup and view all the flashcards

Study Notes

Introduction to Software Engineering

  • The course introduces software engineering, its challenges, and processes.
  • Aims to help students understand and avoid pitfalls and myths in software design.
  • Focuses on the different types of software processes for selection of a suitable one.
  • Aims to teach high-quality efficient software design for usability and maintainability.
  • Includes advanced methods for software engineering.

Course Objectives

  • Learn about difficulties in software development to avoid pitfalls and myths in design.
  • Learn different software processes for suitable choice.
  • Learn designing high-quality, efficient software for usability and maintainability.
  • Learn about advanced methods in software engineering.

Course Contents

  • Introduction to Software Engineering
  • Software Processes
  • Requirements Engineering
  • Software Design
  • Object-Oriented Software Development
  • Software Testing and Verification
  • Software Project Management
  • Advanced Methods

Chapter 1: Introduction to Software Engineering

  • Overview of software engineering, including software crisis, myths, methods, evolution, and status.

Contents (of Chapter 1)

  • Software Crisis
  • Software Myths
  • What is Software Engineering?
  • Evolution of Software Engineering
  • State-of-the-art in Software Engineering

The Statistics - Chaos Report

  • Standish Group 1995 study of 8,380 projects
  • Average time overrun 222%
  • Average cost overrun 189%
  • 61% of projects completed with originally specified features.
  • 16% of projects completed with all originally specified features on time and on budget.
  • 31% delivered operational, but over budget or schedule or with fewer features

Symptoms of Software Crisis

  • US$250 billion spent annually on application development in the US.

  • US$140 billion wasted due to abandoned or reworked projects.

  • 10% of client/server apps are abandoned or restarted.

  • 20% of apps are significantly altered to avoid disaster.

  • 40% of apps are delivered significantly late. (Compuware study 12/95 of 70 large c/s apps 30 European firms)

Observed Problems

  • Software products often fail to meet user needs.
  • Software products frequently crash.
  • Software development is expensive.
  • Software products are difficult to alter, debug, and enhance.
  • Software products are often delivered late.
  • Software products use resources inefficiently.

Why are the Statistics so Bad?

  • Misconceptions about software development
  • Software myths (e.g., the man-month myth)
  • False assumptions
  • Inability to distinguish computer program coding from software product development
  • Exponential growth in complexity and difficulty level of software with respect to size.
  • Ad-hoc approaches break down when software size increases.
  • Lack of engineering training in software professionals
  • Programmers with programming skills but missing engineering mindsets on process discipline and internal complexities. (e.g., essences and accidents made by Fred Brooks).

How is Software Usually Constructed?

  • Requirements are defined.
  • Developers interpret the requirements.
  • The problem is solved.
  • The problem is solved again (now differently).
  • The program is debugged by the program writers.
  • The program is described by marketing.
  • This is what the customer seemingly wanted, in reality.

Software Myths (Customer Perspectives)

  • A general statement of objectives is enough to start software development.
  • Missing/vague requirements can be easily incorporated/detailed later.
  • Application requirements are not stable; software must be flexible to adapt to change.

Software Myths (Developer Perspectives)

  • Once the software is demonstrated, the job is done.
  • Issues only begin after software is demonstrated to the customer.
  • There is no way to assess quality before coding and testing..
  • Tiny software bugs grow in complexity as they progress through further stages.
  • The tested code is the only deliverable
  • The code is only the externally visible component of the complete software system.

Software Myths (Management Perspectives)

  • Good standards and procedures in the company are enough to prevent problems.
  • The proof of the pudding is in the eating, not the recipe.
  • Having access to the best tools and environment in the company is enough.

Software Myths (Misplaced Assumptions)

  • All requirements may be pre-specified.
  • Users are expert at specifying their needs.
  • Both users and developers are good at visualization.
  • The project team can communicate unambiguously.

Confused with Programs and Products

  • Programs are usually small with a single developer and user.
  • Software products are large with multiple users and developers.
  • Programs are often ad-hoc, lack proper documentation, and interface.
  • Software products are systematic, well-documented, and user manual-prepared.

Software Programming ≠ Software Engineering

  • Programming involves translating problems into computer-understandable language.
  • Software engineering involves teams, complex systems, indefinite lifespans, and the role of numerous stakeholders.

What is Software?

  • Software is a set of items/objects forming a configuration (i.e. programs, documents, and data).

What is Software? (Continued)

  • Software consists of instructions (programs), data structures, and documents.
  • It has dynamic behavior in real computers and auxiliary equipment.

Unique Characteristics of Software

  • Malleable
  • Human intensive
  • Intangible and hard to measure
  • Usually complex problems
  • Depends on hardware
  • Top of system engineering "food chain"
  • Does not wear out but will deteriorate
  • Requires unusual rigor
  • Has discontinuous operational nature

Casting the Term

  • Software engineering was born in NATO conferences in 1968 to address major software project failures.

What is Software Engineering?

  • The application of systematic, disciplined, and quantifiable approach to software development, operation, and maintenance.
  • A discipline aiming at producing quality software within budget and time, satisfying user needs.

What is Software Engineering? (Continued)

  • Concerned with software development theories, methods, and tools.
  • Application of scientific knowledge in design and construction of computer programs, including associated documentation.
  • Establishes and uses engineering principles for reliable, efficiently functioning software.

Scope and Goals of Software Engineering

  • Scope: study of software processes, development principles, techniques, and notations.
  • Goals: produce quality software delivered on time and within budget, satisfying customers' needs.

Software Process Models

  • Waterfall life cycle
  • Prototyping
  • Spiral model
  • Automatic Synthesis Model
  • Object-oriented model
  • 4 GL model

Traditional Software Engineering

  • Focuses on software systems, including function, data, and behavior.
  • Relies on diagrams like Data Flow Diagram and Entity-Relationship Diagram.

Object-Oriented Software Engineering

  • Focuses on objects, functions, and behavior within software systems.

Evolution of Software Industry

  • Independent Programming Service
  • Software Product
  • Enterprise Solution
  • Packaged Software for the Mass
  • Internet Software and Services

Independent Programming Services (Era 1)

  • Founded in 1955 by Elmer Kubie and John Sheldon.
  • Early software companies focused on building software for hardware companies.

Software Product (Era 2)

  • 1964: Martin Goetz developed Flowchart Software for RCA.
  • Selling software to customers without linking to a specific hardware platform.
  • Development of early database management systems.
  • IBM unbundled software from hardware.

Enterprise Solutions (Era 3)

  • Dietmar Hopp led a team at IBM Germany to start a software company (SAP) in 1972.
  • Marked by the emergence of Enterprise Solution providers.
  • Examples: Baan, Oracle, and implementation of ERP.

Packaged Software for the Mass (Software Era 4)

  • Spreadsheet program VisiCalc (1979)
  • Bill Gates bought the first version of the OS for IBM PCs in 1981.
  • Development of PC-based mass-market software.

Internet Software and Services (Era 5)

  • Netscape browser software (1994) launch of the Internet and value-added services period.

Evolution of Design Techniques

  • Ad hoc
  • Data structure-based
  • Control flow-based
  • Data flow-based
  • Object-oriented
  • Application domain knowledge
  • Specialized SE Knowledge
  • Advanced SE knowledge
  • Guide to the SWEBOK Ironman
  • Computer Science (C.S.)
  • Mathematics

IT Market

  • Hardware products
  • Hardware maintenance & services
  • Software products and Services, including embedded software, professional services, enterprise solutions, and mass-market software.
  • Processing and Internet services

Software Products and Services

  • List of professional services, enterprise solutions, and packaged software companies.

Software Engineering Today

  • Organizational focus on past techniques.
  • Difficulty in education and training.
  • Lack of processes and quality standards within the software engineering industry.

Software Engineering Today? (Continued)

  • Knowledge and integration of best practice methodologies in timely fashion.
  • Specific improvements in specific areas, but little overall progression.

Not Crisis, But a Chronic Problem

  • Consistent software failures persist even after 35 years.
  • Quality, budget, and delivery constraints still prevalent.

What's Wrong?

  • Software engineering hasn't achieved its promise due to a lack of fault free software, meeting delivery deadlines, and fulfilling the customers needs efficiently.
  • Progress despite the flaws of the software engineering industry.

A More Close Look

  • Improvements in software engineering, although some problems persist.
  • Comparing 1995 and 2003 software industry reports reveals some improvements.

So, What's the Problem?

  • Evolving software industry challenges.
  • Educational and training issues.

Software Changes in the Past Years

  • Software size, increasing drastically.
  • Operating environment, changing from batch to complex systems.

Software Changes in the Past Years (Continued)

  • Computer systems and software increasing in complexity and size.
  • Challenges in programming, as simple programming methods cannot handle the complexity.

Situations for Software Are Different Too

  • Intense market forces, unrealistic schedules
  • Changing client needs, more rapid software evolution and use of techniques and tools.
  • Issues in training and education.
  • Talent shortage
  • Always trying new things
  • Complexity moving into software

The Software Industry Today

  • Continued struggles with quality, unrealistic delivery dates, and budgets for producing software, in spite of advancements.
  • Issues involving components, technology, and standards, along with conflicting terminology.

The Current State of Software Engineering Today

  • Goal-oriented
  • Tools and Standards
  • Methodology
  • Theory & Principles

Three Key Challenges

  • Maintaining and updating legacy systems
  • Software/hardware heterogeneity
  • Pressure for faster software delivery

Ever-Present Difficulties

  • Few guiding scientific principles and universally applicable methods within software engineering.
  • Managerial/psychological/sociological challenges are as important as technological.

Future of SE

  • Processes, including requirements engineering and reverse engineering
  • Testing, Maintenance and Evolution, Software architecture and modeling, SE and middleware, tools, and environment, Configuration management, Databases, SE education
  • Software analysis, formal specification, mathematical and reliability foundations, performance, SE for safety, security, mobility, Internet, Software economics, empirical studies, and software metrics

Studying That Suits You

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

Quiz Team

Related Documents

Description

Test your understanding of software engineering concepts, processes, and methodologies. This quiz covers essential topics such as requirements engineering, software design, and advanced methods in software development. Prepare to explore common pitfalls and learn to make informed choices in software processes.

More Like This

Ingeniería de Software
8 questions
Overview of Software Engineering
8 questions

Overview of Software Engineering

RapturousConstellation avatar
RapturousConstellation
Software Engineering Concepts Quiz
44 questions
Use Quizgecko on...
Browser
Browser