Software Engineering Chapter 1-5
36 Questions
1 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 is the primary aim of the first part of the book?

To provide a general introduction to software engineering.

Which case studies are mentioned in the first chapter?

  • System for managing records of patients with mental health problems
  • Control system for a portable insulin pump
  • Wilderness weather system
  • All of the above (correct)
  • The waterfall model is discussed as a part of the software engineering processes.

    True

    Which agile method is primarily used as an example in the book?

    <p>Extreme Programming</p> Signup and view all the answers

    What does Chapter 4 cover in the book?

    <p>Requirements engineering</p> Signup and view all the answers

    What is emphasized in Chapter 5 regarding system modeling?

    <p>Use of UML for modeling software systems.</p> Signup and view all the answers

    Which of the following are important themes in software development?

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

    User interaction is minimal in embedded systems.

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

    What is the purpose of the MHC-PMS?

    <p>To maintain information about patients suffering from mental health problems and the treatments they have received.</p> Signup and view all the answers

    An insulin pump is an example of an ______ system.

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

    Software development methods vary dramatically depending on the type of system being developed.

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

    What principle should software engineers adhere to regarding client and employer interests?

    <p>Act in the best interests of their client and employer, consistent with the public interest.</p> Signup and view all the answers

    What is a 'computing cloud'?

    <p>A huge number of linked computer systems shared by many users.</p> Signup and view all the answers

    Match the following types of systems with their primary purpose:

    <p>Embedded system = Controls hardware devices Information system = Manages access to data Sensor-based data collection system = Collects and processes data from sensors</p> Signup and view all the answers

    The software developed using a ______ approach is usually cheaper to change and upgrade.

    <p>web-based</p> Signup and view all the answers

    What are the two overall goals of the MHC-PMS?

    <p>To generate management information for performance assessment</p> Signup and view all the answers

    Patients with mental health problems are always organized and remember their appointments.

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

    What is one key feature of the MHC-PMS regarding patient monitoring?

    <p>The system issues warnings if possible problems are detected.</p> Signup and view all the answers

    The MHC-PMS generates monthly management reports showing the number of patients treated at each ______.

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

    Which of the following individuals are considered users of the MHC-PMS?

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

    The MHC-PMS does not need to adhere to any laws regarding data protection.

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

    Mental health is unique because it can recommend the ______ of patients against their will.

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

    What is a critical requirement of the MHC-PMS related to patient information?

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

    What potential conflict exists in maintaining patient data in the MHC-PMS?

    <p>Privacy vs. availability</p> Signup and view all the answers

    What is software?

    <p>Computer programs and associated documentation.</p> Signup and view all the answers

    What are the attributes of good software?

    <p>Good software should deliver the required functionality and performance to the user and should be maintainable, dependable, and usable.</p> Signup and view all the answers

    What is software engineering?

    <p>Software engineering is an engineering discipline that is concerned with all aspects of software production.</p> Signup and view all the answers

    What are the fundamental software engineering activities?

    <p>Software specification, software development, software validation, and software evolution.</p> Signup and view all the answers

    What is the difference between software engineering and computer science?

    <p>Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.</p> Signup and view all the answers

    What are the key challenges facing software engineering?

    <p>Coping with increasing diversity, demands for reduced delivery times, and developing trustworthy software.</p> Signup and view all the answers

    What are the costs of software engineering?

    <p>Roughly 60% of software costs are development costs; 40% are testing costs.</p> Signup and view all the answers

    What are the best software engineering techniques and methods?

    <p>While all software projects have to be professionally managed and developed, different techniques are appropriate for different types of system.</p> Signup and view all the answers

    What differences has the Web made to software engineering?

    <p>The Web has led to the availability of software services and the possibility of developing highly distributed service-based systems.</p> Signup and view all the answers

    What types of software products exist?

    <p>Generic products, which are stand-alone systems sold on the open market, and customized (or bespoke) products, which are developed for a specific customer.</p> Signup and view all the answers

    Why is software engineering important?

    <p>Individuals and society rely on advanced software systems, necessitating the production of reliable and trustworthy systems economically and quickly.</p> Signup and view all the answers

    What are the four fundamental activities common to all software processes?

    <p>Software specification, software development, software validation, and software evolution.</p> Signup and view all the answers

    Study Notes

    Overview of Software Engineering Book

    • Title: Software Engineering, 9th Edition by Ian Sommerville
    • Publisher: Addison-Wesley, various global locations

    Historical Context

    • "Software engineering" was coined in 1969 at a NATO conference addressing software development issues:
      • Late project deliveries
      • Lack of necessary functionality
      • Over-budget projects
      • Unreliable systems
    • Ian Sommerville began his professional journey in software a year after the conference.

    Importance of Software Engineering

    • Essential for societal functions, including utilities and infrastructure (energy, communications, transport).
    • Software enables exploration of space and development of the World Wide Web.
    • Addressing global challenges like climate change, resource depletion, and population growth relies on effective software solutions.

    Educational Focus

    • Book directed at university and college students, along with professionals seeking to update their knowledge.
    • Emphasizes the training of software engineers to tackle complex software system development.

    Methodological Emphasis

    • Focus on both agile and traditional plan-driven software engineering methods.
    • Intention to integrate the strengths of both methodologies for improved software outcomes.

    Structure and Content

    • Transition from print-only to a hybrid print/web format, facilitating updated and supplementary material availability.
    • Key topics include:
      • Introduction to software engineering
      • Dependability and security
      • Advanced software engineering
      • Engineering management

    Web Integration

    • The book features ‘web sections’ linked to core chapters, enhancing the learning experience.
    • Four additional ‘web chapters’ cover advanced topics:
      • Formal methods
      • Interaction design
      • Documentation
      • Application architectures

    Changes from Previous Editions

    • Restructured content to enhance accessibility for teaching.
    • Consolidated many topics for streamlined presentation.
    • New chapters focusing on:
      • Agile software development
      • Embedded systems
    • Significant revisions, with 30-40% of the text rewritten.

    Teaching Resources

    • Comprehensive teaching support is provided, including:
      • PowerPoint presentations
      • Instructor guides
      • Additional case studies
    • Restricted material available to accredited instructors includes model answers and quizzes.

    Acknowledgments

    • Acknowledgment of contributions from students, reviewers, and family.
    • Special thanks to the author's daughter for proofreading assistance.### Introduction to Software Engineering
    • Software engineering is crucial for modern infrastructures, utilities, manufacturing, distribution, and entertainment.
    • Software systems are abstract and intangible, lacking physical constraints, which can lead to extreme complexity.

    Software Development

    • Different software types require tailored engineering techniques rather than a one-size-fits-all approach.
    • Factors contributing to software project failures include growing system demands and low expectations of software engineering methods.

    Importance of Software Engineering

    • Software engineering is essential for creating reliable, functional software systems that support national and international societies.
    • Many reported software failures arise from inadequate expectations and lack of proper methodology in development processes.

    Software Engineering Challenges

    • Increasing demands from stakeholders require faster delivery of larger and more complex systems.
    • Many organizations engage in software development without formal methods, leading to higher costs and lower reliability.

    Ethical Considerations

    • Ethical issues in software development are vital and should be considered by all software engineers to understand the broader implications of their work.

    Case Studies

    • Introduced systems include a mental health management system, a control system for an insulin pump, and a wilderness weather system, which illustrate various software engineering applications.

    Conclusion

    • Despite existing challenges, software engineering has significantly advanced technology and will continue to influence future innovations and developments.### History of Software Engineering
    • The term 'software engineering' emerged in 1968 during discussions about the 'software crisis.'
    • Early software development practices struggled with scalability for large and complex systems, leading to unreliability and delayed deliveries in the 1970s and 1980s.
    • New techniques developed included structured programming, information hiding, and object-oriented development, alongside tools and notations.

    Professional Software Development

    • Software is commonly developed by teams for business purposes, as opposed to individual programming for personal use.
    • Professional software development requires comprehensive documentation, system documentation, and user guides for effective use and maintenance.
    • Important distinctions exist between software intended for general use versus custom solutions developed for specific clients.

    Characteristics and Quality of Software

    • Quality attributes encompass software functionality, performance, maintainability, and dependability.
    • Attributes vital for various applications include security for banking systems, responsiveness for interactive games, and reliability in telecom systems.
    • The quality of software is defined not just by functionality but also by how the software behaves during operation and its documentation.

    Software Engineering Definition

    • Encompasses all aspects of the software production lifecycle from specification through maintenance.
    • Engineers apply methods and tools to solve practical problems, adhering to organizational and financial constraints.
    • Systematic approaches in software engineering often lead to better quality outcomes compared to informal programming methods.

    Software Process Activities

    • Key activities within a software process include specification, development, validation, and evolution.
    • Different software types necessitate tailored development processes, such as real-time systems requiring complete prior specification.

    Relationship to Other Disciplines

    • Software engineering integrates elements from computer science, focusing on practical issues in software production rather than purely theoretical frameworks.
    • It is also linked to systems engineering, which oversees the broader development of computer-based systems, encompassing both hardware and software.

    Current Challenges in Software Engineering

    • Systems must function across diverse environments, requiring integration with legacy systems and adaptability to various devices.
    • Rapid societal and technological changes necessitate quicker software delivery and flexibility in existing systems.
    • Security and trust are critical, especially for web-accessed software, necessitating robust measures against malicious threats.

    Software Product Types

    • Two primary types of software products are identified:
      • Generic products for the open market (e.g., databases, word processors).
      • Customized products specifically developed for individual client needs (e.g., air traffic control systems).
    • The distinction between generic and custom software is evolving, with more products being adapted from existing software frameworks.

    Essential Attributes of Professional Software

    • Maintainability: Software should evolve to meet user needs efficiently.
    • Dependability and security: Must operate reliably, avoiding damage due to failures or malevolent access.
    • Efficiency: Includes optimal use of memory and processing resources.
    • Acceptability: Software must be understandable, usable, and compatible with other systems.

    Diverse Nature of Software Engineering

    • Software engineering necessitates a systematic approach considering real-world constraints of cost and schedule while addressing user needs.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    This quiz covers topics from the first five chapters of a software engineering book, including the primary aim of the first part, case studies, software development models, and system modeling.

    More Like This

    Agile Methods in System Development
    14 questions
    Systems Requirements and Agile Development
    37 questions
    Agile Modeling and System Development Quiz
    10 questions
    Use Quizgecko on...
    Browser
    Browser