Chapter 1 Flashcards

(131 cards)

1
Q

What does this unit investigate regarding software systems?

A

The characteristics of a good software system and the necessary development process to build such software.

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

Why is it important to focus on users’ needs in software development?

A

To ensure that the software effectively meets the requirements and expectations of its users.

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

What are replaceable and reusable components in software development?

A

Components that can be used in different systems or applications, promoting efficiency and reducing redundancy.

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

What are the different approaches to software development introduced in the unit?

A

Plan-driven and agile approaches.

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

What is software?

A

A collection of computer programs and related data that provide instructions to tell a computer what to do.

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

Define software engineering.

A

It is concerned with the theories, methods, and tools needed to develop reliable and efficient software.

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

What is a system in the context of software development?

A

An assembly of components that are connected together in an organized way.

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

What defines a system boundary?

A

A conceptual line that divides the system being studied from everything else.

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

What is the system’s environment?

A

The things not part of the system that can affect or be affected by it.

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

What is a domain in software development?

A

A particular area of interest.

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

List the important characteristics of software that affect its development.

A
  • Malleability
  • Complexity
  • Size
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is malleability in software?

A

The ease with which software can be changed.

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

How does complexity affect software development?

A

Increased complexity often leads to more errors.

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

What characteristics define a good software system?

A
  • Useful
  • Usable
  • Reliable
  • Flexible
  • Available
  • Affordable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What does it mean for a software system to be maintainable?

A

It should be written and documented in a way that allows changes to be made easily.

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

What are legacy systems?

A

Systems that are usually large, critical to the business, have been changed multiple times, and are often difficult to maintain.

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

What is modularization in software development?

A

The process of decomposing a system into smaller subsystems or modules.

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

What are the two forms of decomposition?

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

What is coupling in software engineering?

A

The degree of interdependence among different modules.

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

Define circular dependency in software.

A

A relation where two or more modules depend on each other to function properly.

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

What is cohesion in a module?

A

How closely related the activities within a single module are to each other.

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

What is a highly cohesive module?

A

A module that performs one task or achieves a single objective.

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

What does a good software system aim for in terms of coupling and cohesion?

A

Low coupling and high cohesion.

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

What is software architecture?

A

The structure of the items that make up a complete software system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What does system architecture include?
* Responsibilities for items * Interconnections * Appropriate technology
26
What is the top layer of a software architecture concerned with?
The presentation aspects related to the user interface.
27
What is the application domain in software development?
Support for the way a user performs a given task.
28
What is the application domain concerned with?
Support for the way a user performs a given task, such as processing a customer's order.
29
How often may a business redesign tasks compared to the user interface?
Less often than amendments made to the user interface.
30
What does the infrastructure of a software system include?
Operating system and databases.
31
What is a component in a software system?
A unit of reuse or replacement, such as a module or class.
32
What are examples of standards for components?
* Enterprise Java Beans (EJB) * .Net * CORBA
33
What characterizes a service in software engineering?
A unit of reuse corresponding to a piece of functionality with published interfaces.
34
What is a service-oriented architecture (SOA)?
Structures software as a set of services.
35
What is software as a service (SaaS)?
Services accessed remotely through a web browser.
36
What are the similarities between components and services?
* Promote reuse * Allow flexibility * Use public interfaces
37
What differentiates a component from a service?
* Component is usually implemented in a specific technology * Service uses communication standards for interoperation
38
What is one characteristic of a good software system?
Meets its users’ needs.
39
What are some desirable characteristics of a software system?
* Usefulness * Usability * Reliability * Flexibility * Availability * Affordability
40
What is modularization in software development?
The main method of dealing with the size and complexity of a software system.
41
What is software engineering?
The establishment and use of sound engineering principles to obtain economically reliable software.
42
What activities are involved in software development?
* Analysis * Design * Implementation * Testing
43
What is a development process in software engineering?
A set of rules defining how a software development project should be carried out.
44
What are deliverables in a software development activity?
Outputs produced upon completion of an activity.
45
What is the life cycle or process model in software development?
The order in which activities are carried out.
46
What is the difference between a customer and a user in software development?
A customer pays for the software; users operate it on a daily basis.
47
What is domain modeling?
Understanding the environment in which a system may be introduced.
48
What is requirements engineering?
A set of steps including requirements elicitation and analysis to define what the system is to do.
49
What does the design phase in software development determine?
How to solve the problem.
50
What is the purpose of the testing phase in software development?
To determine whether the problem has been solved.
51
What is the maintenance activity in software development?
Allows the system to evolve over time to correct errors, adapt to changes, and introduce enhancements.
52
What does quality management in software development ensure?
The characteristics of good software are achieved.
53
What are the models of software development?
* Waterfall model * Iterative model * Incremental model
54
What is the Waterfall model?
A classic model where activities are arranged in a single sequence.
55
Why has the Waterfall model not proven satisfactory in practice?
A working version of the software is not available until late in testing.
56
What is iterative and incremental development?
Starting with a subset of requirements and growing the system with feedback from each iteration.
57
What is the benefit of iterative and incremental development?
Users obtain useful and usable software quickly.
58
What is Agile development?
A popular approach to software development that promotes lightweight and adaptable practices.
59
What does Agile development encourage?
Simpler, faster, and more nimble software development that adapts to changes.
60
What is agile development?
An approach to software development that puts people and working software at the forefront of the development process.
61
What does the term 'agile' refer to?
Best practices in software development.
62
What does 'Agile' with a capital 'A' refer to?
Specific agile methods.
63
What is plan-driven development?
Traditional, more prescriptive approaches to software development.
64
Why are large software projects prone to problems?
Due to their size and complexity.
65
What is risk management in software development?
Assessing risks and taking steps to reduce them.
66
What is traceability in software development?
The ability to trace the history of each requirement in the software development process.
67
What is the purpose of a project notebook?
To organize thoughts and actions and keep a record of notes, ideas, and decisions.
68
Why is it important to keep accurate dates and times in a project notebook?
For traceability, reviewing progress, and facilitating learning.
69
What is a basic process in software development?
A set of rules defining how a software development project should be carried out.
70
What are the types of process models in software development?
Sequential, iterative, incremental, or some combination of these.
71
What does a disciplined approach to software development imply?
Effort to record activities from both personal and project views.
72
What is agile modelling?
Scott Ambler's approach to lighter modelling in software development.
73
What is a 'good model' in software development?
An abstraction that allows focus on essential aspects of a complex problem.
74
What is the Unified Modeling Language (UML)?
A standard modeling language that is diagrammatic and allows text addition.
75
Why is using a standard modeling language important?
It helps new team members become productive faster and maintains consistency in projects.
76
What are structural models in software development?
Models that describe the objects in the real world or in a software system and their relationships.
77
What are behavior models in software development?
Models that describe the behavior in the real world or of a software system over time.
78
Fill in the blank: A software architecture identifies the differing ______.
[views]
79
True or False: Agile development focuses more on process than on people.
False
80
What is the main goal of agile development?
To adapt to inevitable changes in customer requirements.
81
What challenges do large teams face in software development?
Effective communication becomes more difficult.
82
What does the term 'modeling language' refer to?
A language based on diagrams and their construction, meaning, and use.
83
What are the two rules within a diagram-based modeling language?
* Syntax: Determines what diagrams exist and what symbols are used for * Semantic: Defines what these symbols mean
84
What is the purpose of agile modelling according to Scott Ambler?
To help software developers become agile modellers.
85
What is one activity of an agile modeller?
To sketch models on a whiteboard and discuss them.
86
What is software architecture?
A way of identifying the differing views in software development
87
What are the phases of a UP project?
* Inception * Elaboration * Construction * Transition
88
What is the main purpose of the Inception phase in UP?
To develop the business case and estimate the scope and effort required
89
During which phase of UP is the core of the system developed?
Elaboration
90
What is the focus of the Construction phase in UP?
To construct the final product, including lower-risk elements
91
What activities are included in the Transition phase of UP?
Beta testing and deploying the system
92
What does the use case view in UP describe?
Basic scenarios that describe users and tasks they need to perform
93
What does the logical view in UP focus on?
The functional requirements of the software system
94
What is addressed in the implementation view of a software system?
The organization of code modules, source code, data files, and executables
95
What aspects does the process view deal with in UP?
Concurrency, processes, threads, response time, deadlock, and fault tolerance
96
True or False: The UP can be applied in an agile manner.
True
97
What are artefacts in the context of software development?
Models and documents produced from activities that feed into the next activity
98
Name the core activities that follow the UP disciplines.
* Domain modelling * Requirements * Analysis * Design * Implementation * Testing * Deployment
99
What is the purpose of domain modeling?
To gain an understanding of the environment in which the system must operate
100
What does the dynamic model describe?
Business processes and behavior of the domain
101
What are business rules in domain modeling?
Constraints on the operation of the dynamic model
102
Fill in the blank: Requirements are the expression of the things the system must do or the qualities the system must have in order to meet the _______.
[stakeholders’ needs]
103
What is the role of analysis in software development?
To model the structure and behavior of a software solution from a user’s perspective
104
What does the analysis model represent?
Entities in a software solution, evolving from the domain model
105
What is the primary goal of the design phase?
To decide how the system will meet its specification
106
What types of diagrams are used in UML during the design phase?
* Interaction diagrams * Sequence diagrams * Communication diagrams
107
What does the implementation model describe?
The assembled components that comprise the working version of the software
108
What is the implementation model in software development?
A description of the assembled components that comprise the working version of the software.
109
What does the implementation model describe?
How classes are packaged together and shows some of the relationships between such packages of classes.
110
How are relationships in the implementation model represented?
Using a component diagram.
111
What is the purpose of testing in software development?
To ensure that the implementation meets its requirements.
112
When can tests be drawn up in relation to requirements?
As soon as you know the requirements.
113
What approach involves drawing up tests before design?
Test-driven design approach.
114
What is the role of automated testing procedures in test-driven design?
They are set up to run against an initially empty implementation.
115
What is a deployment model?
Records how various components are to be mapped onto different machines and how they will communicate.
116
How can a deployment model be represented?
Using a deployment diagram.
117
What is a model in the context of software development?
An abstract representation of a concept, a specification, a design, or a system from a particular point of view.
118
Why is a standard modelling language beneficial in software development?
It helps those involved in projects to communicate effectively.
119
What is the Unified Modeling Language (UML)?
A useful standard because it is easy to use, sufficiently expressive, unambiguous, and widely used.
120
What must be ensured among the various models created during software development?
They must be consistent and not contradict each other.
121
What should you be able to describe upon completion of the unit?
The essential characteristics of a good software system.
122
What should you be able to explain regarding software systems?
Why a software system can be out of date even as it is being developed.
123
What is the importance of modularisation in software development?
It helps in organizing code into manageable sections.
124
Name one reason why large software projects are prone to problems.
Complexity and lack of communication among team members.
125
What is a key aspect of software development as an engineering discipline?
The application of engineering principles to software creation.
126
What elements are part of a basic software development process?
Requirements analysis, design, implementation, testing, and maintenance.
127
What is the role of documentation in a software development project?
To provide guidance and record decisions made throughout the project.
128
What are benefits of the Unified Modeling Language (UML)?
Standard notation for modeling, improves communication, and aids in understanding system architecture.
129
What kinds of models are used in software development?
Component models, deployment models, and design models.
130
What is the relationship between models, viewpoints, and software development?
Models represent different viewpoints in the development process.
131
How are activities and artefacts related in software development?
Activities produce artefacts that document the development process.