Software Engineering Profession Flashcards

1
Q

Software Engineering based on Wang & King

A

Software engineering is a discipline that adopts engineering approaches, such as established methologies, processes, measurement, tools, standards, in the development of large-scale software seeking to result in high-productivity, low cost, and measurable development schedule.

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

Software Engineering by John A McDermid?

A

Software engineering is the science and art of specifying, designing, implementing and evolving - with economy, timeliness and elegance - programs, documentation and operating procedures whereby computers can be made useful to man.

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

Ian Somerville definition of Software Engineering?

A

Software Engineering is an engineering discipline that is concerned with all aspects of software production from initial conception to operation and maintenance.

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

Wang and King?

A

An engineering discipline.

Large scale software

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

Characteristics of Software Engineering?

A
  • Inherent complexity and diversity
  • Difficulty of establishing and stabilizing requirements
  • Changeability or malleability of software
  • Abstraction and intangibility of software
  • Requirement of various problem-domain knowledge
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Engineering Dimensions?

A
Size
Cost
Quality
Lifetime
Measurability
Repeatability
Reusability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is Size dimension?

A

Size of problem and its solution

  • More than 5000 LOC
  • Size of team, more than one person often tens or hundreds of people
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Cost dimension?

A

Cost of the problem

- Minimal cost, high productivity

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

What is Quality dimension?

A

Quality of the solution

- Suitability, Maintainability, Extensibility, Reliability, Dependability, Efficiency

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

What is Lifetime dimension?

A

Lifetime of the system

- A system that endures and exceeds the lifetime of involvement of original developers

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

What is Measurability dimension?

A

Measurability

- Based on the evidence provided by concrete metrics

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

What is Repeatability dimension?

A

Capable of achieving the same result with the same constraints and process

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

What is Reusability dimension?

A

Capable of reusing and building on existing artefacts to solve similar problems

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

Software Trade-Off Triangle?

A

Schedule
Cost
Product

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

What do Software Engineers do?

A
  1. Engineers carry out a task by making series of decisions.
  2. Engineers measure things, they use approximations based on experience and empirical data.
  3. Engineers emphasize the use of a disciplined process when creating a design and can operate effectively as part of team in doing so.
  4. Engineers can have multiple roles: research, development, design, production, testing, construction.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Why is Software Engineering difficult?

A

Cognitive Constraints
Organizational Constraints
Resource Constraints

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

Cognitive Constraints?

A
Intangibility
Complexity
Indeterminacy
Diversity
Polymorphism
Inexpressiveness
Inexplicit Embodiment
Unquantifiable Quality
18
Q

Organizational Constraints?

A

Time Dependency
Conservative Productivity
Labour-Time Interlock

19
Q

Resource Constraints?

A

Cost
Human Dependency
Hardware Dependency

20
Q

What is good software?

A

8 -ilities

  1. Functional Suitability
  2. Usability
  3. Maintainability
  4. Reliability
  5. Security
  6. Performance Efficiency
  7. Compatibility
  8. Portability
21
Q

Functional Suitability?

A

Completeness, correctness, appropriateness.

22
Q

Usability?

A

Appropriateness recognizability, learnability, operability, user error protection, user interface aesthetics, accessibility.

23
Q

Maintainability?

A

Modularity, reusability, analysability, modifiability, testability

24
Q

Reliability?

A

Maturity, availability, fault-tolerance, recoverability

25
Q

Security?

A

Confidentiality, integrity, non-repudiation, accountability

26
Q

Performance Efficiency?

A

Time behaviour, resource utilization, capacity

27
Q

Compatibility?

A

Co-existence, interoperability

28
Q

Portability?

A

Adaptability, installability, replaceability

29
Q

Software Engineering Activities?

A
Requirements Analysis and Definition
Software Design
Programming and Dev Testing
QC and QA
Project Management
30
Q

Requirements activities produce?

A

The use-case model artifact

31
Q

Design activities produce?

A

The design model artifact

32
Q

Implementation activities produce?

A

Code, test-cases, documentation

33
Q

Methodology is?

A

the recipe, the steps to be followed in order to produce the artifacts of the given activity

34
Q

Project Management Methodologies?

A

Iterative, spiral, waterfall, SCRUM

35
Q

Requirement Methodologies?

A

Use-cases, functional specification, DFDs

36
Q

Design Methodologies?

A

Object-Oriented Analysis and Design, Structured Design, Component-Oriented Design, Service-Oriented Design

37
Q

Implementation Methodologies?

A

Object-Oriented Programming, Structured Programming, Functional Programming, Test-Driven Development

38
Q

Foundations of Software Engineering?

A

Theoretical and Organizational

39
Q

Theoretical Foundations?

A
Philosophical
Computing
Mathematical
Linguistic
Information
40
Q

Organizational Foundations?

A
Engineering
Cognitive Informatics
System Science
Management Science
Economics
Sociology
41
Q

Diversity of Software Systems?

A
Stand-Alone
Interactive, transaction based
Embedded control systems
Batch processing systems
Entertainment Systems
42
Q

Software Engineering Ethics?

A
Public
Client and Employer
Product
Judgement
Management
Profession
Colleagues
Self