Software Engineering Chapter 1 Quiz
10 Questions
5 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 best describes the primary goal of software engineering?

  • To develop large and complex software products. (correct)
  • To prioritize speed of development over quality.
  • To focus solely on the analysis of problems.
  • To create small, simple software components.
  • In software engineering, what does 'analysis' primarily involve?

  • Creating a formal procedure for problem-solving.
  • Automating aspects of software development.
  • Decomposing a large problem into smaller, more understandable parts. (correct)
  • Combining small software components to form a large system.
  • What is the main purpose of 'synthesis' in the context of software engineering?

  • Breaking down a problem to smaller parts.
  • Developing tools for software development.
  • Building software from smaller, individual components. (correct)
  • Creating methods for software production.
  • What is a 'method' as defined in software engineering?

    <p>A formal procedure or 'recipe' for accomplishing a goal.</p> Signup and view all the answers

    Which of the following is the best description of a 'paradigm' in software engineering?

    <p>A philosophical approach for building a product.</p> Signup and view all the answers

    Which of the following is NOT a primary way to consider quality in software engineering?

    <p>The quality of the project's documentation</p> Signup and view all the answers

    From the perspective of a user, which of the following is the most important aspect for determining the quality of a software product?

    <p>The software's ability to perform its functions correctly and reliably</p> Signup and view all the answers

    What is the primary goal of modeling the software development process?

    <p>To find faults and build fault tolerance.</p> Signup and view all the answers

    Which model focuses on improving the development process and organizational maturity?

    <p>SEI’s Capability Maturity Model (CMM)</p> Signup and view all the answers

    When assessing the quality of software in the context of the business environment, what is a common metric used?

    <p>Return on investment (ROI).</p> Signup and view all the answers

    Study Notes

    Chapter 1: Introduction to Software Engineering Concepts

    • Software products: Large and complex, requiring analysis and synthesis
    • Analysis (decomposing): Breaking a large problem into smaller, understandable pieces; abstraction is key
    • Synthesis (building): Composing a software product from smaller building blocks; composition is challenging
    • Analysis process: A hierarchical breakdown of a problem into smaller subproblems
    • Synthesis process: Combining solutions to the subproblems into a complete solution
    • Software engineering method: Formal procedure (recipe) for accomplishing a goal, independent of the tools used
    • Software engineering tool: Instrument or automated system for accomplishing something better
    • Software engineering procedure: Combination of tools and techniques to produce a software product
    • Software engineering paradigm: Philosophy or approach for building a product (e.g., object-oriented vs. structured approaches)
    • Computer science: Focuses on hardware, compilers, operating systems, and programming languages
    • Software engineering: a discipline using computer and software technologies as problem-solving tools
    • Relationship between computer science and software engineering: Computer science provides theories and functions, while software engineering uses tools and techniques to solve problems

    1.2: How Successful Have We Been?

    • Software performs tasks quickly and effectively (e.g., word processing, spreadsheets, e-mail)
    • Supports advances in various fields (medicine, agriculture, transportation, multimedia education)
    • However, software is not without problems

    1.2: Terminology for Describing Bugs

    • Fault: Occurs when a human makes a mistake (error) during software activities
    • Failure: Departure from the system's required behavior; a fault can lead to a failure

    1.2: Examples of Software Failure

    • IRS's automated tax form processing (extra costs, lost refunds, overtime costs)
    • Therac-25 malfunctioning code (killed multiple people)
    • Reliability constraints canceling many safety-critical systems (systems whose failure poses a threat to life)

    1.3: What is Good Software?

    • Quality: Perspective can be transcendental, user-based, manufacturing, product-based, value-based
    • Good Software Engineering: Must include a strategy for producing quality software
    • Quality considerations: Quality of the product, quality of the process, quality in the context of the business environment

    1.3: Quality of the Product

    • Users: Judge external characteristics (correct functionality, number of failures, type of failures)
    • Designers/Maintainers: Judge internal characteristics (types of faults)
    • Stakeholders: Have different criteria; need quality models to relate user view to developer view

    1.3: McCall's Quality Model

    • Model dimensions: Correctness, Reliability, Efficiency, Integrity, Usability, Maintainability, Testability, Flexibility, Portability, Reusability, Interoperability
    • Model attributes: Traceability, Completeness, Consistency (Accuracy, Error Tolerance, Execution Efficiency, Storage efficiency, Access control, Accessibility, Audit, Operability, Simplicity, Conciseness, Instrumentation, Self-descriptiveness, Expandability, Generality, Modularity, Software System Independence, Machine Independence, Communications commonality, and Data commonality)

    1.3: Quality of the Process

    • Importance of development and maintenance processes
    • Need for modeling (faults, early fault detection, fault tolerance, alternative activities)
    • Models for process improvement (SEI's CMM, ISO 9000, SPICE)

    1.3: Quality of the Context

    • Business value is as important as technical value; business value needs to be quantified
    • Return on Investment (ROI) needs to be considered (reducing costs, predicting savings, improving productivity)

    1.4: Who Does Software Engineering?

    • Customer: Company or person paying for the software
    • Developer: Company or person building the software
    • User: Person who will use the software

    1.4: Participants in a software project

    • Customer (Sponsors system development)
    • User (Uses system)
    • Developer (Builds system and addresses $$ needs)
    • Different roles required for a successful project

    1.5: System Approach

    • Hardware, software, and people interaction
    • Defining activities and objects
    • Defining system boundaries
    • Considering nested systems and interrelationships
    • Example Systems such as a Human Respiratory System and a Paycheck Production System

    1.6: Engineering Approach

    • Requirement analysis and definition
    • System design
    • Program design
    • Writing the Programs
    • Unit testing
    • Integration testing
    • System testing
    • System delivery
    • Maintenance

    1.7: Members of the Development Team

    • Requirement analysts (customer interaction, document requirements)
    • Designers (create system level description)
    • Programmers (implement the design)
    • Testers (identify faults)
    • Trainers (demonstrate system use to users)
    • Maintenance (fixing faults after delivery)
    • Librarian (software requirement documentation and archives)
    • Configuration Management (Maintains artifacts)

    1.7: Typical developer roles

    • Analyst
    • Designer
    • Programmer
    • Tester
    • Trainer

    1.8: How Has Software Engineering Changed?

    • Before 1970s: Single processors (mainframes), transformation design, transaction design
    • After 1970s: Multiple systems, multi-functions
    • Wasserman's Seven Key Factors: Critically of time-to-market, Shifts in the economics of computing, Availability of powerful desktop computing, Extensive local- and wide-area networking, Availability and adoption of object-oriented technology, Graphical user interfaces, Unpredictability of the waterfall model

    1.8: Software Engineering Discipline Changes

    • Abstractions
    • Analysis and design techniques and notations
    • User interface prototyping
    • Software architecture
    • Software process
    • Reuse methodology
    • Measurement
    • Tools and integrated environments

    1.9: Information System Example (Piccadilly Television)

    • Regional British TV franchise
    • Advertising constraints (time, actor, product, time-bought)
    • Software requirements to track airtime

    1.10: Real-time Example (Ariane-5 Rocket)

    • European Space Agency rocket failure
    • June 4, 1996; Failure after 40 seconds
    • Destroyed four satellites; $500 million in loss
    • Reused code from Ariane-4 rocket

    1.11: What this Chapter Means for You

    • Analyze and synthesize solutions
    • Recognize that requirements can change
    • Assess quality from different viewpoints
    • Understand fundamental software engineering concepts (abstraction, measurement)
    • Understand system boundaries

    Studying That Suits You

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

    Quiz Team

    Description

    Test your understanding of the fundamental concepts in software engineering, including analysis and synthesis processes. Explore the various methods, tools, and paradigms that shape the discipline. This quiz covers the foundational elements vital for any aspiring software engineer.

    More Like This

    Use Quizgecko on...
    Browser
    Browser