SOFTWARE DESIGN QUIZ AND PRELIM

0.0(0)
studied byStudied by 0 people
full-widthCall with Kai
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/118

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

119 Terms

1
New cards

Software

Computer programs and associated documentation such as requirements, design models and user manuals

2
New cards

Bespoke

software developed for a single customer according to their specification

3
New cards

Software Engineering

is an engineering discipline that is concerned with all aspects of software production.

4
New cards

Software Engineers

should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available

5
New cards

Computer Science Theories

are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering)

6
New cards

Specification

Development

Validation

Evolution

Generic Activities in all software processes

7
New cards

Software process

a simplified representation of a software process, presented from a specific perspective

8
New cards

Workflow perspective

Data-flow perspective

Role/action perspective

examples of process perspectives

9
New cards

waterfall

iterative development

component-based software engineering

generic process models

10
New cards

Software engineering methods

Structured approaches to software development which include system models, notations, rules, design advice and process guidance

11
New cards

Model descriptions

Descriptions of graphical models which should be produced

12
New cards

Rules

Constraints applied to system models

13
New cards

Recommendations

Advice on good design practice

14
New cards

Process guidance

What activities to follow

15
New cards

Computer-Aided Software Engineering

CASE

16
New cards

CASE

Software systems that are intended to provide automated support for software process activities

17
New cards

CASE systems

often used for method support

18
New cards

Upper-CASE

Tools to support the early process activities of requirements and design

19
New cards

Lower-CASE

Tools to support later activities such as programming, debugging and testing

20
New cards

good software

The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable.

21
New cards

Maintainability

Software must evolve to meet changing needs

22
New cards

Dependability

Software must be trustworthy

23
New cards

Efficiency

Software should not make wasteful use of system resources;

24
New cards

Acceptability

Software must accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems

25
New cards

heterogeneity, delivery and trust

key challenges facing software engineering

26
New cards

Heterogeneity

Developing techniques for building software that can cope with heterogeneous platforms and execution environments

27
New cards

Delivery

Developing techniques that lead to faster delivery of software

28
New cards

Trust

Developing techniques that demonstrate that software can be trusted by its users

29
New cards

Confidentiality

Engineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed

30
New cards

Competence

Engineers should not misrepresent their level of competence. They should not knowingly accept work which is outwith their competence

31
New cards

Intellectual property rights

Engineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected

32
New cards

Computer misuse

Software engineers should not use their technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).

33
New cards

Public

Software engineers shall act consistently with the public interest.

34
New cards

Client and Employer

Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest

35
New cards

Product

Software engineers shall ensure that their products and related modifications meet the highest professional standards possible

36
New cards

Judgment

Software engineers shall maintain integrity and independence in their professional judgment

37
New cards

Management

Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance

38
New cards

Profession

Software engineers shall advance the integrity and reputation of the profession consistent with the public interestCollea

39
New cards

Colleagues

Software engineers shall be fair to and supportive of their colleagues.

40
New cards

Self

Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession

41
New cards

Public
Client and Employer

Product

Judgment

Management

Profession

Colleagues

Self

Code of ethics-principles

42
New cards

Ethical Dilemmas

Disagreement in principle with the policies of senior management.

43
New cards

software process model

is an abstract representation of a process. It presents a description of a process from some particular perspective

44
New cards

waterfall model

Separate and distinct phases of specification and development.

45
New cards

evolutionary development

Specification, development and validation are interleaved

46
New cards

component-based software engineering

The system is assembled from existing components.

47
New cards

waterfall method

evolutionary development

component-based software engineering

generic software process models

48
New cards

waterfall model phases

its phases are:

requirements analysis and definition

systems and software design

implementation and unit testing

integration and system testing

operation and maintenance

49
New cards

difficulty for changes

waterfall method main drawback

50
New cards

Exploratory development

Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer

51
New cards

throw-away prototyping

Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed

52
New cards

commercial-off-the-shelf

COTS

53
New cards

Component-based software engineering

Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems.

54
New cards

Component analysis

Requirements modification

System design with reuse

Development and integration

Process stages of Component-based software engineering

55
New cards

Process iteration

System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems

56
New cards

iteration

can be applied to any of the generic process modelsin

57
New cards

incremental delivery

spiral development

two related approaches on process iteration

58
New cards

Incremental delivery

Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality

59
New cards

user requirements

are prioritised and the highest priority requirements are included in early increments

60
New cards

incremental delivery

Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve

61
New cards

Customer value

can be delivered with each increment so system functionality is available earlier

62
New cards

Early increments

act as a prototype to help elicit requirements for later increments

63
New cards

testing

The highest priority system services tend to receive the most __________

64
New cards

Extreme programming

An approach to development based on the development and delivery of very small increments of functionalitye

65
New cards

extreme programming

relies on constant code improvement, user involvement in the development team and pairwise programming

66
New cards

spiral development

Process is represented as a spiral rather than as a sequence of activities with backtracking

67
New cards

Each loop in the spiral represents a phase in the process.

No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.

Risks are explicitly assessed and resolved throughout the process

68
New cards

objective setting

Specific objectives for the phase are identified

69
New cards

risk assessment and reduction

risks are assessed and activities put in place to reduce the key risksde

70
New cards

development and validation

a development model for the system is chosen which can be any of the generic modelspl

71
New cards

planning

the project is reviewed and the next phase of the spiral is planned

72
New cards

software specification

software design and implementation

software validation

software evolution

process activities

73
New cards

software specification

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

74
New cards

feasibility study

requirements elicitation and analysis

requirements specification

requirements validation

Requirements engineering process

75
New cards

implementation

The process of converting the system specification into an executable systems

76
New cards

software design

design a software structure that realises the specificationoi

77
New cards

implementation

translate thsi structure into an executable program

78
New cards

architectural design

abstract specification

interface design

component design

data structure design

algorithm design

Design process activities

79
New cards

structured methods

Systematic approaches to developing a software design.

The design is usually documented as a set of graphical models

80
New cards

object model

sequence model

state transition model

structural model

data-flow model

possible models for structured methods

81
New cards

programming and debugging

Translating a design into a program and removing errors from that program

82
New cards

programming

a personal activity - there is no generic programming process

83
New cards

programmers

they carry out some program testign to discover faults in the program and remove these faults in the debugging process

84
New cards

verification and validation

is intended to show that a system conforms to its specification and meets the requirements of the system customer

85
New cards

system testing

involves executing the system with test cases that are derived from the specification of the real data to be processed by the system

86
New cards

component or unit testing

system testing

acceptance testing

testing stages

87
New cards

software evolution

software is inherently flexible and can change.

88
New cards

Rational unified process

a modern process model derived from the work on the UML and associated process

89
New cards

Inception

Elaboration

Construction

Transition

RUP phases

90
New cards

inception

Establish the business case for the system.

91
New cards

elaboration

Develop an understanding of the problem domain and the system architecture.

92
New cards

construction

System design, programming and testing

93
New cards

transition

Deploy the system in its operating environment

94
New cards

Develop software iteratively

manage requirements

use component-based architectures

visually model software

verify software quality

control changes to software

RUP good practice

95
New cards

Computer-aided software engineering (CASE)

is software to support software development and evolution processes

96
New cards

Case technology

has led to significant improvements in the software process. However, these are not the order of magnitude improvements that were once predicted

97
New cards

CASE classification

helps us understand the different types of CASE tools and their support for process activities.

98
New cards

Functional perspective

Tools are classified according to their specific function

99
New cards

Process perspective

Tools are classified according to process activities that are supported

100
New cards

integration perspective

Tools are classified according to their organisation into integrated units