Chapter 1 Introduction to Software Engineering Flashcards

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
Q

How is working as a team different than working in a team?

A
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
Q

What are the steps of a basic software project?

A
Problem
Requirements engineering
Reqs specification
Design
Implementation 
System
Testing
Working system
Maintenance
27
Q

What is requirements engineering?

A

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
Q

What does the design step include?

A

Earliest design decisions captured in software architecture
Decomposition into parts and interfaces between
Emphasis on what rather than how
Resulting document: specification

29
Q

What does the implementation step include?

A
  • focusing on individual components
  • making goals towards the standards of the software
  • language selection
  • modules and class concept
30
Q

What does the Testing step include?

A
  • checking if the software works correctly
  • validation
  • verification
  • testing
31
Q

What does the maintenance step include?

A

Correcting Errors found after testing

Adapting the software to changing requirements

32
Q

What is corrective maintenance?

A

Correcting errors

33
Q

What is adaptive maintenance?

A

Adapting to changes in environment

34
Q

What is perfective maintenance?

A

Adapting to changing user requirements

35
Q

How is effort usually distributed between these steps?

A
Design 15%
Requirements engineering 10%
Specification 10%
Coding 20%
Testing 45%
36
Q

What happens to the testing requirements if you increase the design requirements?

A

Testing effort decreases

37
Q

How much total effort does maintenance consume?

A

50 to 70%

38
Q

What is the usual distribution of maintenance activities?

A

Perfective 50%
Corrective 21%
Adaptive 25%
Preventive 4%

39
Q

What are the software engineering ethics principles?

A

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
Q

What are three ways of considering quality?

A
  • the quality of the product
  • the quality of the process
  • the quality of the product in the context of the business environment
41
Q

What determines the quality of the product?

A

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
Q

What is included in correctness?

A

Traceability
Completeness
Consistency

43
Q

What makes up reliability?

A

Consistency
Accuracy
Error Tolerance

44
Q

What are the qualities of efficiency?

A

Execution Efficiency

Storage efficiency

45
Q

What qualities make up integrity?

A

Access control

Access audit

46
Q

What qualities make up usability?

A

Operability
Training
Communicativeness

47
Q

What qualities make up maintainability?

A

Simplicity
Conciseness
Self-descriptiveness
Modularity

48
Q

What qualities make up testability

A

Simplicity
Instrumentation
Self-descriptiveness
Modularity

49
Q

What are the qualities of Flexibility?

A

Simplicity
Expandability
Generality
Modularity

50
Q

What qualities are included in portability?

A

Simplicity
Software system independence
Machine independence

51
Q

What qualities are included in reusability?

A
Simplicity
Generality
Modularity
Software system independence
Machine independence
52
Q

What qualities are there for interoperability?

A

Modularity
Communication commonality
Data commonality

53
Q

What is ROI?

A

Return on interest

54
Q

What terms are ROI interpreted in?

A

Reducing costs
Predicting savings
Improving productivity
Costs

55
Q

What is a software life cycle?

A

A set of activities and their relationships to each other to support the development of a software system

56
Q

What is software development methodology?

A

A collection of techniques for building models applied across the software life cycle

57
Q

What are inherent problems with software development?

A

Requirements are constantly changing
Frequent changes are difficult to manage
There is more than one software system

58
Q

What are the steps to the software process

A
Requirements elicitation
System specification
Design
Implementation
Integration
Testing
59
Q

What roles are in the process ?

A
Project manager
Business analyst
Software architect
Software engineer
Software tester
60
Q

Why do projects fail?

A
Unrealistic goals
Inaccurate estimates of needed resources
Ambiguity defined system requirements
Risk management
Poor communication
Poor project management
Politics
61
Q

What are the benefits of a software process?

A
Provides an organizational tool
Provides a large-scale shared framework
Facilitates necessary communication
Forces us to break down the problem
Provides management
62
Q

What is Software Engineering?

A

The process of solving customers’ problems by systematic activities in the development of software and creation of high-quality software systems within constraints.