Software Types: Custom, Generic, Embedded

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Which of the following best describes 'Bespoke' software?

  • Software sold on the open market to a wide range of customers.
  • Software designed and developed for a specific, individual customer. (correct)
  • Software built into hardware, offering limited modification options.
  • Software used in critical applications demanding timely responses.

Which type of software is specifically designed to run businesses, emphasizing data accuracy and security?

  • Data processing software (correct)
  • Real-time software
  • Embedded software
  • Generic software

What is a key focus of software engineering as a discipline?

  • Primarily the marketing and sales strategies for software products.
  • Purely the technical aspects of coding and algorithm design.
  • Managing the design, development, testing, and maintenance of software systems. (correct)
  • Only the initial requirement analysis phase of software creation.

Which statement reflects the systematic nature of software engineering?

<p>Applying well-understood techniques in an organized and disciplined manner. (C)</p> Signup and view all the answers

Why are software engineering techniques particularly important for large software systems?

<p>They facilitate teamwork and coordination when the system's complexity exceeds individual comprehension. (A)</p> Signup and view all the answers

Which of the following describes a critical aspect of 'good' software?

<p>It should deliver the required functionality and performance, while also being maintainable and dependable. (A)</p> Signup and view all the answers

What is a primary concern regarding software costs?

<p>Software costs often dominate computer system costs, especially for maintenance. (A)</p> Signup and view all the answers

How does maintenance typically affect software structure?

<p>It can corrupt the software structure, complicating further maintenance. (C)</p> Signup and view all the answers

What factor can help reduce maintenance costs in software projects?

<p>Involving the same staff in maintenance for an extended period. (B)</p> Signup and view all the answers

Which of the following is a general issue affecting most software systems today?

<p>Heterogeneity, where systems must operate across diverse networks and devices. (D)</p> Signup and view all the answers

Which principle should guide software development processes?

<p>Using a managed and understood development process. (A)</p> Signup and view all the answers

What has been the impact of the Web on application development?

<p>It has made the Web a primary platform for running applications, driving the development of web-based systems. (C)</p> Signup and view all the answers

Which of the following strategies is a key aspect of web-based systems in software engineering?

<p>Adopting software reuse as a dominant approach for system construction. (A)</p> Signup and view all the answers

What best describes the role of 'front-end' developers with respect to web application development?

<p>Creating user interface and user experience, usually using HTML, CSS, and JavaScript. (C)</p> Signup and view all the answers

What is a software engineer's responsibility regarding confidentiality?

<p>They must respect the confidentiality of their employers and clients, even without a formal agreement. (C)</p> Signup and view all the answers

Which ethical principle states that software engineers shall act consistently with the public interest?

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

Which ethical principle emphasizes fairness and support among software engineering professionals?

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

Which principle requires software engineers to continually enhance their knowledge and skills?

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

What action demonstrates accountability in software engineering?

<p>Taking responsibility for the outcomes resulting from one's actions and decisions. (B)</p> Signup and view all the answers

Why is competence crucial for software engineers?

<p>To avoid misrepresenting their skill level and accepting work beyond their capabilities. (C)</p> Signup and view all the answers

A software engineer discovers their employer is about to release a safety-critical system without proper testing. What ethical dilemma does this present?

<p>Disagreement in principle with senior management's policies. (B)</p> Signup and view all the answers

What are the main activities involved in the discipline of software engineering?

<p>The design, development, testing, and maintenance of software systems. (D)</p> Signup and view all the answers

What does solving customers' problems entail in software engineering?

<p>Buying vs building a solution. (A)</p> Signup and view all the answers

What techniques should be used by a software engineer?

<p>Using techniques that are well understood. (B)</p> Signup and view all the answers

What is one of the key challenges with large, high quality systems?

<p>Dividing up the work so the parts work properly together. (C)</p> Signup and view all the answers

What are some attributes of good software?

<p>It should deliver the required functionality and be dependable. (B)</p> Signup and view all the answers

How do software costs compare to hardware costs?

<p>Software costs dominate hardware costs. (A)</p> Signup and view all the answers

What are the types of software maintenance?

<p>Add functionality, software faults, and operating environment. (A)</p> Signup and view all the answers

What professional issues affect most software?

<p>All of the above. (D)</p> Signup and view all the answers

What should systems be developed with?

<p>A managed and understood development process. (D)</p> Signup and view all the answers

Flashcards

What is software?

A collection of computer programs, procedures and documentation.

What is Custom (Bespoke) Software?

Software designed for a specific customer's needs.

What is Generic Software?

Software sold on the open market to many customers.

What is Embedded Software?

Software built directly into hardware devices.

Signup and view all the flashcards

What is Real-Time Software?

Software for critical applications requiring timely responses.

Signup and view all the flashcards

What is Data Processing Software?

Software used for business operations and data handling.

Signup and view all the flashcards

What is Software Engineering?

Discipline focusing on design, development, testing, and maintenance of software systems.

Signup and view all the flashcards

What is the Goal of Software Engineering?

Solving customers' problems with effective software solutions.

Signup and view all the flashcards

What is Systematic development?

Applying organized and disciplined techniques in software development.

Signup and view all the flashcards

Why is Teamwork Important?

Teamwork is required because large systems cannot be completely understood by one person.

Signup and view all the flashcards

What is Maintainability?

The ability of software to evolve and to meet changing needs.

Signup and view all the flashcards

What is Dependability and Security?

Software's reliability, security, and safety to prevent harm.

Signup and view all the flashcards

What is Effiency?

Software must be efficient in using system resources like memory and processing power.

Signup and view all the flashcards

What is Acceptability?

Software should be understandable, usable and compatible.

Signup and view all the flashcards

What is Software Maintenance?

Modifying software after it has been deployed.

Signup and view all the flashcards

What is Maintenance to Repair Software Faults?

Fixing defects and errors in software.

Signup and view all the flashcards

What is Maintenance to Adapt Software?

Adapting software to function in a new environment.

Signup and view all the flashcards

How do software costs relate to overall computer system costs?

Costs associated with software often surpass the hardware costs.

Signup and view all the flashcards

Maintenance to Modify Functionality?

Adding new features or changing software functions.

Signup and view all the flashcards

What Impacts Maintenance Costs?

Factors like unstable teams, contractual issues, and poor program structure.

Signup and view all the flashcards

Why is Heterogeneity important?

Systems must work across different types of computers and mobile devices.

Signup and view all the flashcards

Why is Business and Social Change important?

Evolving software to meet changing business and society needs.

Signup and view all the flashcards

Why is Trust Important for Software?

Ensuring software is dependable and safe to use.

Signup and view all the flashcards

What is a Managed Development Process?

Managing and understanding each development process involved.

Signup and view all the flashcards

What is Software Reuse?

Developing web-based systems using pre-existing software components.

Signup and view all the flashcards

What is Engineer Confidentiality?

It's about how Engineers should respect customer confidentiality.

Signup and view all the flashcards

What is Engineer Competence?

It's about how Employees should not misrepresent who they are.

Signup and view all the flashcards

What is Front-End web development?

Web development related to user interface.

Signup and view all the flashcards

What is Accountability?

It's about taking the ownership of one's work and actions.

Signup and view all the flashcards

Study Notes

What is Software?

  • Software comprises computer programs, procedures, rules, associated documentation, and data.
  • Custom or Bespoke software is designed for a specific customer's unique needs.
    • Examples: websites, air traffic control systems
  • Generic software, often called Commercial Off The Shelf (COTS) or shrink-wrapped and is sold on the open market.
    • Examples: word processors, spreadsheets, compilers
  • Embedded software is built into hardware, making it difficult to change.

Types of Software

  • Real-time software is used in critical applications where timely responses are crucial.
    • Examples include industrial automation, aerospace systems, medical devices, telecommunications, and financial trading systems.
    • Most embedded systems operate under hard real-time constraints.
  • Data processing software runs businesses.
    • Key concerns are accuracy and security of data.
    • It carries out functions like recording sales, managing accounts, and printing bills.

Software Engineering Defined

  • Software engineering is a discipline focused on the design, development, testing, and maintenance of software systems.
  • The discipline encompasses requirement analysis, design, coding, testing, and deployment.
  • Methodologies, tools, and practices aim to produce high-quality software meeting user and stakeholder needs.
  • It solves customer problems through systematic development and evolution of large, high-quality software systems within cost, time, and other constraints.
  • It involves all aspects of software production, from initial system specification to ongoing maintenance after deployment.
  • It applies appropriate theories and methods to address problems, considering organizational and financial constraints.
  • It includes project management and the development of tools and methods to support software production.

Key Aspects of Software Engineering

  • The main goal of software engineering is solving customer problems.
  • Sometimes buying a solution is better than building it.
  • Adding unnecessary features doesn't help solve the problem.
  • Effective communication is essential for software engineers to identify and understand problems.
  • Systematic development applies established techniques in an organized and disciplined way.
  • Many software engineering practices have been formally standardized by organizations like the IEEE or ISO.
  • Most development work involves evolution of existing systems.
  • Software engineering techniques are vital because large systems are too complex for one person to fully grasp.
  • Teamwork and coordination are therefore essential.
  • A key challenge is dividing work properly and ensuring all parts of the system function together.
  • The final product must meet sufficient quality standards.
  • Projects operate under finite resources, so benefits must outweigh costs.
  • Inaccurate time and cost estimates are a common cause of project failure.
  • There is often competition to provide solutions faster and more affordably.

Essential Software Attributes

  • Maintainability: Software should evolve to meet users' changing needs; adapting to change is critical.
  • Dependability and Security: Characteristics including reliability, security, and safety; software should not cause physical or economic harm and must withstand malicious access.
  • Efficiency: Software should use resources wisely, including responsiveness, processing time, and memory.
  • Acceptability: Software must be understandable, usable, and compatible for its intended users.

Software Costs

  • Software costs usually dominate those of entire computer systems.
  • Software costs on a PC often exceed hardware costs.
  • Software costs are higher for maintenance than for development.
  • For long-term systems, maintenance costs can significantly outweigh development costs.
  • Software engineering prioritizes cost-effective software development.

Software Maintenance

  • It involves modifying a program after it’s been put into use.
  • This term often applies to custom software modifications.
  • Generic software products change to create new versions.
  • It usually doesn’t encompass extensive changes to the system’s architecture.
  • It uses changes implemented by modifying or adding components to the system.
  • Software faults are repaired by changing a system to correct deficiencies.
  • Maintenance, to adapt, ensures operation in alternative environments (OS, computer, etc.).
  • Functionality can be added to, or modified.
  • The system is adapted to satisfy new requirements.
  • Functionality addition or modification accounts for 65% of maintenance efforts.
  • Environmental adaptation makes up 18% of maintenance efforts.
  • Fault repair makes up 17% of maintenance efforts.
  • Costs are generally greater than those of development, potentially ranging from two to one hundred times the development costs, based on application.
  • Technical and non-technical factors affect costs.
  • Costs increase so the software is maintained over time.
  • Maintenance degrades software structure, making it more difficult.
  • Ageing software can result in high support costs (e.g. old languages, compilers).
  • Team stability reduces costs when the same staff members are involved long-term.
  • Contractual issues can determine change incentives.
  • Limited staff skills can impact maintenance.
  • Older programs often degrade making them harder to change.

General Issues Affecting Software

  • Increasing heterogeneity requires systems to work across varied networks, devices etc.
  • Rapid social and business changes require software to adapt quickly.
  • Trust in software is essential.

Software Engineering Fundamentals

  • Always use a managed and fully understood development process when building systems.
  • Use different processes for different types of software.
  • Dependability and performance are key.
  • Understanding/ managing the software specification is important for fulfilling goals.
  • Reuse software when possible, rather than writing new code.

Software Engineering and the Web

  • The web has become a platform for running applications and organizations are increasingly developing web-based systems instead of local ones.
  • Web services provide application functionality accessible over the web.
  • Cloud computing provides computer services with applications running remotely.
  • Users pay according to their usage.
  • Software reuse is the dominant approach to build web systems.
  • A focus on pre-existing software components informs construction.
  • Web systems should be developed and delivered incrementally.
  • It’s impractical to define all requirements in advance.
  • User interfaces are limited by the abilities of web browsers.
  • AJAX can create feature-rich interfaces.
  • Local scripting and web forms are more prevalently used.

Software Development Types

  • Front-End Development: User interface creation using HTML, CSS, and JavaScript.
  • Back-End Development: Server-side operations and data handling, often programmed with Python, Java, or Node.js.
  • Full-Stack Development: Combine front and back-end skills for comprehensive web development.

Professional Responsibilities

  • Confidentiality: Respect employer and client confidentiality, per signed agreements.
  • competence: accurately represent skill level and not accept work outside this level.
  • Intellectual Property Rights: Awareness of local laws and protecting employer/client IP.
  • Computer Misuse: Do not misuse technical expertise to harm others' systems.
  • Act with integrity.
  • Software engineers have to be fair and supportive to their colleagues.
  • Participate in lifelong learning.
  • Must behave in a honest and ethically responsible way if they are to be respected.
  • This extends past the law and the the moral responsibilities of the practice.
  • Act with honesty, integrity, and fairness in all business and professional dealings.
  • Developing and designing software with consideration for users.
  • Privacy, safety and well being of the end user is paramount.
  • Take responsibility for one's actions.

Ethical Principles in Software Engineering

  • Act consistently with the public interest.
  • Act in a manner that is in the best interests of their client and employer.
  • Ensure that their products and related modifications meet the highest professional standards.
  • Maintain integrity and independence in their professional judgment.
  • Promote an ethical approach to management of development and maintenance.
  • Advance the integrity and reputation of the profession.
  • Act in the best interests of their clients.
  • Maintain integrity and independence.

Ethical Dilemmas

  • Disagreement: Differing viewpoints in principle over the policies of senior management.
  • Unethical action: Releasing safety-critical system is done unethically without finishing testing.
  • Participate in military weapon or nuclear system development.

Studying That Suits You

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

Quiz Team

Related Documents

More Like This

Introduction to Embedded Systems
40 questions
Embedded Systems Quiz
8 questions
LISI3 Chapitre 1: Systèmes Embarqués
22 questions
Use Quizgecko on...
Browser
Browser