307 Final

0.0(0)
studied byStudied by 17 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/233

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 6:27 PM on 10/21/23
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

234 Terms

1
New cards

What is software?

Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system

2
New cards

Types of software

Applications (video games, spreadsheets, etc.) System (OS, drivers, etc.) Embedded (firmware, microcode) Real Time (control & monitoring, often safety critical)

3
New cards

Types of software development

Custom Generic Embedded

4
New cards

What is software engineering?

IEEE: (1) the application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software; that is, the application of engineering to software. (2) the study of approaches as in (1)

5
New cards

Ways in which software engineering differs from other disciplines

Abstract/logical vs. concrete/physical Discrete vs. continuous math Foundations in computer science not natural science No "manufacturing" phase Maintenance = evolution

6
New cards

Ways in which software engineering is similar to other disciplines

Series of decisions Trade-off analysis conducted Work quantitatively Calibrate measurements Use approximations based on experience and empirical data Emphasize disciplined process Multiple roles for engineer Use tools Advance field through professional societies

7
New cards

Ethical categories

Public Client & Employer Product Judgement Management Profession Colleagues Self Responsibility

8
New cards

Public ethic

Software engineers shall act consistently with the public interest

9
New cards

Client & employer ethic

Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest

10
New cards

Product ethic

Software engineers shall ensure that their products and related modifications meet the highest professional standards possible

11
New cards

Judgement ethic

Software engineers shall maintain integrity and independence in their professional judgment

12
New cards

Management ethic

Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance

13
New cards

Profession ethic

Software engineers shall advance the integrity and reputation of the profession consistent with the public interest

14
New cards

Colleagues ethic

Software engineers shall be fair and supportive of their colleagues

15
New cards

Self ethic

Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession

16
New cards

Responsibility ethic

Software engineers must commit themselves to making software engineering a beneficial and respected profession

17
New cards

Stakeholders

Users Customers Developers Managers

18
New cards

Software quality attributes

For product operation For product revision For product transition

19
New cards

Operation attributes

Correctness, Efficiency, Integrity, Reliability, Usability

20
New cards

Correctness

The degree to which a program satisfies the user's requirements

21
New cards

Efficiency

The amount of computing resources, time and space, required to perform a user-defined function or task

22
New cards

Integrity

How well is the software and data protected from security breaches and installation errors

23
New cards

Reliability

To what degree can the system be expected to perform its intended function without failure in the user's environment

24
New cards

Usability (Operation attributes)

How much effort do the users have to spend learning to use the system efficiently

25
New cards

Revision attributes

Flexibility Maintainability Testability

26
New cards

Flexibility (Operation attributes)

How much effort will be required to enhance the system

27
New cards

Maintainability

How much effort will be required to locate and repair defects in the system

28
New cards

Testability

How much effort will be required to test the structure and functionality of the system

29
New cards

Transition attributes

Interoperability Portability Reusability

30
New cards

Interoperability

How much effort will be required to link this program or system to another

31
New cards

Portability (Transition attributes)

How much effort will it take to transfer a program or system from one machine to another

32
New cards

Reusability

To what extent can the design, or system modules be used in other applications How much effort will it take to reuse them

33
New cards

Software development cycle phases

Requirements phase Design phase Implementation phase Test phase Installation and checkout phase

34
New cards

Software life cycle models

Code and fix Stagewise and waterfall Prototyping Evolutionary Spiral Agile/Scrum

35
New cards

Code and fix model

Code, fix, repeat until resources exhausted

36
New cards

Waterfall model

System engineering System analysis System design Implement the system Test the system Maintain the system

37
New cards

Prototyping model

Determine requirements Build a prototype Do a partial design Evaluate the system Engineer the product

38
New cards

Evolutionary model

Can become a modern version of code and fix Product evolves over time as the real requirements become known Assumes the customers will tell us what they like and dislike about each incremental release

39
New cards

Spiral model

Determine objectives Evaluate alternatives Develop, verify next-level product Plan next phases (repeat)

40
New cards

Scrum Roles

Product owner Scrum master Development team

41
New cards

Product owner

Defines the features of the product Decides on release date and content Prioritizes features Adjusts features and priority every iteration, as needed Accepts or rejects work results

42
New cards

Scrum master

Represents management to the project Responsible for ensuring adherence to scrum practices Removes impediments Ensures that the team is fully functional Shields team from external interference

43
New cards

Development team

Members are assumed cross-functional No sub-teams (testing, etc)

44
New cards

Scrum events

Sprint Sprint planning Daily scrum Sprint review Sprint retrospective

45
New cards

Sprint

Usually one month or less "Done," usable, and potentially releasable product increment is created Quality attributes do not change Scope may be clarified/re-negotiated

46
New cards

Sprint planning

Work to be performed in upcoming sprint is planned Suggested eight hours for a one month sprint

47
New cards

Sprint backlog

Selected product backlog items, along with The Plan Organized by team Estimate time to complete each item Assign tasks to individual members

48
New cards

Daily scrum

Fifteen minutes for team to "synchronize" and plan for the next 24 hours What has been done, what will be, roadblocks Held same time, same place

49
New cards

Sprint review meeting

Development team presents accomplishments Form of a demo of new features or progress Informal

50
New cards

Sprint retrospective

Opportunity to reflect and plan for improvements during the next sprint

51
New cards

Sprint artifacts/documents

Project charter Product backlog Sprint backlog Burn down chart

52
New cards

Project charter

Problem statement: short and succinct (one or two sentences) Project objectives: what the project will achieve Stakeholders: persons who will be actively involved with the project Project sponsor, types of users, etc. Deliverables: major results or services that will be produced

53
New cards

Product backlog

Ordered list of everything that might be needed in the product Product owner is responsible for the backlog Never complete Lists all features, functions, requirements, enhancements, and fixes that need to be made "As a, I want, so that"

54
New cards

Burndown chart

Graphical representation of work left to do vs. time left in which to do it

55
New cards

Domain analysis

Process by which software engineer learns about the domain to better understand the problem

56
New cards

Types of requirements

Real: functional and performance Constraints: non-functional Possible: non-measurable, subjective, political Probably not: expectations, wishes, desires

57
New cards

Steps to gathering and analyzing requirements

Observation Interviewing Prototype

58
New cards

Greenfield

Completely new project, built from scratch

59
New cards

Brownfield

Project that has previously existed already

60
New cards

User stories

Short, simple descriptions of a feature told from the perspective of the person who wants the feature "As a ... I want"

61
New cards

Use case

A typical sequence of actions that a user performs to complete a given task Cover the full sequence of steps from beginning to end Describe the user's interaction with the system As independent as possible from the UI design

62
New cards

Use Case Diagrams Extensions

Make optional interactions explicit Handle exceptional cases Think "hardware interrupt"

63
New cards

Use Case Diagrams Generalizations

Represents several similar use cases Similar to superclasses in a class diagram

64
New cards

Use Case Diagrams Inclusions

Allow one to express commonality between several use cases Included in other use cases Represent the performing of a lower-level task with a lower-level goal

65
New cards

Steps to managing requirements

Review them Track them Verify them Control the changes to them

66
New cards

Requirement review considerations

Benefits Important Unambiguous Consistent Quality Realistic Verifiable Identifiable

67
New cards

Cons to reusability

Takes extra time Sometimes only reward visibility Costs money

68
New cards

Pros to reusability

Prevents taking shortcuts Should be part of the culture

69
New cards

Framework

Reusable software that implements a generic solution to a generalized problem

70
New cards

Framework slots

Certain classes or methods are missing

71
New cards

Framework hooks

Optional functionality, allowance made for developer to provide it

72
New cards

Product line

Set of products built on a common technology base

73
New cards

Distributed system

System of discrete networked components Have concurrency Lack a global clock Can encounter independent failure of components

74
New cards

Server

Program that provides a service for other programs

75
New cards

Client

Program that accesses one or more servers to obtain services

76
New cards

Communication channel

Generally a computer network Client must initially know the server, but not vice versa

77
New cards

Basic client-server sequence

Create socket Bind socket to address Listen for clients Client creates a socket Client attempts to connect to server Server accepts connection Read and write (send and receive data)

78
New cards

Advantages of client-server

Work is distributed Client can access server from distance Client and server can be designed separately Data stored centrally at server

79
New cards

Thin-client

Client is as small as possible Most work done on server

80
New cards

Fat-client

As much work as possible delegated to clients Server handles more clients

81
New cards

UML

A "general purpose" modeling language Provides a standardized method for designing a system

82
New cards

Types of UML diagrams (and static/dynamic)

Class diagrams (static) Composite structure diagrams (static) Sequence diagrams (dynamic) Activity diagrams (dynamic) State machine diagrams (dynamic)

83
New cards

Class diagram

Describes system attributes, operations, relationships among objects

84
New cards

Composite structure diagram

Shows internal structure of a class Parts: runtime role of a classifier (e.g., class) or a collection of instances Port: connects classifiers with their parts and environment Connector: binds two or more entities together

85
New cards

Activity diagrams

Graphical workflow showing stepwise activity and actions Similar to a state diagram except most transitions caused by internal events Can represent concurrency Visualize interrelation and interaction between different use cases

86
New cards

Association

Shows how two classes relate to each other

87
New cards

Multiplicity (*, #, ..)

Many, Number, Or

88
New cards

Generalization

Labeled group with a common superclass

89
New cards

Discriminator

Describes the criteria used for specializing/generalizing

90
New cards

System domain model

Models aspects of domain represented by the system Omits many classes needed for a complete system

91
New cards

System model

Includes classes for UI and system architecture Includes system domain model Architectural classes Utility classes

92
New cards

Design patterns

Recurring aspects of designs Context: the general situation in which the pattern applies Problem: short description of the main difficulty tackled Forces: issues or concerns to consider when solving the problem Solution: recommended way to solve the problem

93
New cards

Sequence diagrams

Shows the sequence of messages exchanged by a set of objects performing a specific task Actor on left Messages are arrows between sender and receiver Lifeline attached to each object/actor

94
New cards

State diagram

Describe the behavior of a system, part of a system, or an individual object

95
New cards

Fork

One incoming transition, multiple outgoing transitions

96
New cards

Join

Multiple incoming transitions, one outgoing transition

97
New cards

Rendezvous

Multiple incoming and multiple outgoing transitions

98
New cards

Swimlanes

Partition activities among classes

99
New cards

Developer quality issues

Testable Maintainable Enhanceable Correct Robust Reliable Installable Liability Manufacturable Marketable

100
New cards

User quality issues

Affordable Valuable Correct Usable Learnable Robust Safety Security Serviceable Tailorable