CEN4020 final

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/205

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

206 Terms

1
New cards

Software engineering is to make _____ software

RIGHT

2
New cards

What is Software Engineering (v.s. Programming)?

engineering discipline that

is concerned with the practicalities of planning,

developing, testing and delivering useful and reliable

software.

3
New cards

Software engineering is involved with _____-person

development of _____-version programs

multi

4
New cards

Process model - Modifed Waterfall

  • Linear and sequential process.

  • Each phase must be completed before moving to the next.

  • Best for projects with clear, fixed requirements.

  • Limited flexibility for changes.

<ul><li><p><strong>Linear and sequential</strong> process.</p></li><li><p>Each phase must be completed before moving to the next.</p></li><li><p>Best for projects with <strong>clear, fixed requirements</strong>.</p></li><li><p><strong>Limited flexibility</strong> for changes.</p></li></ul><p></p>
5
New cards

Process model - Spiral

  • Iterative and risk-driven approach.

  • Focuses on continuous risk assessment and development in cycles.

  • Suitable for complex projects with evolving requirements.

  • Requires careful risk management.

<ul><li><p><strong>Iterative and risk-driven</strong> approach.</p></li><li><p>Focuses on continuous risk assessment and development in <strong>cycles</strong>.</p></li><li><p>Suitable for <strong>complex projects</strong> with evolving requirements.</p></li><li><p><strong>Requires careful risk management</strong>.</p></li></ul><p></p>
6
New cards

Process model - Agile

Program specification, design and implementation are light and interleaved.

7
New cards

How is the process model - Agile system developed?

as a series of versions or increments with clients involved in version specification and evaluation.

8
New cards

What are the Agile Manifesto - 4 values?

  • individuals and interactions over process and tools

  • working software over comprehensive documentation

  • customer collaboration over contract negotiation

  • responding to change over following a plan

9
New cards

Individuals and interactions over processes and tools

Agile helps them to collaborate and solve any problems that arise

10
New cards

Working software over comprehensive documentation

Agile values documentation, but values working software more.

11
New cards

Customer collaboration over contract negotiation

Agile enables the coordinated teams to align better with the customer requirements.

12
New cards

Responding to change over following a plan

Agile adapt quickly in order to deliver a quality product and ensure their client’s satisfaction.

13
New cards

Incremental planning

Requirements are recorded on story cards and the stories to be included in a release are determined by the time available and their relative priority. The developers break these stories into development ‘Tasks’.

14
New cards

Small releases

The minimal useful set of functionality that provides business value is developed first.

Releases of the system are frequent and incrementally add functionality to the first

release.

15
New cards

Simple design

Enough design is carried out to meet the current requirements and no more.

16
New cards

Test-first

development

An automated unit test framework is used to write tests for a new piece of functionality

before that functionality itself is implemented.

17
New cards

Refactoring

All developers are expected to refactor the code continuously as soon as possible code

improvements are found. This keeps the code simple and maintainable.

18
New cards

Pair programming

Developers work in pairs, checking each other’s work and providing the support to

always do a good job

19
New cards

Collective

ownership

The pairs of developers work on all areas of the system, so that no islands of expertise

develop and all the developers take responsibility for all of the code. Anyone can change

anything.

20
New cards

Continuous

integration

As soon as the work on a task is complete, it is integrated into the whole system. After

any such integration, all the unit tests in the system must pass.

21
New cards

Sustainable pace

Large amounts of overtime are not considered acceptable, as the net effect is often to

reduce code quality and medium term productivity

22
New cards

On-site customer

A representative of the end-user of the system (the customer) should be available full

time for the use of the XP team. In an extreme programming process, the customer is a

member of the development team and is responsible for bringing system requirements to

the team for implementation.

23
New cards

Scrum

agile framework that focuses on managing iterative development

rather than specific agile practices.
- leading agile development methodology

24
New cards

The Scrum Team consists of three roles:

Product Owner, the Development Team, and

a Scrum Master

25
New cards

Product Owner

represents the product’s stakeholders and the voice of the customer.

S/he creates a prioritized, dynamic wish list (user stories) called a product backlog and

is the sole person responsible for managing it.

26
New cards

Development Team

is responsible for delivering the increments of the product. The

team Is self-organizing. No one tells the Development Team how to turn the Product

Backlog into Increments of functionality.

27
New cards

Scrum Master

is a facilitator who arranges daily meetings, tracks the backlog of work

to be done, records decisions, measures progress against the backlog and

communicates with customers and management outside of the team.

28
New cards

product backlog

The starting point for planning, which is the list of

work to be done on the project

29
New cards

What happens during the selection phase in a sprint?

The project team and the customer work together to select features and functionality from the product backlog to create the Sprint Backlog, which is developed during the sprint.

<p>The project team and the customer work together to select features and functionality from the product backlog to create the Sprint Backlog, which is developed during the sprint.</p>
30
New cards

daily meetings (Scrums)

where all team

members share information, describe their progress since the last meeting,

problems that have arisen and what is planned for the following day

31
New cards

What is a key advantage of Centralized Version Control Systems (CVCS)?

Easier to administrate and control backups, access, and progress.

32
New cards

What is a major disadvantage of Centralized Version Control Systems (CVCS)?

Single point of failure.

33
New cards

Why can CVCS be inefficient?

It is slow, and one error can affect everyone.

34
New cards

Why is a network connection necessary in CVCS?

Because everything requires a network connection to the central server.

35
New cards

What is a key benefit of Distributed Version Control Systems (DVCS)?

It allows you to work offline.

36
New cards

How does DVCS support individual development?

Each developer can have their own repository.

37
New cards

When is a network connection required in DVCS?

Only for collaboration purposes.

38
New cards

Why is DVCS faster than CVCS?

Because many operations are done locally.

39
New cards

What is a downside of DVCS regarding project coordination?

Integration is often delegated.

40
New cards

What are the three tree architectures in Git?

Working directory, staging index, repository

41
New cards

Working directory

It is the local copy of the repository where the user

can make changes locally.

42
New cards

Staging index

It is the place where a commit will be prepared. We can

add changes in the staging index before committing them as one

single commit.

43
New cards

Repository

it is the place where committed changes are stored

44
New cards

Atomic Commits

small changes related to specific aspects of the

project, so your team can review, merge, or revoke them easily

45
New cards

Atomic Commits organizes the work by only making changes to the:

relative files

to a specific task, keeping other files clean, and then committing these

changes in a single commit.

46
New cards

What are the two categories of requirements?

functional and nonfunctional requirements

47
New cards

functional requirement

specifies an action that the software product must be able to

perform (what the system is supposed to do)
- Often expressed in terms of inputs and outputs

48
New cards

nonfunctional requirement

specifies constraints of the software product (how the

system is supposed to be) that are measurable.

49
New cards

In requirements specification, what is an actor?

An actor is a type of user that represents the role of someone who interacts with the system.

50
New cards

What do user actors typically do in a system?

They require help from the system to perform tasks and run the system's functions.

51
New cards

Give an example of a user actor in a train system.

  • Passenger: A person in the train

    OR

  • Conductor: A person who checks tickets in the train

52
New cards

Give an example of a user actor in a video game system.

A person who plays a video game.

53
New cards

In requirements specification, what is an external system actor?

An external system actor represents an external system, database, API, platform, client, server, cloud platform, device, or sensor that interacts with your system.

54
New cards

What does a GPS satellite represent in a requirements specification?

An external system that provides the system with GPS coordinates.

55
New cards

How is a database considered an external system actor?

It is an external database that contains data, like payment records, that the system accesses.

56
New cards

What is the role of a financial API as an external system actor?

It is an external API used to post payments to bank accounts.

57
New cards

What is a use case in requirements specification?

A use case represents a functionality provided by the system.

58
New cards

What does each use case typically represent?

One functional requirement of the system.

59
New cards

How should a use case be named?

Using a Verb + Noun/Noun Phrase (e.g., "Process Payment") to indicate an action of the system.

60
New cards

What makes a use case name effective?

It must be sufficiently descriptive and clearly express the action being performed.

61
New cards

How are actors and use cases related?

Each actor must be linked to at least one use case.

62
New cards

Can a use case exist without being directly linked to an actor?

Yes, some use cases may be triggered by another use case rather than directly by an actor.

63
New cards

What does an association represent in a use case diagram?

The participation of an actor in a use case.

64
New cards

How is an association shown in UML diagrams?

By a solid line connecting an actor to a use case.

65
New cards

What is the most basic type of relationship in UML diagrams?

An association.

66
New cards

What does the system boundary represent in a use case diagram?

A rectangular box that indicates the scope of your system.

67
New cards

Where should the system name be placed in a use case diagram?

At the top, inside the system boundary rectangle.

68
New cards

What does it mean if something is inside the system boundary?

It is part of your system.

69
New cards

What does it mean if something is outside the system boundary?

It is not part of your system.

70
New cards

What is software architecture?

It represents the big picture of the system, including structure, subsystems, interactions, and tools.

71
New cards

What are architectural patterns in software architecture?

Reusable solutions to common high-level system organization problems.

72
New cards

What are subsystems in software architecture?

Independent components or modules that perform specific functions within the system.

73
New cards

What do interaction principles refer to in software architecture?

Rules and methods that define how subsystems communicate and work together.

74
New cards

What is the allocation of modules to subsystems?

The process of assigning specific modules to designated subsystems.

75
New cards

What are data storage paradigms?

The models and strategies used to store, manage, and retrieve data (e.g., relational, NoSQL, flat files).

76
New cards

Why are recovery systems important in software architecture?

They ensure the system can recover from failures and maintain availability and data integrity.

77
New cards

What should be listed regarding tools in a software architecture document?

Frameworks, tools, and programming languages used.

78
New cards

What is OO-Design (Object-Oriented Design)?

A detailed view of the system focused on classes, their attributes, methods, and interactions.

79
New cards

What should be included for each class in OO-Design?

Methods and attributes.

80
New cards

What is included in the method list in OO-Design?

Each method with its stereotype (e.g., constructor, getter, setter).

81
New cards

What is included in the attribute list in OO-Design?

Each attribute with its data type.

82
New cards

What is pseudocode used for in OO-Design?

To describe the logic of each method in a human-readable, language-agnostic format.

83
New cards

What are module interactions in OO-Design?

The ways in which different classes or components communicate with one another.

84
New cards

What are design patterns?

Proven solutions to common software design problems (e.g., Singleton, Observer, Factory).

85
New cards

What are programming idioms?

Commonly used coding techniques or conventions in a specific language.

86
New cards

Why are algorithms part of OO-Design?

They define the step-by-step logic used in methods to solve specific problems.

87
New cards

What is UML?

UML (Unified Modeling Language) is a standardized specification language for object-oriented analysis and design.

88
New cards

Is UML a model or a language?

UML is a language, not a model.

89
New cards

What is the purpose of UML?

UML is a general-purpose notation used to visualize, specify, construct, and document the design of software.

90
New cards

How does UML help software developers?

It allows developers to visualize the software design and architecture.

91
New cards

What are some open-source tools for UML modeling?

Gliffy Online, draw.io, yuml, ArgoUML, and Umbrello UML Modeller.

92
New cards

What have we already learned in UML?

we have already learned how to create use case diagrams using UML.

93
New cards

What does a UML class diagram represent?

it represents the structure of the system, models application domain concepts, and specifies the detailed behavior and attributes of classes and their relationships.

94
New cards

What are the key components of a class in a UML class diagram?

Class Name

Attributes

Methods

95
New cards

What is an example of an attribute in a UML class diagram?

name: String

age: int = 0

96
New cards

What is an example of a method in a UML class diagram?

+ getName() : String

+ setName(in/out n: String)

97
New cards

What does the access level "+" represent in UML class diagrams?

Public – The member is visible to all code in the application.

98
New cards

What does the access level "−" represent in UML class diagrams?

Private – The member is visible only to code inside the class.

99
New cards

What does the access level "#" represent in UML class diagrams?

Protected – The member is visible only to code inside the class and any derived classes.

100
New cards

What does the access level "∼" represent in UML class diagrams?

Package – The member is visible only to code inside the same package.