Chapter 1 Flashcards

1
Q

Why is software important?

A

Economies of ALL developed nations depend on it; more and more systems are software controlled.

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

What is the scope of software engineering?

A

Concerned with theories, methods, and tools for professional software development.

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

What is the definition of software engineering?

A

The establishment and use of sound engineering principles to obtain economically software that is reliable and works efficiently on real machines.

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

What is software?

A

The product that software professionals build and then support over the long term.

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

What are the components of software?

A

(1) Instructions (computer programs) providing features, function, performance; (2) Data structures for storing/manipulating information; (3) Documentation describing operation and use.

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

How do software costs compare to hardware costs?

A

Software costs often dominate computer system costs, frequently exceeding hardware costs (e.g., on a PC).

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

What is the difference between maintenance and development costs?

A

Software costs more to maintain than develop. Maintenance costs can be several times development costs over a system’s life.

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

What is the goal of software engineering regarding costs?

A

To achieve cost-effective software development.

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

What is a reason for software project failure related to complexity?

A

As techniques improve, demands change: larger, more complex systems needed quickly with new capabilities.

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

What is a reason for software project failure related to SE methods?

A

Writing programs without SE methods is easy initially, but leads to software that is often more expensive and less reliable than it should be.

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

What are the attributes of good software?

A

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

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

What is the difference between software engineering (SE) and computer science (CS)?

A

CS focuses on theory and fundamentals. SE focuses on the practicalities of developing and delivering useful software.

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

What is the difference between software engineering (SE) and system engineering?

A

System engineering is concerned with all aspects of computer-based system development (hardware, software, process). SE is part of this broader process.

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

What are the key challenges facing software engineering?

A

Coping with increasing diversity, demands for reduced delivery times, and developing trustworthy software.

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

What are the costs of software engineering?

A

Roughly 60% development costs, 40% testing costs. For custom software, evolution costs often exceed development costs.

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

What are the best software engineering techniques and methods?

A

Different techniques are appropriate for different systems. No single method is best for all. (e.g., prototypes for games, formal specification for safety-critical systems).

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

What differences has the web made to software engineering?

A

Led to availability of software services, highly distributed service-based systems, and important advances in programming languages and software reuse.

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

What are generic software products?

A

Stand-alone systems marketed and sold to any customer wishing to buy them. Examples: PC graphics programs, project management tools, CAD software.

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

What are customized software products?

A

Software commissioned by a specific customer to meet their own needs. Examples: Embedded control systems, air traffic control software, traffic monitoring systems.

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

Who owns the product specification for generic software?

A

Owned by the software developer. Developer makes decisions on software changes.

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

Who owns the product specification for customized software?

A

Owned by the customer. Customer makes decisions on required software changes.

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

What is the attribute of good software related to maintainability?

A

Software should be written so it can evolve to meet changing customer needs (critical due to changing business environments).

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

What is the attribute of good software related to dependability and security?

A

Includes reliability, security, safety. Should not cause physical/economic damage on failure. Malicious users should not be able to access/damage.

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

What is the attribute of good software related to efficiency?

A

Should not make wasteful use of system resources (memory, processor cycles). Includes responsiveness, processing time, memory utilization, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is the attribute of good software related to acceptability?
Must be acceptable to the type of users it's designed for. Must be understandable, usable, and compatible with other systems they use.
26
What is the refined definition of software engineering?
An engineering discipline concerned with all aspects of software production, from early system specification through to maintenance after deployment.
27
What does SE as an engineering discipline involve?
Involves using appropriate theories and methods to solve problems, bearing in mind organizational and financial constraints.
28
What does 'all aspects' in SE mean?
Includes not just the technical process of development, but also project management and the development of tools, methods, etc., to support production.
29
Why is there a need for software engineering?
Individuals and society rely increasingly on advanced software systems. We need to produce reliable and trustworthy systems economically and quickly.
30
What is the cost-effectiveness of SE?
Usually cheaper in the long run to use SE methods/techniques, as the majority of costs for most systems arise from changing the software after it's in use.
31
What is the definition of a software process?
A collection of activities, actions, and tasks performed when a work product is created. It's an adaptable approach, not a rigid prescription.
32
What is the purpose of a software process?
To deliver software in a timely manner and with sufficient quality to satisfy those who sponsored its creation and those who will use it.
33
What is the specification activity in the software process?
Customers and engineers define the software to be produced and the constraints on its operation.
34
What is the development activity in the software process?
The software is designed and programmed.
35
What is the validation activity in the software process?
The software is checked to ensure it meets the customer's requirements.
36
What is the evolution activity in the software process?
The software is modified to reflect changing customer and market requirements.
37
What is the communication activity in the generic process framework?
Communicate with the customer to understand objectives and gather requirements.
38
What is the planning activity in the generic process framework?
Creates a 'map' defining the work: describes tasks, risks, resources, work products, and work schedule.
39
What is the modeling activity in the generic process framework?
Create a 'sketch' showing architectural look, how constituent parts fit together, and other characteristics.
40
What is the construction activity in the generic process framework?
Code generation and testing.
41
What is the deployment activity in the generic process framework?
Delivered to the customer who evaluates the products and provides feedback.
42
What is the applicability of the generic process framework?
These five activities apply to all software development (details vary). Often applied iteratively, with each iteration producing a software increment.
43
What is the purpose of umbrella activities?
Series of steps/procedures followed by the development team to maintain progress, quality, handle changes, and manage risks throughout development.
44
What is the software project tracking and control umbrella activity?
Assess progress against the plan and take actions to maintain the schedule.
45
What is the risk management umbrella activity?
Assesses risks that may affect the outcome and quality.
46
What is the software quality assurance umbrella activity?
Defines and conducts activities to ensure quality.
47
What is the technical reviews umbrella activity?
Assess work products to uncover and remove errors before the next activity.
48
What is the measurement umbrella activity?
Define and collect process, project, and product measures to ensure stakeholder's needs are met.
49
What is the software configuration management umbrella activity?
Manage the effects of change throughout the software process.
50
What is the reusability management umbrella activity?
Defines criteria for work product reuse and establishes mechanisms to achieve reusable components.
51
What is the work product preparation and production umbrella activity?
Create work products such as models, documents, logs, forms, and lists.
52
What is a general issue affecting software related to heterogeneity?
Systems increasingly need to operate as distributed systems across networks containing different types of computer and mobile devices.
53
What is a general issue affecting software related to business and social change?
Business and society change rapidly (emerging economies, new tech); software must change and new software must be developed rapidly.
54
What is a general issue affecting software related to security and trust?
As software is intertwined with all aspects of our lives, it is essential that we can trust it.
55
What is a general issue affecting software related to scale?
Software is developed across a very wide range of scales, from small embedded systems to Internet-scale, cloud-based systems for global communities.
56
What is the first software engineering diversity principle?
There are many different types of software systems, and no universal set of software techniques is applicable to all.
57
What is the second software engineering diversity principle?
The SE methods and tools used depend on the application type, customer requirements, and the development team's background.
58
What are stand-alone applications?
Run on a local computer (e.g., PC), include all necessary functionality, don't need network connection.
59
What are interactive transaction-based applications?
Execute on a remote computer, accessed by users from their own PCs/terminals. Includes web applications like e-commerce.
60
What are embedded control systems?
Software control systems that control and manage hardware devices. Probably the most numerous type of system.
61
What are batch processing systems?
Business systems designed to process data in large batches, processing many inputs to create outputs.
62
What are entertainment systems?
Systems primarily for personal use, intended to entertain the user.
63
What are systems for modeling and simulation?
Developed by scientists/engineers to model physical processes or situations, often involving many interacting objects.
64
What are data collection systems?
Collect data from their environment using sensors and send that data to other systems for processing.
65
What are systems of systems?
Systems composed of a number of other independent software systems.
66
What are AI (Artificial Intelligence) systems?
Software using non-numerical algorithms to solve complex problems. Examples: robotics, expert systems, pattern recognition.
67
What is the first fundamental of software engineering?
Managed Process: Systems should be developed using a managed and understood development process (appropriate process varies by software type).
68
What is the second fundamental of software engineering?
Dependability and Performance: These attributes are important for all types of system.
69
What is the third fundamental of software engineering?
Requirements Management: Understanding and managing the software specification and requirements (what the software should do) is important.
70
What is the fourth fundamental of software engineering?
Reuse: Where appropriate, reuse software that has already been developed rather than write new software.
71
What is the nature of web-based systems?
Complex distributed systems.
72
How do SE principles apply to web systems?
The fundamental principles and ideas of software engineering apply to web-based software just as they apply to other software types.
73
What is the characteristic of web software engineering related to software reuse?
Reuse is the dominant approach for constructing web-based systems; involves assembling systems from pre-existing components.
74
What is the characteristic of web software engineering related to incremental and agile development?
Web-based systems should be developed and delivered incrementally. Specifying all requirements in advance is generally impractical.
75
What is the characteristic of web software engineering related to service-oriented systems?
Software may be implemented using service-oriented software engineering, where components are stand-alone web services.
76
What is the characteristic of web software engineering related to rich interfaces?
Interface development technologies (e.g., AJAX, HTML5) support creating rich interfaces within a web browser.
77
What is the key point recap regarding SE definition?
Software engineering is an engineering discipline concerned with all aspects of software production.
78
What are the essential software attributes?
Maintainability, dependability and security, efficiency, and acceptability.
79
What are the high-level activities in software engineering?
Specification, development, validation, and evolution are part of all software processes.
80
What does universality in software engineering mean?
The fundamental notions of software engineering are universally applicable to all types of system development.
81
What does system diversity imply in software engineering?
There are many different types of system, each requiring appropriate SE tools and techniques for development.
82
What is the applicability of fundamentals in software engineering?
The fundamental ideas of software engineering are applicable to all types of software system.
83
What is the universality of software engineering?
The fundamental notions of software engineering are universally applicable to all types of system development.
84
What is system diversity in software engineering?
There are many different types of system, each requiring appropriate SE tools and techniques for development.
85
How are the fundamental ideas of software engineering applicable?
The fundamental ideas of software engineering are applicable to all types of software system.
86
Software development refers to
A set of computer science that are dedicated to the process of creatinh, designing, deploying, and supporting software