Practice Exam questions for SE Flashcards

SE revision (11 cards)

1
Q

QA: 1. Consider the integration and process model shown below for reuse-oriented software engineering. Explain why it is essential to repeat the requirements engineering activity in the process

A

Requirements engineering is repeated because discovered components may not meet original needs. The process model includes software discovery and evaluation, followed by requirements refinement, where specs are adjusted based on what reusable parts are available. This loop continues until a practical, component-based solution is defined, ensuring alignment between available components and system goals.

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

QA: 1b(possible scenario) Consider the integration and process model shown below for incremental development model engineering. Explain why it is essential to repeat the requirements engineering activity in the process

A

Requirements evolve with each increment. As software is built and validated, user feedback leads to refined needs. The model shows this through interleaved specification, development, and validation, repeated with each new increment until the final version is achieved.

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

QA: 2. Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process

A

User requirements define what users need in non-technical terms; system requirements specify how the system will meet those needs in technical detail. Making this distinction during development helps tailor communication to different audiences, prevents misunderstandings, and ensures user needs are accurately translated into implementable specifications.

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

QA: 3. Think about the email systems you use, Model the classes that might be used in such a system implementation to represent a mailbox and an email message

A

+—————————-+
Mailbox
+—————————-+
| - messages: List<EmailMessage> |
\+----------------------------+
| +addMessage(msg)| |+deleteMessage(id) |
| +getMessages() |
\+----------------------------+</EmailMessage>

+—————————-+
| EmailMessage |
+—————————-+
| - subject: String |
| - body: String |
|timestamp:DateTime
| - sender: String |
| - receiver: String |
| - isRead: boolean |
+—————————-+
| +markAsRead() |
| +reply() |
+—————————-+

| - owner: String |

Mailbox |

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

QA: 4. There are 4 common associations between classes; what are they, briefly describe and represent each as a UML diagram involving 2 classes them

A

Association→
Relationship where a class uses or refers to another

Aggregation◇→
A “has-a” relationship. The part can exist independently of the whole. Library “has-a” book

Composition◆→
A strong “contains-a” relationship. Part’s lifecycle depends on the whole. House “contains-a” room

Inheritance▲→
A subclass inherits from a superclass. “Is-a” relationship. Dog “is-a” animal.

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

QA: 5. Software engineering is not only concerned with issues like system heterogeneity, business and social change, trust, and security, but also with ethical issues affecting the domain. Give some examples of ethical issues that have an impact on this domain

A
  1. Privacy and Data Protection =

Engineers design systems to collect, store and transmit user data(location, names). Failure to do so (without consent) violates the privacy rights. In EU, GDPR mandates data protection; violations lead to heavy fines. Mobile health app sending personal data to 3rd parties without clear user consent

  1. Bias and Fairness in Algorithms =

Algorithms trained on biased data reinforce inequality, moreso in high-stakes systems. Discrimination may not be intentional yet harmful to underrepresented or vulnerable groups. Developers are ethically responsible for testing and mitigating bias in AI/ML systems. AI hiring tool favouring male candidates due to historical hiring patterns in training data.

  1. Cybersecurity Responsibility =

Engineers must protect users and systems from any vulnerabilities. Negligence in doing so can expose users to theft, fraud, data leaks. Security isnt simply technical - its ethical; users place trust in systems to look after their data. software failing to encrypt passwords, leading to a data breach affecting millions.

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

QA: 6. Draw a simple sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrolment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalogue to find out about available courses. Use the time line headings: ‘:Student’ with components ‘:CourseCalatogue’ and ‘:Course’ as below

A

sequence diagram - use lines to go down for left right and bottom, bars on the side lines to show processes, box to show looping

getAvailableCourses() request from :Student to :CourseCatalog

registerForCourse() goes from :Student to :Course

checkAvailability() is an internal method inside :Course, so its drawn as a self-message

registrationConfirmed is the response back to the :Student

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

QA: 7. What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products?

A
  1. Generic software = built for general use - sold to many customers
  2. Custom software = built for specific client - based on exact needs

Implications of generic
a) Users cannot influence requirements or future updates
b) May include features they dont need or lack features they do need
c) Generic software faster to deploy lower in cost

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

QA: 8. Agile development methodologies like Scrum easily accommodate the evolution of software from the development phase into the maintenance phase. Justify this statement 8 marks

A

Work is done in short sprints - changes can be added continuously

Maintenance is integrated onto ongoing cycles, not a separate phase

Bugs + new requirements are added and prioritised

Scrum involves the Product Owner, who reflects real user needs

Reflect and adapt at end of each cycle

Web app gets real-user feedback = team adds bug fixes and improvements to backlog = they are then estimated, prioritised and implemented next sprint

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

QA: 9. Briefly discuss why it is usually cheaper in the long run to use software engineering methods and techniques for software systems. 12 marks

A

Using SE methods enables: upfront investment, long-term savings through fewer bugs, reusable code, easier updates. Prevention + structure = lower total cost of ownership

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

QA: 10. Explain how the principles underlying agile methods lead to the accelerated development and deployment of software. 10 marks

A

It does it by breaking down work into small, manageable iterations that deliver working software early and often. Agile reduces delays, enables continuous progress, speeds up delivery.

For example, instead of waiting 6 months to release a game, you may take 4-5 weeks implementing features and releasing a demo version of the product, getting real user feedback and iterating accordingly.

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