https://en.wikipedia.org/wiki/Class_diagram
(Class Diagram and UML Information)
https://surreylearn.surrey.ac.uk//content/enforced/239747-COM1028_2022-
3_SEMR2_2/Labs/Week06/github-git-cheat-
sheet.pdf?isCourseFile=true&_&d2lSessionVal=VGUGfahKi7qdUe4xaAI6gceg2&o
u=239747
(Git CheatSheet)
https://remotelabs.eps.surrey.ac.uk/
(Remote Labs) - Use GlobalProtect VPN and Login to Heron
https://swcarpentry.github.io/git-novice/
(Git Tutorial)
1) What is Requirements Engineering? How we determine, specify, and categorise the
What is Software Engineering? requirements of a new system.
Software engineering is the development and
maintenance of large and complex software
systems.
,2) What is the difference between a user and A requirement is description of a feature or service
system requirement? that a system should offer or a constraint it must
adhere to.
User requirement:
» High-level description in human language,
varies in specificity and ambiguity.
» I.e., a requirement as given by an end user or
client.
» Stakeholder anyone: who is impacted by the
system, including those who may certify the
system (e.g.,compliance and auditing bodies),
not just those who use it directly.
System requirement:
» Detailed, unambiguous, description of a
function or constraint of the system.
» I.e., a requirement as given by a system
designer.
» Defines what should be implemented so may
form contract between client and contractor.
» May be given in a System Requirements
Specification (SRS).
3) What are functional and nonfunctional Functional requirements relate to what a system
requirements? shall or shall not do. Non-functional
requirements are external factors and constraints
imposed on the system.
Non-functional requirements:
» Often applies to entire system rather than
specific features or services
» Constraints on the services the system can offer,
such as timing, costs, compliance, standards
, 4) What is the Non-Functional
Requirements Hierarchy?
5) How do we measure Non-Functional
Requirements?
6) What is Requirements Gathering? What are How do we find out what our requirements are?
the steps? Requirements elicitation.
Issues:
» Stakeholders don't often know specifics of what
they want.
• May be unrealistic and unachievable as they
don't understand technical capabilities.
» Stakeholders describe problems in their own
way knowing their domain well.
» Different people may describe the same
requirement in different ways.
Steps:
1. Discovery and understanding
2. Classification and organisation
3. Prioritisation and negotiation
4. Documentation
, 7) How do we document requirements? Output of interviews and requirements gathering
may be given as an SRS.
Need to consider requirement quality:
» Validity: do the requirements reflect the actual
needs of users?
» Consistency: do any requirements conflict?
» Completeness: are all requirements accounted
for?
» Realism: are requirements feasible given
constraints?
» Verifiability: how do we confirm that
requirements have been met?
What about...
» Change management? When requirements of
the system evolve.
» Requirement validation? Through requirements
reviews, prototyping and test-case generation.
8) Why is the design of software products There are three factors that drive the design of
important? software products:
– Business and consumer needs that are not met
by current products.
– Dissatisfaction with existing business or
consumer software products.
– Changes in technology that make completely
new types of products possible.
In the early stage of product development, you are
trying to understand what product features
would be useful to users, and what they like and
dislike about the products that they use.