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
Security?
Confidentiality, integrity, non-repudiation, accountability
26
Performance Efficiency?
Time behaviour, resource utilization, capacity
27
Compatibility?
Co-existence, interoperability
28
Portability?
Adaptability, installability, replaceability
29
Software Engineering Activities?
``` Requirements Analysis and Definition Software Design Programming and Dev Testing QC and QA Project Management ```
30
Requirements activities produce?
The use-case model artifact
31
Design activities produce?
The design model artifact
32
Implementation activities produce?
Code, test-cases, documentation
33
Methodology is?
the recipe, the steps to be followed in order to produce the artifacts of the given activity
34
Project Management Methodologies?
Iterative, spiral, waterfall, SCRUM
35
Requirement Methodologies?
Use-cases, functional specification, DFDs
36
Design Methodologies?
Object-Oriented Analysis and Design, Structured Design, Component-Oriented Design, Service-Oriented Design
37
Implementation Methodologies?
Object-Oriented Programming, Structured Programming, Functional Programming, Test-Driven Development
38
Foundations of Software Engineering?
Theoretical and Organizational
39
Theoretical Foundations?
``` Philosophical Computing Mathematical Linguistic Information ```
40
Organizational Foundations?
``` Engineering Cognitive Informatics System Science Management Science Economics Sociology ```
41
Diversity of Software Systems?
``` Stand-Alone Interactive, transaction based Embedded control systems Batch processing systems Entertainment Systems ```
42
Software Engineering Ethics?
``` Public Client and Employer Product Judgement Management Profession Colleagues Self ```