Chapter 1 Introduction to Software Engineering Flashcards

(62 cards)

1
Q

What are the constraints to software engineering?

A

Cost, time and constraints provided my customers and software themselves.

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

What are Techniques?

A

Formal procedures for producing results using some well-defined notation

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

What are Methodilogies?

A

Collections of techniques applied across software development and unified by a philosophical approach

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

What are tools?

A

Instruments or automated systems to accomplish a technique

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

What is the first law of software engineering?

A

A software engineer must be willing to learn the problem domain.

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

What is the definition of a customer?

A

A person who requires a computer system to achieve some business goals by user interaction or interaction with the environment in a specified manner.

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

What is a software engineer’s task?

A

To understand how the system to be needs to interact with the user or environment so that the customer’s requirement is met and design the software to be

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

What is the programmer’s task?

A

To implement the software to be designed by the software engineer

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

What are the qualities of computer scientist?

A
  • Assumes techniques and tools have to be developed.
  • proves theorems about algorithms, designs languages, defines knowledge representation schemes
  • infinite time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the qualities of an engineer?

A
  • develops a solution for a problem formulated by a client

- uses computers & languages, techniques and tools

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

What are the qualities of a software engineer?

A
  • Works in multiple application domains

- has only few months while changes occur in the problem formulation and also in the available technology

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

What is UML?

A

Unified Modelling Language

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

What are the steps to the Feynman problem-solving algorith?

A
  • write down the problem
  • think vary hard
  • write down the answer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is a model?

A

An abstract representation of a system

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

What are the steps to problem solving?

A
  • formulate the problem
  • analyze the problem
  • search for solutions
  • decide of the appropriate solution
  • specify the solution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is abstraction?

A

The ability to ignore details of parts to focus attention on a higher level of a problem

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

What is modularization?

A

The process of dividing a whole into well-defined parts, which can be built and examined separately, and which interact in well-defined ways

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

What is risk-based development?

A

Development that anticipates surprises late in project

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

What qualities does a Rationale model have?

A

Assumes the system changes constantly
Application domain eventually stabilizes after adequate understanding
Solution domains are I’m constant change

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

What is the Rational of the system?

A

Additional knowledge and justification of decisions

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

What is a rational model

A

Items of knowledge that are logically deduced from previous items

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

What are the central themes of SE?

A
  • concerned with big programs
  • complexity is an issue
  • software evolves
  • development must be efficient
  • software must effectively support users
  • involves different disciplines
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Why are software engineering techniques needed?

A

Because large systems cannot be completely understood by one person

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

What is the goal of software engineering?

A

To solve clients’ problems and provide to their needs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
How is working as a team different than working in a team?
``` Everyone has value Have personal goals as a team member Use the skills you have Be committed to the team Be a good listener Be open to new ideas and viewpoints Learn to compromise Don't be intimidated Your input is valuable ```
26
What are the steps of a basic software project?
``` Problem Requirements engineering Reqs specification Design Implementation System Testing Working system Maintenance ```
27
What is requirements engineering?
A process that yields a description of a desired system(which functions, possible extensions, required documentation, performance requirements) Includes a feasibility study Resulting document: requirements specification
28
What does the design step include?
Earliest design decisions captured in software architecture Decomposition into parts and interfaces between Emphasis on what rather than how Resulting document: specification
29
What does the implementation step include?
- focusing on individual components - making goals towards the standards of the software - language selection - modules and class concept
30
What does the Testing step include?
- checking if the software works correctly - validation - verification - testing
31
What does the maintenance step include?
Correcting Errors found after testing | Adapting the software to changing requirements
32
What is corrective maintenance?
Correcting errors
33
What is adaptive maintenance?
Adapting to changes in environment
34
What is perfective maintenance?
Adapting to changing user requirements
35
How is effort usually distributed between these steps?
``` Design 15% Requirements engineering 10% Specification 10% Coding 20% Testing 45% ```
36
What happens to the testing requirements if you increase the design requirements?
Testing effort decreases
37
How much total effort does maintenance consume?
50 to 70%
38
What is the usual distribution of maintenance activities?
Perfective 50% Corrective 21% Adaptive 25% Preventive 4%
39
What are the software engineering ethics principles?
Act consistently with the public interest Managers shall promote an ethical approach Act in a manner that is in the best interest of the client and employer Advance the integrity and reputation of the profession Ensure that products meet the highest professional standards possible Be fair to and supportive of colleagues Participate in lifelong learning and promote an ethical approach Maintain integrity in professional judgment
40
What are three ways of considering quality?
- the quality of the product - the quality of the process - the quality of the product in the context of the business environment
41
What determines the quality of the product?
User judge external characteristics Designers and maintainers judge internal characteristics Thus different stakeholders may have different criteria Need quality models to relate the user's external view to developer's internal view
42
What is included in correctness?
Traceability Completeness Consistency
43
What makes up reliability?
Consistency Accuracy Error Tolerance
44
What are the qualities of efficiency?
Execution Efficiency | Storage efficiency
45
What qualities make up integrity?
Access control | Access audit
46
What qualities make up usability?
Operability Training Communicativeness
47
What qualities make up maintainability?
Simplicity Conciseness Self-descriptiveness Modularity
48
What qualities make up testability
Simplicity Instrumentation Self-descriptiveness Modularity
49
What are the qualities of Flexibility?
Simplicity Expandability Generality Modularity
50
What qualities are included in portability?
Simplicity Software system independence Machine independence
51
What qualities are included in reusability?
``` Simplicity Generality Modularity Software system independence Machine independence ```
52
What qualities are there for interoperability?
Modularity Communication commonality Data commonality
53
What is ROI?
Return on interest
54
What terms are ROI interpreted in?
Reducing costs Predicting savings Improving productivity Costs
55
What is a software life cycle?
A set of activities and their relationships to each other to support the development of a software system
56
What is software development methodology?
A collection of techniques for building models applied across the software life cycle
57
What are inherent problems with software development?
Requirements are constantly changing Frequent changes are difficult to manage There is more than one software system
58
What are the steps to the software process
``` Requirements elicitation System specification Design Implementation Integration Testing ```
59
What roles are in the process ?
``` Project manager Business analyst Software architect Software engineer Software tester ```
60
Why do projects fail?
``` Unrealistic goals Inaccurate estimates of needed resources Ambiguity defined system requirements Risk management Poor communication Poor project management Politics ```
61
What are the benefits of a software process?
``` Provides an organizational tool Provides a large-scale shared framework Facilitates necessary communication Forces us to break down the problem Provides management ```
62
What is Software Engineering?
The process of solving customers' problems by systematic activities in the development of software and creation of high-quality software systems within constraints.