Software Engineering and Software Process Flashcards

(37 cards)

1
Q

What is software development?

A

It’s the process of designing,
creating, testing, and
maintaining computer
programs and application

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

What is software engineering?

A

It’s applying systematic and
structured approach, utilizing
engineering principles to
software development to
create high-quality, reliable,
and maintainable software

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

What is a software process?

A

It’s sequence of activities to produce software

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

What are the four fundamental components of Software process?

A

1.Specification
2.Development
3.Validation
4.Evolution

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

What is specification

A

It’s defining functionalities and constraints (non-functional requirements) by Elicit the requirements, Model / formalize the requirements and validate the requirements

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

What is development

A

It’s designing and producing the software that meets the requirements like Functionalities and constraints,Architecture (organize the components),Databases,Interfaces etc

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

What is Validation

A

ensuring that the developed software meets the
requirements(.Does the software meet the requirements?
* Is the software reliable?
* Is the software efficient?
* Is the software secure?)

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

What is evolution

A

changing the software to reflect changes required by the customer or
market requirements

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

Name the two types of Software processes

A

1.Plan-driven development
2.Agile development

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

Define plan-driven development

A

It’s a software process where all activities are planned in advance and progress is measured against the plan

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

Define agile development

A

It’s a software process where planning is always incremental and easy to change according to the customer requirements

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

Define software process models

A

These are simplified representation of a software processes also known as software development life cycle model.They are high level and generic descriptions of a software process and different software process models represent different software processes applicable to diverse contexts.

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

Name different types of software process models

A

1.Waterfall model
2.Incremental model

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

Define waterfall model

A
  • It’s a linear Software Process Model
  • Processes are divided into different stages
  • Each stage must be finished before starting the next one (cascading
    shape)
  • One should move to the next phase only when its preceding stage
    is completed and perfected.
  • It’s one of the oldest models
    -It’s a plan-driven process
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the advantages/Pros of waterfall model?

A
  • Useful in cases where the
    rigidity of the process is a plus
    . Embedded systems: software must interface with the hardware systems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the disadvantages/cons of waterfall model?

A
  • It’s not flexible – cannot
    accommodate for the evolving needs from different stakeholders
  • No feed back between stages
17
Q

Define incremental model

A

It’s a successive version model which builds on an initial version and successive versions(or iterations) are built with new refined features.

18
Q

What are the advantages/Cons of incremental model

A
  • It’s flexible
  • Client can be actively involved to provide feedback
  • Correct mistakes
  • Change requirements
  • Delivery and deployment early without all functionalities
19
Q

What are the disadvantages/cons of incremental model?

A
  • Too flexible?
    * Hard to manage among large teams
  • Limited Overall View
    * Design decisions are difficult to establish
  • Systems can degrade with new increments
    • Continuous maintenance
      overhead
20
Q

Is incremental model Agile or plan-driven?

A
  • It can be agile (iterations planned incrementally) or plan-driven (iterations
    planned in advance)
  • Usually both
    • Early iterations planned,
      with possibility to adapt in
      later iteration
21
Q

Define agile manifestos and principles

A

1.Individuals & Interactions > Processes & Tools
2.Working Software > Comprehensive Documentation
3.Customer Collaboration > Contract Negotiation
4.Reacting to Change > Following a Plan

22
Q

What does Individuals & Interactions > Processes & Tools as an agile manifesto & principles entail

A
  • Build projects around motivated individuals
  • Give them support they need
  • Trust them to get the job done
  • Face-to-face conversation is the most effective method of
    conveying information
  • Applies to inter- and intra-team communication
23
Q

What does Working Software > Comprehensive Documentation as an agile manifesto & principles entail

A
  • Working software should be the primary measure of progress
    * Iterate on prototypes
    that deliver Minimum
    Viable Products (MVPs)
  • Top priority is customer satisfaction
    * Achieved through early
    and continuous delivery
    of valuable software
  • Simplicity is essential
24
Q

What does Customer Collaboration > Contract Negotiation as an agile manifesto & principles entail

A
  • Developers must work together with other team members
  • Daily interaction throughout the project
  • Deliver working software frequently every:
    * Month, Week, Day
    * Preference is given to
    shorter timescales!
  • Project cadence should be sustainable
    * Stakeholders should
    maintain a constant pace
25
What does Reacting to Change > Following a Plan as an agile manifesto & principles entail
* Changing requirements are welcomed * Even late in development! * Continuous attention to technical details * Team regularly reflects on how to become more effective * Behavior is adjusted accordinglyl
26
Why is scrum agile
Because it's a software process that follows agile manifesto
27
Scrum: A Framework of Agile Development
* The people: * Product owner, developer, scrum master * The events: * Release, sprint, sprint planning, daily scrum, sprint review, sprint retrospective * The artifacts: * Backlog, user story, epic
28
Talk about the people in scrum
* Product owner (Focus on the product) * Customer or project manager in the company * Identify features, modifications, update and prioritize the backlog * Have the vision of the product and guide the development. * Scrum master (Focus on the scrum process) * Accountable for the Scrum Team’s effectiveness * Ensure the scrum process follows the scrum guide * Developers
29
Discuss release and sprint of scrum
* Release (several months) * long-term goal (features) * looks several months ahead, which features should be in a release? * end: deliver new version of the software * Sprint (1-4 weeks) * Also known as increments * detailed plan to be completed in a short-term
30
Discuss sprints in scrums
* Sprints are... * Units of time for agile (scrum-based) software projects * Time-boxed rather than story-bound * How long are sprints? * From one week to one month (mode: two weeks) * How are sprints organized? * Sprints begin with a planning session (backlog tasks are selected) * End with a retrospective (can we improve the process for the next sprint?
31
Discuss backlog in scrum
* Agile projects are organized around a backlog: * The backlog is a list of outstanding tasks yet to be completed * New tasks can be added, priorities can be changed * But a task / user story is never removed from backlog * Ordered by priority— tasks to which team members assign greater importance are addressed first * Tasks usually map one-to-one onto issue reports: * Issue reports can describe defects, enhancement requests, or refactoring opportunities, documentation, etc. * Issue reports can also be user stories (next slide
32
Discuss user stories and epics in scrum
* User stories are... * User requirement written in customer’s language * Short descriptions of functionality explained from the perspective of a type of user * A useful user story template is of the form... * As a , I would like so that * E.g.: “As a course instructor, I would like to add content to a course so that enrolled students can access it on demand” * Epics are... * Long-term objectives in agile software projects * Composed of a set of related user stories that may span multiple spri
33
What happens in sprint planning
* Task selection for the sprint * Task distribution among developers * Task implementation plans
34
what happens in daily scrum
* Daily stand-up meeting (~15min) * Progress toward the Sprint Goal * Actionable plan for the next day * Improve communication and self- management
35
What happens in sprint retrospective
* Review problems affecting the progress * Increase quality and effectiveness
36
What happens in sprint review
* Inspect the sprint outcome * Adjust the backlog * Stakeholder feedback
37
How to plan for a sprint?
* Story Points: Unit of effort estimation * Purpose: know how long it takes to complete the story * Small standard story: 1, Complex stories: 2, 4, 8,... * Each participant votes for effort, then it is discussed * Team Velocity: How many ranked user stories can be completed within a given time? * Velocity = Number of story points can be completed in a sprint * Gives an idea about the capacity of the development