software design

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

1/26

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.

27 Terms

1
New cards

Software design

Problem solving and planning a software solution.

  1. Low level company and algorithm design

  2. High level architectural design

2
New cards

Software design methodologies

Strategies employed to create a software design

3
New cards

Aspects of software design

RODAT:

  1. Requirement gathering

  2. Object oriented design

  3. Design patterns

  4. Architectural patterns

  5. Testing

4
New cards

Problem domain

  1. Actors: agents external to the system interacting with it

  2. Objects: agents working inside the system that make it function

  3. User stories: scenarios for using the system

5
New cards

Software development methodologies

  1. Waterfall

  2. Iterative and incremental

  3. Agile

6
New cards

Waterfall

  1. Unidirectional

  2. One phase after the other

7
New cards

Phases of Waterfall

  1. Requirements

  2. Design

  3. Implementation

  4. Verification

  5. Maintenance

8
New cards

Role of software engineer

Understand how the system-to-be needs to interact with the user or environment so that customer requirements are met and design the software

9
New cards

Programmers task

Implement the software-to-be designed by software engineer

10
New cards

Waterfall pros

  1. Simple to come up with

  2. Easy to manage

11
New cards

Waterfall cons

  1. Only have working product at the end

  2. Hard to revise

  3. Does not incorporate feedback

  4. Not suitable for larger systems

12
New cards

Iterative and incremental

Create minimum viable product and incrementally add to it

  1. Increments defined by amount of work to be done

  2. Repeat till done

13
New cards

Iterative and incremental pros

  1. MVP out sooner

  2. Incorporates feedback

  3. Can work in order of priority

  4. Client can give feedback after each iteration

14
New cards

Iterative and incremental cons

  1. Harder to manage

  2. Initial planning must be efficient as every increment must work with future increments

  3. Defining increments can be difficult

15
New cards

Agile

Builds on iterative and incremental

  1. Increments defined by timed intervals

  2. Not so much planning focus on immediate requirements

  3. Focus on collaboration

16
New cards

Agile pros

  1. Early and frequent release

  2. Accommodate changing requirements

  3. Constant feedback

  4. Simple

17
New cards

Agile cons

  1. Can be difficult to constantly meet with client

  2. Requires more discipline to meet time goals

  3. Time estimation needs to be good

18
New cards

Scrum

  1. Development team: developers, analysts, domain experts

  2. Product owner

  3. Scrum master

19
New cards

Development team role

  1. Autonomy on how to develop increment

  2. Collaborative

20
New cards

Product owner role

  1. Responsible for vision

  2. Reprioritises backlog constantly

  3. Final arbiter on requirements

21
New cards

Scrum master role

  1. Part of dev team

  2. Facilitate the scrum process

  3. Ensure team works together smoothly

  4. Leader not manager

22
New cards

Scrum ceremonies

  1. Sprint planning

  2. Daily scrum

  3. Sprint review

  4. Sprint retrospective

  5. Backlog refinement

23
New cards

Sprint planning

  1. Product backlog

  2. Dev team and product owner work together to pull backlog items into the sprint

  3. Break each backlog item into task

  4. Estimate how many backlog items to do in time window

  5. Prioritize certain backlog items over others

24
New cards

Daily scrum

  1. 15 min daily

  2. Create plan for day

  3. Discuss goals for today

  4. Commit to you and your team

25
New cards

Sprint review

  1. Meet with product owner

  2. Live demo of current version of product

  3. Code complete

  4. Deployed to appropriate env

  5. Adequately tested feedback

  6. Product owner determines which backlog items are done

26
New cards

Sprint retrospective

  1. Reflect on how the last sprint went

  2. How team can improve

  3. Needs to be transparent and safe space for devs

  4. Avoid blaming

27
New cards

Backlog refinement

  1. Take product backlog and refine it

  2. Break down large items into smaller ones

  3. Adjust estimates based on progress

  4. Reassess priorities

  5. Prune unnecessary items