Introduction to Software Engineering
70 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 are the attributes of good software?

Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.

What is software engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production.

What are the fundamental software engineering activities?

Software specification, software development, software validation, and software evolution.

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 is the difference between software engineering and system engineering?

<p>System engineering is concerned with all aspects of computer-based systems development, including hardware, software, and process engineering. Software engineering is part of this more general process.</p> Signup and view all the answers

What are the key challenges facing software engineering? (Select all that apply)

<p>Coping with increasing diversity in software requirements</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. For custom software, evolution costs often exceed development costs.</p> Signup and view all the answers

Which of the following are the best software engineering techniques and methods? (Select all that apply)

<p>Different techniques are appropriate for different types of software systems.</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. Web-based systems development has led to important advances in programming languages and software reuse.</p> Signup and view all the answers

What is software?

<p>Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.</p> Signup and view all the answers

What is the primary difference between generic and customized products?

<p>Generic products are marketed and sold to any customer, while customized products meet the needs of a specific client.</p> Signup and view all the answers

Who owns the specification of what the software should do for generic and customized products?

<p>For generic products, the software developer owns the specification, whereas for customized products, the customer owns the specification.</p> Signup and view all the answers

Which of these are essential attributes of good software? (Select all that apply)

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

What is the role of an engineering discipline in software engineering?

<p>Using appropriate theories and methods to solve problems bearing in mind organisational and financial constraints.</p> Signup and view all the answers

Software engineering only focuses on the technical process of development.

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

Why is software engineering important?

<p>More and more, individuals and society rely on advanced software systems. We need to be able to produce reliable and trustworthy systems economically and quickly.</p> Signup and view all the answers

What makes software engineering methods valuable in the long run?

<p>It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems rather than just write the programs as if it was a personal programming project. For most types of system, the majority of costs are the costs of changing the software after it has gone into use.</p> Signup and view all the answers

Describe the four main software process activities.

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

Which of the following are general issues that affect software? (Select all that apply)

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

How does heterogeneity affect software development?

<p>Increasingly, systems are required to operate as distributed systems across networks that include different types of computer and mobile devices.</p> Signup and view all the answers

How does business and social change impact software?

<p>Business and society are changing incredibly quickly as emerging economies develop and new technologies become available. They need to be able to change their existing software and to rapidly develop new software.</p> Signup and view all the answers

Why is security and trust important in software?

<p>As software is intertwined with all aspects of our lives, it is essential that we can trust that software.</p> Signup and view all the answers

What does scale refer to in software engineering?

<p>Software has to be developed across a very wide range of scales, from very small embedded systems in portable or wearable devices through to Internet-scale, cloud-based systems that serve a global community.</p> Signup and view all the answers

There is a universal set of software techniques applicable to all software systems.

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

What determines the software engineering methods and tools used?

<p>The software engineering methods and tools used depend on the type of application being developed, the requirements of the customer and the background of the development team.</p> Signup and view all the answers

What is a stand-alone application in software engineering?

<p>These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network.</p> Signup and view all the answers

What are interactive transaction-based applications?

<p>Applications that execute on a remote computer and are accessed by users from their own PCs or terminals. These include web applications such as e-commerce applications.</p> Signup and view all the answers

What are embedded control systems?

<p>These are software control systems that control and manage hardware devices. Numerically, there are probably more embedded systems than any other type of system.</p> Signup and view all the answers

Give a brief description of batch processing systems.

<p>These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs.</p> Signup and view all the answers

What are the main characteristics of entertainment systems in software engineering?

<p>These are systems that are primarily for personal use and which are intended to entertain the user.</p> Signup and view all the answers

Who are systems for modelling and simulation developed by?

<p>These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects.</p> Signup and view all the answers

What is the primary function of data collection systems in software engineering?

<p>These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing.</p> Signup and view all the answers

What distinguishes systems of systems in software engineering?

<p>These are systems that are composed of a number of other software systems.</p> Signup and view all the answers

Which of the following statements are true about software engineering fundamentals? (Select all that apply)

<p>Dependability and performance are crucial factors for all types of software.</p> Signup and view all the answers

How does the internet influence software engineering?

<p>The Web is now a platform for running application and organizations are increasingly developing web-based systems rather than local systems.</p> Signup and view all the answers

Explain the role of web services in software engineering.

<p>Web services (discussed in Chapter 19) allow application functionality to be accessed over the web.</p> Signup and view all the answers

What is cloud computing, and how does it affect software development?

<p>Cloud computing is an approach to the provision of computer services where applications run remotely on the 'cloud.' Users do not buy software but pay according to use.</p> Signup and view all the answers

Web-based systems, despite their complexities, are not subject to the same fundamental principles of software engineering as other software systems.

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

What is a key approach for constructing web-based systems, and how does it work?

<p>Software reuse is the dominant approach for constructing web-based systems. When building these systems, you think about how you can assemble them from pre-existing software components and systems.</p> Signup and view all the answers

Describe the concept of incremental and agile development in web software engineering.

<p>Web-based systems should be developed and delivered incrementally. It is now generally recognized that it is impractical to specify all the requirements for such systems in advance.</p> Signup and view all the answers

How do service-oriented systems work in web software engineering?

<p>Software may be implemented using service-oriented software engineering, where the software components are stand-alone web services.</p> Signup and view all the answers

What are rich interfaces, and why are they important in web software engineering?

<p>Interface development technologies such as AJAX and HTML5 have emerged that support the creation of rich interfaces within a web browser.</p> Signup and view all the answers

What principle does software engineering ethics revolve around?

<p>Software engineering involves wider responsibilities than simply the application of technical skills.</p> Signup and view all the answers

What is expected of software engineers in terms of ethical behavior?

<p>Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals.</p> Signup and view all the answers

Ethical behavior in software engineering is strictly limited to upholding legal regulations.

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

What are some issues of professional responsibility in software engineering?

<p>Confidentiality, Competence, Intellectual property rights, Computer misuse.</p> Signup and view all the answers

How should software engineers handle confidential information?

<p>Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.</p> Signup and view all the answers

What are the expectations regarding competence for software engineers?

<p>Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outwith their competence.</p> Signup and view all the answers

What is the role of software engineers regarding intellectual property rights?

<p>Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.</p> Signup and view all the answers

Why is computer misuse a concern in software engineering?

<p>Software engineers should not use their technical skills to misuse other people's computers. Computer misuse ranges from relatively trivial (game playing on an employer's machine, say) to extremely serious (dissemination of viruses).</p> Signup and view all the answers

What is the purpose of the ACM/IEEE Code of Ethics?

<p>The professional societies in the US have cooperated to produce a code of ethical practice.</p> Signup and view all the answers

What is expected of members of professional societies in terms of ethical practice?

<p>Members of these organisations sign up to the code of practice when they join.</p> Signup and view all the answers

What are the key principles outlined in the ACM/IEEE Code of Ethics?

<p>The Code contains eight Principles related to the behavior of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession.</p> Signup and view all the answers

Why is a code of ethics important in the field of software engineering?

<p>Computers have a central and growing role in commerce, industry, government, medicine, education, entertainment and society at large. Software engineers are those who contribute by direct participation or by teaching, to the analysis, specification, design, development, certification, maintenance and testing of software systems. Because of their roles in developing software systems, software engineers have significant opportunities to do good or cause harm, to enable others to do good or cause harm, or to influence others to do good or cause harm. To ensure, as much as possible, that their efforts will be used for good, software engineers must commit themselves to making software engineering a beneficial and respected profession.</p> Signup and view all the answers

What are some ethical dilemmas that software engineers might face?

<p>Disagreement in principle with the policies of senior management. Your employer acts in an unethical way and releases a safety-critical system without finishing the testing of the system. Participation in the development of military weapons systems or nuclear systems.</p> Signup and view all the answers

Describe the case study of a personal insulin pump.

<p>An embedded system in an insulin pump used by diabetics to maintain blood glucose control.</p> Signup and view all the answers

What is the primary purpose of the Mentcare system?

<p>Mentcare. A system used to maintain records of people receiving care for mental health problems.</p> Signup and view all the answers

What is a wilderness weather station?

<p>A data collection system that collects data about weather conditions in remote areas.</p> Signup and view all the answers

What is iLearn, and what is its objective?

<p>A system to support learning in schools.</p> Signup and view all the answers

Outline the functionality of an insulin pump control system.

<p>Collects data from a blood sugar sensor and calculates the amount of insulin required to be injected. Calculation based on the rate of change of blood sugar levels. Sends signals to a micro-pump to deliver the correct dose of insulin.</p> Signup and view all the answers

Why is the insulin pump considered a safety-critical system?

<p>Safety-critical system as low blood sugars can lead to brain malfunctioning, coma and death; high-blood sugar levels have long-term consequences such as eye and kidney damage.</p> Signup and view all the answers

Describe the hardware architecture of an insulin pump.

<p>Needle assembly, Insulin reservoir, Pump, Clock, Sensor, Controller, Alarm, Display 1, Display 2, Power supply.</p> Signup and view all the answers

What are the main steps involved in the activity model of an insulin pump?

<p>Blood sensor, Analyse sensor reading, Blood sugar, Compute insulin, Insulin log, Insulin pump, Control insulin pump, Pump data, Compute pump commands, Log dose.</p> Signup and view all the answers

What are some high-level requirements for an insulin pump system?

<p>The system shall be available to deliver insulin when required. The system shall perform reliably and deliver the correct amount of insulin to counteract the current level of blood sugar. The system must therefore be designed and implemented to ensure that the system always meets these requirements.</p> Signup and view all the answers

What is the goal of the Mentcare system?

<p>A patient information system to support mental health care is a medical information system that maintains information about patients suffering from mental health problems and the treatments that they have received.</p> Signup and view all the answers

Why is the Mentcare system designed to work in clinics that may not have secure network connectivity?

<p>Most mental health patients do not require dedicated hospital treatment but need to attend specialist clinics regularly where they can meet a doctor who has detailed knowledge of their problems. To make it easier for patients to attend, these clinics are not just run in hospitals. They may also be held in local medical practices or community centres.</p> Signup and view all the answers

What are the key objectives or goals of the Mentcare system?

<p>To generate management information that allows health service managers to assess performance against local and government targets. To provide medical staff with timely information to support the treatment of patients.</p> Signup and view all the answers

Describe the architecture of the Mentcare system.

<p>Mentcare client, Mentcare client, Mentcare client, Network, Mentcare server, Patient database.</p> Signup and view all the answers

What are the key features of the Mentcare system?

<p>Individual care management, Patient monitoring, Administrative reporting.</p> Signup and view all the answers

How does the Mentcare system support individual care management?

<p>Clinicians can create records for patients, edit the information in the system, view patient history, etc. The system supports data summaries so that doctors can quickly learn about the key problems and treatments that have been prescribed.</p> Signup and view all the answers

Study Notes

Introduction to Software Engineering

  • Software engineering is a discipline focused on all aspects of software production, from initial specification to ongoing maintenance.
  • Economies of developed nations depend heavily on software.
  • Expenditure on software is a significant portion of a country's GNP.
  • Software costs often exceed hardware costs, particularly in terms of maintenance.
  • Maintaining software is often more expensive than developing it.
  • Increasing complexity demands changes in software systems, creating new capabilities and challenges.
  • Failure to apply software engineering methods can lead to more expensive and unreliable software.
  • Good software must be functional, performant, maintainable, dependable, and usable.

Software Products

  • Generic products are standalone systems sold to various customers. Examples include PC software, project management tools, and CAD software.
  • Customized products are developed for specific clients to meet unique needs, including embedded control systems and specialized applications.

Product Specification

  • Generic product specifications are owned and controlled by the developer.
  • Customized product specifications are owned and controlled by the customer.

Essential Attributes of Good Software

  • Maintainability: Software adapts to changing customer needs and evolves over time.
  • Dependability and security: Reliability, security, and safety are crucial to avoid system failures and ensure safety.
  • Efficiency: Effective use of system resources (memory, processing time).
  • Acceptability: Usability, understandability, and compatibility with existing systems and other tools.

Software Engineering Activities

  • Software specification: Defining the software's functions, features and constraints.
  • Software development: Designing, creating and implementing the software.
  • Software validation: Ensuring the software meets its specifications and user needs.
  • Software evolution: Adapting the software to changes in needs and customer requirements.

General Issues Affecting Software

  • Heterogeneity: Software must accommodate diverse devices and systems.
  • Business and social change: Rapidly evolving technologies demand flexible, adaptable software.
  • Security and trust: Software security needs to keep up with evolving security threats.
  • Scale: Software needs to accommodate a wide range of applications from small to large systems.

Software Engineering Diversity

  • Software systems and their requirements are diverse, making one-size-fits-all techniques unsuitable.
  • Tools and methods used depend on the specific application and development team.

Application Types

  • Stand-alone applications: Typically run on a local computer and don't require a network connection.
  • Interactive transaction-based applications: Accessible via PCs or terminals on a network. Examples: eCommerce applications.
  • Embedded control systems: Systems that interact directly with hardware.
  • Batch processing systems: Process large sets of data in batches.
  • Entertainment systems: Primarily designed for personal entertainment.
  • Systems for modeling and simulation: Used for modeling complex systems and processes.
  • Data collection systems: Retrieve data from various sources and send it to other systems or central processing stations.
  • Systems of systems: Composed of multiple software systems.

Software Engineering Fundamentals

  • Managed development processes: Employing a methodical approach.
  • Dependability and performance considerations: Important elements in software design.
  • Software specification and requirements management: Understanding and managing what software needs to do.
  • Software reuse: Reducing development time and cost by using existing components when appropriate.

Internet Software Engineering

  • Web-based systems are increasingly common.
  • Web services allow application functionality to be accessed via the web.
  • Cloud computing allows remote access and use of software and services.

Web-Based Software Engineering

  • Web-based systems are complex, distributed systems still subject to the same fundamentals of software engineering.

Software Engineering Ethics

  • Software engineering is more than simply technical skill—it involves broader responsibilities and ethical considerations.
  • Professionals should practice in an honest and responsible way, considering the public interest.
  • Behaviour must adhere to higher principles, including the upholding of the law.

Issues of Professional Responsibility

  • Confidentiality: Protecting confidential information of employers and clients.
  • Competence: Avoiding misrepresentation of skills and accepting work beyond one's competency.
  • Intellectual property rights: Respecting intellectual property laws regarding use, duplication, and licensing.
  • Computer misuse: Preventing abuse and inappropriate use of technology, and avoiding viruses, and hacking of systems.

ACM/IEEE Code of Ethics

  • Professional societies provide codes of conduct for software engineers as a guide for ethical behaviour.
  • The codes outline principles and responsibilities relevant to the profession.

Case Studies

  • Include study of individual systems with example use cases and ethical implications, like insulin pump control, mental health case management systems, wilderness weather station system, and iLearn systems.

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 the fundamentals of software engineering and the importance of the discipline in software production. It examines the distinctions between generic and customized software products and the economic implications of software expenditure. Test your knowledge on the principles and practices that ensure successful software development and maintenance.

More Like This

Use Quizgecko on...
Browser
Browser