Software Engineering Ch1-5 Flashcards

(88 cards)

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
Client may cause delays / Risk implementation of compromised - throwaway prototypes / Hard to plan and manage Which process model?
What are disadvantages of Prototype process model:
26
Incremental model. Evolutionary design to accommodate a product that grows and changes Which process model?
What defines a Spiral process model
27
Continuous client involvement / Dev. risks easy to manage / Good for large, complex projects / Good for extensible products Describes which process model?
Advantages of Spiral process model
28
Project hard to manage Risk analysis failures Requires expert dev. team Describes which process model?
Disadvantages of Spiral process model
29
Iterative & Incremental process flow model. Provides an evolutionary feel Responds best to modern software development. Describes which process model?
What defines a Unified process model
30
``` 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? ```
What are Advantages of Unified process model:
31
Overlapping phases can cause problems / Difficult software increment integration / Use cases not always precise / Requires expert team Cons of which Process model?
Disadvantages of Unified process model:
32
Name four Agile process models
Scrum / Extreme Programming / Kanban / DevOps
33
Emphasizes rapid delivery of operational software by adopting the client as part of the dev team.
What is the basic concept of the Agile process model
34
Allows the software team to accommodate changes late in the project, thus flattens the curve of cost and changes.
What is the effect on costs in Agility models
35
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?
What are four basic rules of Agile process
36
Delivering a working software that meet customer needs, as rapidly as possible.
Name the basic Principle of Agile process model
37
Motivated individuals using face-to-face communication Self-organizing Working at a sustainable pace Introspective team culture focusing on "improving".
What defines an Agile Team
38
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.
What defines a Scrum framework
39
A prioritized list of product requirements that provide value to the client
What is a Product Backlog
40
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?
What are the Five steps of a Scrum process
41
``` Team owns decision making Product owner sets priorities through backlogs Light on documentation Good for frequent updating Describes which Agile model? ```
Advantages of Scrum model
42
``` Difficult to control cost of changes Not always suitable for large teams Lots of meetings Requires expert team Describes which Agile model? ```
Disadvantages of Scrum model
43
Planning Design Coding Testing
What are the four Process Framework Activities of XP programming
44
Written by the client, features required output and functionality of the desired software. Needed for XP project
Define User Stories in XP programming
45
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?
Planning step in XP
46
``` "Keep it Simple" principle Use of CRC cards as a mechanism Operation prototypes designs creation Refactoring (modifying/optimizing code design) Describes which XP step? ```
Explain Design step in XP
47
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)
Define XP Coding step
48
Automated Unit tests executed daily Acceptance tests defined by client Focus on functionality Describes which XP activity?
What is XP Testing
49
``` Emphasizes client involvement Establishes rational plans and schedules High developers commitment to project Reduced likelyhood of rejection of product Describes which Agile model? ```
Advantages of XP Process Model:
50
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?
Disadvantages of XP Process Model
51
- 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
Six core practices of Kanban Process Framework
52
``` Lower budget & time requirements Allows early product delivery Process policies written down Continuous process improvement using feedback loops Describes which Agile process model? ```
Advantages of Kanban Process Model
53
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?
Disadvantages of Kanban Agile Process Model
54
Basic rule of DevOps model
Several stages loop continuously until desired product exists
55
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?
Name the Five Activities of the DevOps model:
56
``` 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? ```
What are advantages of DevOps Model
57
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?
Disadvantages of DevOps Model:
58
- 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
Important Principles that should be considered when organizing software projects
59
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.
What defines Incremental Process Models
60
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
Characteristics of Agile Processes
61
``` 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? ```
Characteristics of Spiral Processes:
62
- 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)
Name all the recommended steps of an Agile Process
63
``` 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'. ```
Good practices when Agile Requirement Engineering
64
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
Good practices when Preliminary Architectural Design
65
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
Good practices when making Resource Requirement Estimates
66
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
Good practices when Constructing First Prototype
67
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
Good practice when Evaluating - Testing Prototype
68
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.
Good practice while Go/No Go process
69
This Recommended Agile step includes: Define new Prototype scope Same process as initial prototype Assess risk of continuing evolution
Good practices in Prototype Evolve System
70
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
Good practices when Releasing a new Candidate
71
``` 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 ```
Good practices for Software Maintenance
72
Name four different types of software maintenance
Corrective / Adaptive / Perfective / Preventive
73
Define Corrective maintenance
Reactive modification of software to fix problems discovered after deployment.
74
Define Adaptive maintenance
Reactive modification of software after delivery to keep it usable in the user environment.
75
Define Perfective maintenance
Proactive software modification after delivery to provide new features, better code structure and improved documentation
76
Define Preventive maintenance
Proactive modification after delivery to correct product faults before users discovery
77
- 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)
What are 7 traits of successful software engineers
78
- Purpose & Involvement - every member feels valued - Trust - skills of peers and managers - Sense of Improvement - encouragement - Diversity of skill sets - complement each other
What are Attributes of a successful Software Team
79
- Frenzied atmosphere - High frustrations - Poorly coordinated software model - Unclear definition of roles - Repeated exposure to failure
Five factors that create a toxic environment:
80
Difficulty of project / Size of project / Lifetime of project / Degree of communication / Degree of modularization / Quality required / Delivery date
Project factors affecting team culture
81
- Planning kept to minimum - High communication between team & stakeholders - Group collaboration & use of each member's skills - Self-organizing, Autonomy, Adaptive structure
Characteristics of successful Agile model teams
82
Good ways Social Media affects Software Engineering?
- 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
Negative ways Social Media affects Software Engineering
- Privacy & Security issues | - Threat of uncontrolled disclosures
84
Factors: Complexity of the problem Different views of the problem Uncertainty and risks associated with the decisions made and their effect on the project
What are Four factors that affect decision making in a software team
85
Explain the Law of Unintended Consequences
When the work associated with a decision has unintended effect on another project objective.
86
Communication / Planning / Modeling / Construction / Deployment
Small number of activities applicable to all software projects [Process Framework Activities]
87
Waterfall (Sequential) Prototyping (Incremental) Spiral (Incremental) Unified (Iterative & Incremental)
What are the Four Main Process Models and their Process Flows
88
Scrum XP Kanban DevOps
What are the Four Agile Model Frameworks