Software Engineering Ch1-5 Flashcards

1
Q
  • Computer program
  • Data structures
  • Documentation
A

Name three basic characteristics of a Software

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

What differentiates Software from Hardware

A
  • Software is;
  • Engineered, not manufactured.
  • Not deteriorating, wearing out
  • Mostly custom-built.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

System / Application / Scientific / Embedded / Product-line / Web-Mobile Apps / AI Softwares

A

What are seven categories presenting challenges for engineers

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

Reasons for a software to evolve / change?

A
  • Adapt needs of new technology
  • Enhance for new business requirements
  • Extend for modern systems / databases
  • Re-architected for new computing environments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  • Quality focus (bedrock)
  • Process (foundation)
  • Methods (techniques)
  • Tools (support for process + methods)
A

What are the four engineering layers (from bottom)

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

The Five Process Framework Activities

[crispy pastries make cool donuts]

A

Communication / Planning / Modeling / Construction / Deployment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
Product preparation
Project production
Risk management
Technical reviews
Quality assurance
Configuration & re-usability management
Project tracking
Product measurement
A

Name 8 Umbrella activities:

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

Processes:

  • Flow of activities & tasks
  • Degree of tasks definition
  • Manners of quality assurance
  • Manners of project tracking and activity control
  • Overall degree of detail
  • Degree of involvement of client
  • Level of autonomy of dev. team
  • Team organization and roles
A

Process differences that require adaptation between software projects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  • Understand the problem (communication & analysis)
  • Plan a solution (modeling & software design)
  • Carry out the plan (code generation)
  • Examine results (Testing & quality)
A

What are Steps in problem solving

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  • Correct a defect in an existing application
  • Adapt to a new business environment
  • Extend functions of existing application
  • Create a new product
A

What are Basic business needs for a new software project

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

Name four Process Flow Models

A

Linear / Iterative / Evolutionary / Parallel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  • Software Process
  • Process Framework
  • Umbrella activities
  • Tasks sets (the work to be done)
A

What are the Steps in a Generic Process Model:

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

What defines a Linear process flow

A

The Five Activities are organized in Sequence

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

What defines a Iterative process flow

A

The Five Activities are in sequence, but can be repeated once or more before moving to the next.

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

Executes all five Activities in a circular manner.
Each circuit trough leads to a more complex version of the project.
Describes which process flow?

A

What defines a Evolutionary process flow

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

What defines a Parallel process flow

A

Executes one or more Activities in parallel with another (modeling may be executed along with the construction of another)

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

Defines the actual work to be done.

A

What is a Task Set

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

Tasks to accomplish
Work to be produced
Quality filters to be applied

A

Three lists that define a task set

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

Numeric measure that ensure that the software meets a set of basic criteria

A

What is a Process Assessment

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

What is a Waterfall process model

A

A linear sequential model that accommodate the Generic Framework Activities.

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

Easy to plan
Works for small projects
Easy testing & analysis

A

What are advantages of the Waterfall process model

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

Doesn’t accommodate change / Testing occurs late / Client approval at the end only
Which process model?

A

What are disadvantages of Waterfall process model:

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

Incremental model. Quick design leads to construction of Prototypes
Describes which process model?

A

What is the Prototype process model

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

Small impact on changes / Client involved early and often / Works for small projects / Reduced risk of rejected product
Describes which process model?

A

What are advantages of Prototype process model:

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

Client may cause delays / Risk implementation of compromised - throwaway prototypes / Hard to plan and manage
Which process model?

A

What are disadvantages of Prototype process model:

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

Incremental model. Evolutionary design to accommodate a product that grows and changes
Which process model?

A

What defines a Spiral process model

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

Continuous client involvement / Dev. risks easy to manage / Good for large, complex projects / Good for extensible products
Describes which process model?

A

Advantages of Spiral process model

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

Project hard to manage
Risk analysis failures
Requires expert dev. team
Describes which process model?

A

Disadvantages of Spiral process model

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

Iterative & Incremental process flow model.
Provides an evolutionary feel
Responds best to modern software development.
Describes which process model?

A

What defines a Unified process model

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q
Emphasis on quality of documentation 
Continuous client involvement
Easily accommodates changes
Good for maintenance projects
Combines iterative and incremental process flows
Describes which process model?
A

What are Advantages of Unified process model:

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

Overlapping phases can cause problems / Difficult software increment integration / Use cases not always precise / Requires expert team
Cons of which Process model?

A

Disadvantages of Unified process model:

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

Name four Agile process models

A

Scrum / Extreme Programming / Kanban / DevOps

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

Emphasizes rapid delivery of operational software by adopting the client as part of the dev team.

A

What is the basic concept of the Agile process model

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

Allows the software team to accommodate changes late in the project, thus flattens the curve of cost and changes.

A

What is the effect on costs in Agility models

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

Incremental development strategy must be implemented
Requires constant customer feedback
Prototypes - Increments - must be delivered in short time periods
Client must evaluate software regularly and influence the adaptations made
Describe the rules for which process model?

A

What are four basic rules of Agile process

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

Delivering a working software that meet customer needs, as rapidly as possible.

A

Name the basic Principle of Agile process model

37
Q

Motivated individuals using face-to-face communication

Self-organizing
Working at a sustainable pace
Introspective team culture focusing on “improving”.

A

What defines an Agile Team

38
Q

The most widely used Agile model.
Within each Activity, tasks take place in short-time periods called Sprints. Work conducted in Sprints is adapted and modified in real time.

A

What defines a Scrum framework

39
Q

A prioritized list of product requirements that provide value to the client

A

What is a Product Backlog

40
Q

Backlog refinement meeting
Sprint planning
Daily Team meetings (plan for 24 hours of work)
Sprint review (Approve or reject)
Sprint retrospective (start another Sprint)
Defines which Agile model?

A

What are the Five steps of a Scrum process

41
Q
Team owns decision making
Product owner sets priorities through backlogs
Light on documentation
Good for frequent updating
Describes which Agile model?
A

Advantages of Scrum model

42
Q
Difficult to control cost of changes
Not always suitable for large teams
Lots of meetings
Requires expert team
Describes which Agile model?
A

Disadvantages of Scrum model

43
Q

Planning
Design
Coding
Testing

A

What are the four Process Framework Activities of XP programming

44
Q

Written by the client, features required output and functionality of the desired software.
Needed for XP project

A

Define User Stories in XP programming

45
Q

Begins with: Team gets User Story
Estimate costs
Develops stories and groups
Develop first Increments (First project release)
Computes the Project Velocity (amount of stories to be included)
Estimate delivery date
Describes which of the four XP steps?

A

Planning step in XP

46
Q
"Keep it Simple" principle
Use of CRC cards as a mechanism
Operation prototypes designs creation
Refactoring (modifying/optimizing code design)
Describes which XP step?
A

Explain Design step in XP

47
Q

Team develops a series of Unit Tests that will exercise each story that will be included in the release (key concept: two coders per computer)

A

Define XP Coding step

48
Q

Automated Unit tests executed daily
Acceptance tests defined by client
Focus on functionality
Describes which XP activity?

A

What is XP Testing

49
Q
Emphasizes client involvement
Establishes rational plans and schedules
High developers commitment to project
Reduced likelyhood of rejection of product
Describes which Agile model?
A

Advantages of XP Process Model:

50
Q

Temptation to ship compromised Prototypes
Requires frequent meetings about increasing costs
Automated unit tests executed daily
Allows for excessive changes
Requires highly skilled team members
Cons of which Agile process model?

A

Disadvantages of XP Process Model

51
Q
  • Board (“to do” cards)
  • Finish task before moving to another
  • Managing workflow to reduce wastes
  • Make explicit process policies
  • Feedback loops for continuous improvement
  • Involve all stakeholders and making process changes collaboratively
A

Six core practices of Kanban Process Framework

52
Q
Lower budget & time requirements
Allows early product delivery
Process policies written down 
Continuous process improvement using feedback loops 
Describes which Agile process model?
A

Advantages of Kanban Process Model

53
Q

Team collaboration skills determine success
Poor business analysis can doom the project
Flexibility can cause developers to lose focus
Developers reluctance to use measurement
Describes which Agile process model?

A

Disadvantages of Kanban Agile Process Model

54
Q

Basic rule of DevOps model

A

Several stages loop continuously until desired product exists

55
Q

Continuous:
- Development (multiple Sprints)
- Testing (multiple increments at once)
- Integration (code pieces to existing code)
- Deployment (to production environment)
- Monitoring (in the production environment)
Describes the five activities of which Agile model?

A

Name the Five Activities of the DevOps model:

56
Q
Reduced time to code deployment
Team has Devs and an Operation staff
Team has end-to-end project ownership
Proactive monitoring of deployed product
Describes which Agile model?
A

What are advantages of DevOps Model

57
Q

Pressure to work on both new and old code
Reliance on automated tools to be effective
Deployment may affect the production environment
Requires expert dev. team
Cons of which Agile model?

A

Disadvantages of DevOps Model:

58
Q
  • Beware of linear processes
  • Do not plan too big up-front requirements
  • Requirements gathering may not reduce costs
  • Appropriate management is integral
  • Documents should evolve with the software
  • Involve stakeholders early and frequently
  • Testers need involvement prior to software construction
A

Important Principles that should be considered when organizing software projects

59
Q

Which type of process model:
Provide better basis for adaptable process changes.
Involve clients early and often.
Reduce the risk of creating a product that won’t be accepted.

A

What defines Incremental Process Models

60
Q

This type of process must adapt incrementally.
Requires client feedback
Not for high-risk, large projects
Easy changes / Easy to manage / Easy partial delivery
Minimal documentation / risk management
Continuous improvement / Tester / Stakeholder interaction

A

Characteristics of Agile Processes

61
Q
Not for small, low risks projects
Hard on changes
Several steps required / high documentation
Early testing / Stakeholder involvement
Formal project & risk management 
Improvement handled at the end
Project end not always obvious
Describes which process model?
A

Characteristics of Spiral Processes:

62
Q
  • Requirement Engineering (gather user stories)
  • Preliminary Architectural Design (paper prototypes)
  • Estimate Resource Requirements (use historic data)
  • First Prototype (most important user stories)
  • Test Prototype (dev. team & users)
  • Go / No Go decision (determine quality of prototype)
  • Evolve System (new prototype)
  • Release Candidates (acceptance testing)
  • Software Maintenance (keep software operational)
A

Name all the recommended steps of an Agile Process

63
Q
This recommended Agile step includes:
Encourage Stakeholder participation
Use simple models & non-engineer jargon
Get the Big picture
Take time to explain
Allow the dev team to refine requirements 'just in time'.
A

Good practices when Agile Requirement Engineering

64
Q

Recommended Agile step includes:
Focus on key attributes
Document architecture design decisions
Combine customer-visible features and the infrastructure needed.
Enable code maintainability and evolvability
Continuously manage and synchronize dependencies

A

Good practices when Preliminary Architectural Design

65
Q

This recommended Agile step includes:
Use historic data to estimate time to complete each user stories
Organize User Stories into Sprints
Determine number of Sprints needed
Sum number of days to complete each Sprint
Revise estimates as requirements are added

A

Good practices when making Resource Requirement Estimates

66
Q

This recommended Agile step includes:
Select subset of the most important user stories
Transition from paper to software prototype
Include user interface in prototype
Create virtual prototype
Test prototype
Keep development & deployment in mind

A

Good practices when Constructing First Prototype

67
Q

This recommended Agile step includes:
Create test cases while prototype is being designed
Provide ‘scaffolding’ to get prototype feedback from user
Test on the right people (user & dev team)
Allow user to contribute ideas
Keep open mind

A

Good practice when Evaluating - Testing Prototype

68
Q

This recommended Agile step includes:
Determine quality of current prototype
After prototype is evaluated, stakeholders decide whether to continue with the development of the product.
Revise time and cost estimates
Determine risks of failing to meet expectations
Get commitment from stakeholders to provide resources needed to create the next prototype.

A

Good practice while Go/No Go process

69
Q

This Recommended Agile step includes:
Define new Prototype scope
Same process as initial prototype
Assess risk of continuing evolution

A

Good practices in Prototype Evolve System

70
Q

This recommended Agile step includes:
Prototype considered is subject to user-acceptance test
Document defects identified
If changes are made, needs to be a second-round of testing
Share quality risks with management
Lessons learned help for future development

A

Good practices when Releasing a new Candidate

71
Q
This recommended Agile step includes:
Understand code before making changes
Test software after making changes
Document all changes
Communicate known defects to all stakeholders
Keep software operational after release
A

Good practices for Software Maintenance

72
Q

Name four different types of software maintenance

A

Corrective / Adaptive / Perfective / Preventive

73
Q

Define Corrective maintenance

A

Reactive modification of software to fix problems discovered after deployment.

74
Q

Define Adaptive maintenance

A

Reactive modification of software after delivery to keep it usable in the user environment.

75
Q

Define Perfective maintenance

A

Proactive software modification after delivery to provide new features, better code structure and improved documentation

76
Q

Define Preventive maintenance

A

Proactive modification after delivery to correct product faults before users discovery

77
Q
  • Sense of responsibility (do what needs done)
  • Sense of awareness (of team & client)
  • Sense of fairness (avoid conflicts)
  • Realistic and honest (about flaws)
  • Resilient under pressure
  • Attention to detail (criteria)
  • Pragmatic (adapts under circumstances)
A

What are 7 traits of successful software engineers

78
Q
  • Purpose & Involvement - every member feels valued
  • Trust - skills of peers and managers
  • Sense of Improvement - encouragement
  • Diversity of skill sets - complement each other
A

What are Attributes of a successful Software Team

79
Q
  • Frenzied atmosphere
  • High frustrations
  • Poorly coordinated software model
  • Unclear definition of roles
  • Repeated exposure to failure
A

Five factors that create a toxic environment:

80
Q

Difficulty of project / Size of project / Lifetime of project / Degree of communication / Degree of modularization / Quality required / Delivery date

A

Project factors affecting team culture

81
Q
  • Planning kept to minimum
  • High communication between team & stakeholders
  • Group collaboration & use of each member’s skills
  • Self-organizing, Autonomy, Adaptive structure
A

Characteristics of successful Agile model teams

82
Q

Good ways Social Media affects Software Engineering?

A
  • Allows for engineers to connect easily with individuals who share same project, goals, skills.
  • The value of Social Networking tools grows as the team size increases.
83
Q

Negative ways Social Media affects Software Engineering

A
  • Privacy & Security issues

- Threat of uncontrolled disclosures

84
Q

Factors:
Complexity of the problem
Different views of the problem
Uncertainty and risks associated with the decisions made and their effect on the project

A

What are Four factors that affect decision making in a software team

85
Q

Explain the Law of Unintended Consequences

A

When the work associated with a decision has unintended effect on another project objective.

86
Q

Communication / Planning / Modeling / Construction / Deployment

A

Small number of activities applicable to all software projects [Process Framework Activities]

87
Q

Waterfall (Sequential)
Prototyping (Incremental)
Spiral (Incremental)
Unified (Iterative & Incremental)

A

What are the Four Main Process Models and their Process Flows

88
Q

Scrum
XP
Kanban
DevOps

A

What are the Four Agile Model Frameworks