Final Prep Flashcards

1
Q

What are the essential attributes of good software?

A

Acceptability
Dependability
Efficiency
Maintainability

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

What are the software process activities?

A

Software Specification
Software Development
Software Validation
Software Evolution

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

What are general issues that affect software?

A

Business and social change
Security and trust
Scale

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

What are three application types?

A

Stand-alone applications
Interactive transaction-based applications
Embedded control systems

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

What is ethics?

A

Behavior with a positive or negative impact on society, its citizens, and environment

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

What are issues of professional responsibility

A

Confidentiality
Capability
Intellectual property rights
Computer misuse

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

What is the Code of Ethics?

A

A guide of principles designed to help professionals conduct business honestly and with integrity

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

What is a software process?

A

a structured set of activities required to develop a software system

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

What is a software process model?

A

an abstract representation of the process

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

What are plan-driven processes?

A

processes where all of the process activities are planned in advance and progress is measured against this plan

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

What are agile processes?

A

processes where planning is incremental and it is easier to change the process to reflect changing customer requirements

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

What is the waterfall model?

A

separate and distinct phases of specification and development; plan-driven model

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

What is the incremental development model?

A

specification, development, and validation are interleaved; may be plan-driven or agile

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

What is the integration and configuration model?

A

the system is assembled from existing configurable components; may be plan-driven or agile

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

What are some advantages of the waterfall model?

A
  • simple and easy to understand and use
  • works well for smaller projects where requirements are very well understood
  • well understood milestones
  • process and results are well-documented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are some disadvantages of the waterfall model?

A
  • no working software is produced until late during the life cycle
  • it is difficult to measure progress within stages
  • cannot accommodate changing requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are benefits of the incremental development model?

A
  • the cost of accommodating changing customer requirements is reduced
  • it is easier to get customer feedback on the development work that has been done
  • more rapid delivery and deployment of useful software for the customer is possible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are some problems of the incremental development model?

A
  • the process is not visible

- system structures tend to degrade as new increments are added

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

What is the integration and configuration model?

A

based on software reuse where systems are integrated from existing components or application systems

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

What are some advantages of the integration and configuration model?

A
  • reduced costs and risks as less software is developed from scratch
  • faster deployment of delivery system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are some disadvantages of the integration and configuration model?

A
  • requirement compromises are unavoidable so system may not meet real needs of users
  • loss of control over evolution or reused system elements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is software specification/requirements engineering?

A

the process of establishing what services are required and the constraints on the system’s operation and development

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

What is software design and implementation?

A

the process of converting the system into an executable system

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

What is software validation?

A

it is intended to show that the system is following its specification and meets the requirements of the system customer

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

What is software evolution?

A

software is inherently inflexible and can change - as requirements change through changing business circumstances

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

What are the benefits of prototyping?

A
  • improved system usability
  • a closer match to users’ real needs
  • improved design quality
  • improved maintainability
  • reduced development effort
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What are throw-away prototypes?

A

prototypes should be discarded after development as they are not a good basis for a production system

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

What are some advantages of incremental delivery?

A
  • customer value can be delivered with each increment
  • lower risk of overall project failure
  • the highest priority system services tend to receive the most testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What are some problems with incremental delivery?

A

most systems require a set of basic facilities used by different parts of the system

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

What are agile methods?

A
  • they focus on the code rather than the design

- they are based on an iterative approach to software development

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

What are the principles of agile methods?

A
  • customer involvement
  • incremental delivery
  • adopting change
  • maintain simplicity
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

What is extreme programming (XP)?

A
  • takes an ‘extreme’ approach to iterative development
  • new versions may be built several times a day
  • all tests must be run for every build and the build is only accepted if tests run successfully
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What are some key XP practices?

A
  • user stories for specification
  • refactoring
  • test-first development
  • pair programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

What is refactoring?

A
  • it maintains that design for change is not worthwhile as changes cannot be reliably anticipated
  • it proposes constant code improvement (refactoring) to make changes easier when they have to be implemented
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

What is test-first development?

A

an approach where the program is tested after every change has been made

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

What is test-driven development?

A
  • writing tests before code clarifies the requirements to be implemented
  • tests are written as programs rather than data so that they can be executed automatically
  • all previous and new tests are run automatically when new functionality is added
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

What is test automation?

A

it means that tests are written as executable components before the task is implemented

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

What is pair programming?

A

it involves programmers working in pairs, developing code together

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

What is Scrum?

A

an agile method that focuses on managing iterative development rather than specific agile practices

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

What are the three phases in Scrum?

A
  • the initial phase is an outline planning phase
  • followed by a series of sprint cycles
  • the closure phase wraps up the project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

What is the Scrum Sprint Cycle?

A
  • they are fixed length
  • the starting point for planning is the product backlog
  • the selection phase involves all of the project team
  • once these are agreed, the team organizes themselves to develop the software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

What is the role of the Scrum Master?

A

to protect the development team from external distractions; he also arranges daily meetings, tracks the backlog of work to be done, records decisions, and measures progress

43
Q

What are the benefits of Scrum?

A
  • the product is broken down into a set of manageable and understandable portions
  • unstable requirements do not hold up progress
  • the whole team has visibility of everything
  • customers see on-time delivery of increments
44
Q

What does it mean when scaling up agile methods?

A

using agile methods for developing a large software system cannot be developed by a small team

45
Q

What does it mean when scaling out agile methods?

A

how agile methods can be introduced across a large organization with many years of software development experience

46
Q

What are some practical problems with agile methods?

A
  • it is incompatible with the legal approach to contract definition that is commonly used in large companies
  • they are most appropriate for new software development rather than software maintenance
  • designed for small co-located teams
47
Q

What is a requirement?

A

it may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification

48
Q

What is a user requirement?

A

a statement in natural language plus diagrams of the system services and its operational constraints; written for customers

49
Q

What is a system requirement?

A

a structured document setting our detailed descriptions of the system’s functions, services, and operational constraints

50
Q

What is the role of a system stakeholder?

A

any person or organization who is affected by the system in some way and has a legitimate interest

51
Q

What are functional requirements?

A

statements of services the system should provide

52
Q

What are non-functional requirements?

A

constraints on the services or functions offered by the system such as timing constraints, reliability, and storage constraints

53
Q

How do functional user requirements differ from functional system requirements?

A

functional user requirements may be high-level statements of what the system should do while functional system requirements should describe the system services in detail

54
Q

What are metrics for specifying nonfunctional requirements?

A
  • speed
  • size
  • ease of use
  • reliability
  • robustness
  • portability
55
Q

What are some generic activities common to all requirements engineering processes?

A
  • requirements elicitation
  • requirements analysis
  • requirements validation
  • requirements management
56
Q

What is requirements elicitation and analysis?

A

involves technical staff working with customers to find out about the application domain, the services that the system should provide, and the system’s operation constraints

57
Q

What are some problems of requirements elicitation?

A
  • stakeholders don’t know what they really want
  • organizational and political factors may influence the system requirements
  • the requirements change during the analysis process
58
Q

What are two requirements elicitation techniques?

A

interviewing and ethnography

59
Q

What is ethnography?

A

an observational technique that can be used to understand operational processes and help derive requirements for software to support these processes

60
Q

What are the ways of writing a system requirements specification?

A
  • natural language
  • structured natural language
  • design description languages
  • graphical notations
61
Q

What are use cases?

A
  • they are a kind of scenario that are included in the UML and identify the actors in an interaction
  • they should describe all possible interactions with the system
62
Q

What is the software requirements document?

A
  • the official statement of what is required of the system developers
  • should include a definition of the user requirements and a specification of the system requirements
63
Q

What is system modeling?

A

the process of developing abstract models of a system

64
Q

What are different system perspectives?

A
  • external
  • interactive
  • structural
  • behavioral
65
Q

What are the UML Diagram types?

A
  • activity
  • use case
  • sequence
  • class
  • state
66
Q

What are context models?

A

used to illustrate the operational context of a system and is used to show what lies outside the system boundaries

67
Q

What are process models?

A

they reveal how the system being developed is used in business processes

68
Q

What do interaction models do?

A

they model user, system-to-system, and component interaction

69
Q

What are sequence diagrams used for?

A

they are used to model the interactions between the objects and actors within a system and they show the sequence of interactions that take place during a particular use case

70
Q

What do structural models do?

A

they display the organization of a system in terms of the components and their relationships

71
Q

When are class diagrams used?

A

they are used when developing an object-oriented system model

72
Q

What does an aggregation model show?

A

how classes that are collections are composed of other classes

73
Q

What are behavior models?

A

models of the dynamic behavior of a system as it is executing

74
Q

What do data-driven models show?

A

they show the sequence of actions involved in processing input data and generating an associated output

75
Q

What do state-machine models show?

A

how a system responds to external and internal events

76
Q

What is model-driven engineering?

A

an approach to software development where models rather than programs are the principal outputs of the development process

77
Q

What is model-driven architecture?

A

a model-focused approach to software design and implementation that uses a subset of UML models to describe a system

78
Q

What are the types of models?

A
  • computation independent models (CIM)
  • platform independent models (PIM)
  • platform specific models (PSM)
79
Q

Architectural design is the critical link between _______ and ________

A

design and requirements engineering

80
Q

System architectures are often modeled informally using _____ ______ diagrams

A

simple block diagrams

81
Q

What are the architecture and system characteristics?

A
  • performance
  • security
  • safety
  • availability
  • maintainability
82
Q

What is an architectural pattern?

A

a stylized description of a good design practice, which has been tried and tested in different environments

83
Q

When is the Model-View-Controller (MVC) Pattern used?

A

when there are multiple ways to vie and interact with data or when the future requirements for interactions and presentation of data are unknown

84
Q

When is the layered architecture pattern used?

A

when building new facilities on top of existing systems , when the development is spread across several teams, or there is a need for multi-level security

85
Q

What is the layered architecture approach?

A

it is used to model the interfacing of sub-systems and organizes the system into a set of layers each of which provide a set of services

86
Q

What is repository architecture?

A

used when sub-systems must exchange data

87
Q

What is the repository pattern?

A

when all the data in the system is managed in a central repository that is accessible to all system components

88
Q

What is the Client-server architecture?

A

a distributed system model that shows how data and processing is distributed across a range of components

89
Q

What is the Client-server pattern?

A

when the functionality of the system is organized into services with each service delivered for a separate server

90
Q

What is pipe and filter architecture?

A

where functional transformations process their inputs to produce outputs

91
Q

How is the pipe and filter pattern organized?

A

so that each processing component (filter) is discrete and carries out one type of data transformation

92
Q

What are application system?

A

they are designed to meet an organizational need

93
Q

Two widely used generic application architectures are _____ and _____

A

transaction processing systems and language processing systems

94
Q

What is an object-oriented design process?

A

it involves developing a number of different system models

95
Q

What is a system context model?

A

a structural model that demonstrates the other systems in the environment of the system being developed

96
Q

What is an interaction model?

A

a dynamic model that shows how the system interacts with its environment as it is used

97
Q

What do design models show?

A

the objects, the object classes, and the relationships between these entities

98
Q

The two kinds of design models are _____ and _____

A

structural and dynamic models

99
Q

What are some examples of design models?

A
  • subsystem models
  • sequence models
  • state machine models
  • use-case models
100
Q

What do subsystem models show?

A

how the design is organized into logically related groups of objects

101
Q

What do sequence models show?

A

show the sequence of object interactions that take place

102
Q

What do state diagrams show?

A

how objects respond to different service requests and the state transitions triggered by these requests

103
Q

What are the reuse levels?

A
  • the abstraction level
  • the object level
  • the component level
  • the system level
104
Q

What is open-source development?

A

an approach to software development in which the source code of a software system is published, and volunteers are invited to participate in the development process