software engineering project Flashcards

(21 cards)

1
Q

what is involved in defining and analysing the requirements of a problem (syllabus)

A
  • demonstrating needs or opportunities
  • assessing scheduling and financial feasibility
  • generating requirements including functionality and performance
  • defining data structures and data types
  • defining boundaries
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

what are some tools used to develop ideas and generate solutions

A
  • brainstorming, mind-mapping and storyboards
  • data dictionaries, including selecting appropriate data types
  • algorithm design
  • code generation
  • testing and debugging
  • installation
  • maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

what are types of software implementation methods

A
  • direct (switch from old to new)
  • phased (gradually implementing in phases/modules)
  • parallel (new/old run simultaneously for a period)
  • pilot (new system for some users before full scale implementation)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

what is the waterfall approach and its advantages/disadvantages (syllabus)

A
  • logical progression of steps used throughout the life cycle
  • stages of ‘falling water’ (requirements, specifications, design, development, integration, testing and debugging, installation, maintenance)
  • scale and types of developments (clearly defined requirements, large)
  • clear milestones, good when requirements unlikely to change, easier to manage
  • BUT inflexible, can be high risk, not suitable for evolving projects
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what is the agile approach (syllabus)

A
  • rate of developing a final solution (incremental/frequent releases of working software, continuous feedback loop)
  • method tailoring (adjusting sprints to fit team, project type, etc)
  • iteration workflow (cycle of planning, development, testing, review)
  • scale and types of developments (small-large teams, unclear/changing requirements, close stakeholder collaboration)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

what is the wagile approach (syllabus)

A
  • hybrid model
  • when (agile after initial planning/requirements - cycles used in development, testing, refinement stages)
  • how (sprints, user stories, continuous integration, stakeholder involvement)
  • scale and types of developments (projects require extensive initial planning, requirements known at high level, specifics may change)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

project management techniques that can help plan and conduct the development and implementation of a project or software solution (syllabus)

A
  • scheduling and tracking using a software tool
  • gantt charts (display component tasks on estimated timeline, showing dependencies, resource allocation)
  • collaboration tools (managing communication, file sharing, team coordination)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explore social and ethical issues associated with project work (syllabus)

A
  • working individually
  • working collaboratively
  • responding to stakeholders
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are key communication issues to consider during software project work? (syllabus)

A
  • involving and empowering the client (engaging early and throughout project)
  • enabling feedback (continuous, two way communication)
  • negotiating (boundaries, feasibility, managing conflicts)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Why is feedback important during software engineering projects?

A
  • helps identify issues early
  • improves functionality and usability
  • encourages iterative improvements and better stakeholder alignment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is quality assurance in software engineering?

A

the process of ensuring a software product meets defined standards and user expectations through continuous monitoring, testing and validation

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

How is software quality defined and measured?

A
  • defining criteria on which quality will be judged (measurable - functionality, usability, performance, security, maintainability, accessibility)
  • ensuring requirements are met using a continual checking process (ongoing testing, feedback loops, iterative refinements)
  • addressing compliance and legislative requirements (privacy laws, accessibility standards, copywriting, licensing)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the purpose of modelling tools in software engineering?

A

help developers visualise, plan and communicate software structure, logic and data flows before and during development
- planning/documentation
- identify issues early

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

What are examples of modelling tools used in software engineering?

A
  • DFDs (show how data moves through the system)
  • class diagrams (define object relationships and attributes)
  • decision trees (model logic and conditions)
  • gantt charts (project scheduling)
  • storyboards/wireframes (model UI and navigation)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what is the contribution of back-end engineering in the success and ease of software development?

A
  • technology used (languages, frameworks, databases, APIs)
  • error handling (detecting, logging, managing)
  • interfacing with front end (APIs, HTTP requests, data formats)
  • security engineering (authentication, authorisation, validation/sanitisation, encryption)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What does it mean to design, construct, and implement a solution in software engineering?

A
  • design - creating models, wireframes
  • constructing - writing code and developing features
  • implementing - testing, deploying
16
Q

Why is resource allocation important during software development?

A
  • efficient progress
  • risk reduction
  • balanced workload
17
Q

what are strategies to respond to difficulties when developing a software solution

A
  • looking for a solution online
  • collaboration with peers
  • outsourcing
18
Q

what are some language-dependent code optimisation techniques

A

python
- list comprehensions
- built in functions
js
- asynchronous methods
sql
- indexed queries

19
Q

How can feedback be analysed and responded to in software development?

A
  • collecting user/client feedback
  • identifying issues/patterns
  • applying changes that meet expectations and technical feasibility
20
Q

how to evaluate effectiveness of a software solution

A
  • developing a report to synthesise feedback
  • developing a test plan (what, how, expectations)
  • testing data used/generated based on path and boundary testing (making sure all possibilities are tested + values at edge of input ranges)
  • comparing actual output with expected output