Chapter 1 Flashcards

1
Q

What are the fundamental principles that apply to all types of software systems?

A

Systems should be developed using a managed and understood development process

Different processes are used for different types of software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is crucial to understand and manage in software development?

A

The software specification and requirements (what the software should do).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a recommended practice instead of writing new software?

A

Reuse software that has already been developed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is Mentcare?

A

An information system intended for use in clinics.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the primary goal of Mentcare?

A

To generate management information that allows health service managers to assess performance against local and government targets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How does Mentcare ensure accessibility for clinics without secure network connectivity?

A

It can run on a PC and download local copies of patient records when disconnected.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What type of patients does the Mentcare system primarily support?

A

Patients suffering from mental health problems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the essential high-level requirements for the insulin pump system?

A

The system shall be available to deliver insulin when required and perform reliably.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are key features of the Mentcare system?

A
  • Individual care management
  • Patient monitoring
  • Administrative reporting
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a primary concern regarding the Mentcare system?

A

Privacy and confidentiality of patient information.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What safety concern does the Mentcare system address?

A

Warning medical staff about potentially suicidal or dangerous patients.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What does the weather station system collect data on?

A
  • Temperature
  • Pressure
  • Sunshine
  • Rainfall
  • Wind speed
  • Wind direction
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the types of services provided in the iLearn system?

A
  • Utility services
  • Application services
  • Configuration services
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What characterizes service-oriented systems?

A

All system components are considered to be a replaceable service.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the purpose of a digital learning environment like iLearn?

A

To embed tools for learning and applications geared to the needs of learners.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What functionality should the weather station system support?

A
  • Monitor instruments and power
  • Manage system power
  • Support dynamic reconfiguration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the components of the weather station system?

A
  • Weather information system
  • Data management and archiving system
  • Station maintenance system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is the role of the insulin pump control system?

A

It collects data from a blood sugar sensor and calculates the required insulin dose.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What ethical responsibilities do software engineers have?

A

To behave honestly and ethically.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is software reuse?

A

The dominant approach for constructing web-based systems by assembling them from pre-existing components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are the high-level activities in software engineering?

A
  • Specification
  • Development
  • Validation
  • Evolution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are the essential attributes of software products?

A
  • Maintainability
  • Dependability
  • Security
  • Efficiency
  • Acceptability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What distinguishes generic software products from customized products?

A

Generic products are marketed to any customer, while customized products meet specific customer needs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is the ACM/IEEE Code of Ethics?

A

A code of ethical practice for software engineers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What ethical principle states that software engineers shall act in the public interest?
PUBLIC
26
True or False: Software engineers should respect confidentiality even without a formal agreement.
True
27
Fill in the blank: Software engineers shall ensure that their products and related modifications meet the highest _______.
professional standards possible
28
What should software engineers do regarding their level of competence?
Not misrepresent their competence.
29
What is a safety-critical system in the context of insulin pumps?
A system where low blood sugars can lead to severe consequences.
30
What does ethical behavior in software engineering involve?
Following a set of principles that are morally correct.
31
What is the rationale for the code of ethics in software engineering?
To ensure software engineering is a beneficial and respected profession.
32
What are the high-level activities of software processes?
Specification, development, validation, evolution
33
What are generic software products?
Stand-alone systems marketed and sold to any customer
34
What are customized software products?
Software commissioned by a specific customer to meet their needs
35
What are the key challenges facing software engineering?
Coping with increasing diversity, demands for reduced delivery times, developing trustworthy software
36
What percentage of software costs are development costs?
Approximately 60%
37
What percentage of software costs are testing costs?
Approximately 40%
38
What is software?
Computer programs and associated documentation
39
What are the attributes of good software?
Functionality, performance, maintainability, dependability, usability
40
What is software engineering?
An engineering discipline concerned with all aspects of software production
41
What are the fundamental software engineering activities?
Specification, development, validation, evolution
42
What is the difference between software engineering and computer science?
Computer science focuses on theory; software engineering focuses on developing and delivering software
43
What is the difference between software engineering and system engineering?
System engineering includes hardware, software, and process engineering; software engineering is a part of it
44
What contributes to software project failure?
Increasing system complexity, failure to use software engineering methods
45
What are data collection systems?
Systems that collect data from their environment using sensors
46
What are systems of systems?
Systems composed of a number of other software systems
47
What is the significance of software engineering in developed nations?
It is essential for economic dependence and system control
48
What is the relationship between software costs and computer system costs?
Software costs often dominate computer system costs
49
What are the main application types in software engineering?
Batch processing systems Entertainment systems Modeling and Simulation systems Stand-alone applications Interactive transaction-based applications Embedded control systems
50
What is a characteristic of maintainable software?
It can evolve to meet changing customer needs
51
What is meant by software dependability?
Reliability, security, safety; should not cause damage in the event of failure
52
What does efficiency in software refer to?
Optimal use of system resources like memory and processing time
53
What is the importance of acceptability in software?
Software must be understandable and usable by its intended users
54
What are general issues affecting software?
Heterogeneity, business and social change, security and trust, scale
55
What is the role of software engineering methods?
To produce reliable and trustworthy systems economically and quickly
56
What are the software process activities?
Specification, development, validation, evolution
57
# Software Project Failure As new software engineering techniques help us build larger, more complex systems, the demands change.
Increasing System Complexity
58
# Software Project Failure The software of companies that do not use software engineering methods become more expensive and less reliable.
Failure to use software engineering methods
59
# Professional Software Development Current programs and associated documentation.
Software
60
# Professional Software Development They may be developed for a particular customer or may be developed for a general market.
Software Products
61
# Professional Software Development Attributes of Good Software
Should deliver required functionality and performance to the user. * Maintainable * Dependable * Usable
62
# Professional Software Development Software Engineering
an engineering discipline that is concerned with all aspects of software production.
63
# Professional Software Development Fundamental Software Engineering Activities
* Software Specification * Software Development * Software Validation * Software Evolution
64
# Professional Software Development Software Engineering VS Computer Science
Computer Science: theory and fundamentals Software Engineering: concerned with practicalities of developing and delivering useful software
65
# Professional Software Development Software Engineering VS System Engineering
System Engineering: concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software Engineering is part of the general process.
66
# Professional Software Development Key Challenges of Software Engineering
* Coping with increasing diversity * Demands for reduced delivery times * Developing trustworthy software
67
# Professional Software Development Costs of Software Engineering
* 60% - Development Costs * 40% - Testing Costs * Evolution costs exceed development costs for custom software
68
# Professional Software Development Best Software Engineering Techniques and Methods
Different techniques are appropriate for for different types of system ## Footnote Not one method is better than another
69
# Professional Software Development Techniques used for games
* Developed in a series of prototypes
70
# Professional Software Development Techniques used for critical control systems
* Require a complete and analyzable specification to be developed
71
# Software Products Generic Products
* stand-alone systems that are marketed and sold to any customer who wishes to buy them
72
# Software Products Customized Products
* Software that is commissioned by a specific customer to meet their own needs.
73
# Software Products Specification of what the software should do is owned by the software developed and decisions on software change are made by the developer
Generic Products
74
# Software Products The specification of what the software should do is owned by the customer for the software and they make decisions on software changes that are required.
Customized Products
75
Essential Attributes of Good Software
* Maintainability * Dependability and Security * Efficiency * Acceptability
76
# Essential Attributes of Good Software Software should be written in such a way so that it can evolve to meet the changing needs of customers
Maintainability
77
# Essential Attributes of Good Software Includes a range of characteristics including reliability, security, and safety. Should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system.
Dependability and Security
78
# Essential Attributes of Good Software Software should not make wasteful use of system resources such as memory and processor cycles. It therefore includes responsiveness, processing time, memory utilisation, etc.
Efficiency
79
# Essential Attributes of Good Software Sotware must be acceptable to the type of users for which it is designed. * Understandable * Usable * Compatible with other systems that they use
Acceptability
80
Software Engineering
engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.
81
engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.
Software Engineering
82
# Software Engineering Using appropriate theories and methods to solve problems bearing in mind organizational and financial constraints.
Engineering Discipline
83
# Software Engineering Not just technical process of development. Also project management and the development of tools, methods, etc. to support software production.
All aspects of software production
84
# Importance of Software Engineering It is usually ________, 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 ________ the software after it has gone into use.
Cheaper Changing
85
What is Software Process?
defined as a set of activities, methods, and practices used to develop and maintain software products efficiently, including project plans, design documents, code, and test cases.
86
What is Software Process Activities
Software process activities include a series of steps and tasks involved in the development of software.
87
List Software Process Activities
* Software Specification * Software Development * Software Validation * Software Evolution
88
# Software Process Activities Software Specification
where customers and engineers **define** the software that is to be produced and the **constraints** on its operation
89
# Software Process Activities Where software is designed and programmed
Software Development
90
# Software Process Activities Software Validation
where the software is checked to ensure that it is what the customer requires.
91
# Software Process Activities Software Evolution
where the software is **modified** to reflect changing customer and market requirements
92
What are the general issues that affect software?
* Heterogeneity * Business and social change * Security and trust * Scale
93
What are the different application types?
1. Stand-alone applications 2. Interactive transaction-based applications 3. Embedded control systems 4. Batch processing systems 5. Entertainment systems 6. Systems for modeling and simulation 7. Data collection systems 8. System of systems
94
# Application Types 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.
Stand-alone applications
95
# Application Types 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.
Interactive transaction-based applications
96
# Application Types These are software control systems that control and manage hardware devices. Numerically, there are probably more systems of this type than any other type of system.
Embedded control systems
97
# Application Types These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs.
Batch processing systems
98
# Application Types These are systems that are primarily for personal use and which are intended to entertain the user.
Entertainment systems
99
# Application Types These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects.
Systems for modeling and simulation
100
# Application Types These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing.
Data collection systems
101
# Application Types These are systems that are composed of a number of other software systems.
Systems of systems
102
List software engineering fundamentals
1. Systems should be developed using managed and understood development process 2. Dependability and performance are important for all types of system 3. Understanding and managing software specification and requirements 4. Reuse software that has already been developed
103
# Internet Software Engineering ____ is now a platform for running application and organizations are increasingly developing web-based systems rather than local systems.
The Web
104
# Internet Software Engineering ____ allow application functionality to be accessed over the web.
Web Services
105
# Internet Software Engineering ____ is an approach to the provision of computer services where applications run remotely on the ‘cloud’.
Cloud computing ## Footnote Users do not buy software. They pay according to use.
106
# Web-based software engineering ____ are complex distributed systems but the fundamental principles of software engineering discussed previously are as applicable to them as they are to any other types of system. ## Footnote The fundamental ideas of software engineering apply to ________ software in the same way that they apply to other types of software system.
Web-based systems
107
# Web-based software engineering ____ is the dominant approach for constructing web-based systems. ## Footnote When building these systems, you think about how you can assemble them from pre-existing software components and systems.
Software Reuse
108
# Web-based software engineering 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.
Incremental and agile development
109
# Web-based software engineering Software may be implemented using ________ engineering, where the software components are stand-alone web services.
Service-oriented systems
110
# Web-based software engineering Interface development technologies such as AJAX and HTML5 have emerged that support the creation of rich interfaces within a web browser.
Rich interfaces
111
# Software Engineering Ethics Software engineers must behave in an ____ and ethically ____ way if they are to be respected as professionals.
* honest * responsible
112
# Software Engineering Ethics Ethical behaviour is more than simply upholding the law but involves following a set of ____ that are ____ correct.
* principles * morally
113
List the issues of professional responsibility
1. Confidentiality 2. Competence 3. Intellectual Property Rights 4. Computer misuse
114
What is ACM/IEEE Code of Ethics?
Association for Computing Machinery Institute of Electrical and Electronics Engineers
115
The preamble for ACM/IEEE Code of Ethics
Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:
116
# The preamble for ACM/IEEE Code of Ethics What are the Eight Principles
1. PUBLIC 2. CLIENT and EMPLOYER 3. PRODUCT 4. JUDGMENT 5. MANAGEMENT 6. PROFESSION 7. COLLEAGUES 8. SELF
117
# Eight Principles of ACM/IEEE Code of Ethics Software engineers shall act consistently with the public interest.
PUBLIC
118
# Eight Principles of ACM/IEEE Code of Ethics Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
CLIENT and EMPLOYER
119
# Eight Principles of ACM/IEEE Code of Ethics Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
PRODUCT
120
# Eight Principles of ACM/IEEE Code of Ethics Software engineers shall maintain integrity and independence in their professional judgment.
JUDGMENT
121
# Eight Principles of ACM/IEEE Code of Ethics Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
MANAGEMENT
122
# Eight Principles of ACM/IEEE Code of Ethics Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
PROFESSION
123
# Eight Principles of ACM/IEEE Code of Ethics Software engineers shall be fair to and supportive of their colleagues.
COLLEAGUES
124
# Eight Principles of ACM/IEEE Code of Ethics Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
SELF
125
# Case Studies A personal insulin pump
An embedded system in an insulin pump used by diabetics to maintain blood glucose control.
126
A mental health case patient management system
Mentcare. A system used to maintain records of people receiving care for mental health problems.
127
A wilderness weather station
A data collection system that collects data about weather conditions in remote areas.
128
iLearn: a digital learning environment
A system to support learning in schools
129
# Insulin pump control system ____ 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.
Safety-critical
130
# Mentcare System Key features of the Mentcare system
1. Individual Care Management 2. Patient Monitoring 3. Administrative Reporting
131
# Mentcare System Concerns regarding Mentcare
1. Privacy 2. Safety
132
# Weather Information System This is responsible for collecting weather data, carrying out some initial data processing and transmitting it to the data management system.
Weather Station System
133
# Weather information system This system collects the data from all of the wilderness weather stations, carries out data processing and analysis and archives the data.
The data management and archiving system
134
# Weather information system This system can communicate by satellite with all wilderness weather stations to monitor the health of these systems and provide reports of problems.
The station maintenance system
135
# iLearn Services ____ that provide basic application-independent functionality and which may be used by other services in the system.
Utility Services
136
# iLearn Services ____ that provide specific applications such as email, conferencing, photo sharing etc. and access to specific educational content such as scientific films or historical resources.
Application Services
137
# iLearn Services ____ that are used to adapt the environment with a specific set of application services and do define how services are shared between students, teachers and their parents.
Configuration services
138
# iLearn Service Integration ____ are services which offer an API (application programming interface) and which can be accessed by other services through that API. Direct service-to-service communication is therefore possible.
Integrated Services
139
# iLearn Service Integration ____ are services which are simply accessed through a browser interface and which operate independently of other services. Information can only be shared with other services through explicit user actions such as copy and paste; re-authentication may be required for each ________ service.
Independent services