Software Engineering Lecture

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/51

flashcard set

Earn XP

Description and Tags

Chapter 1 (MIdterms)

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

52 Terms

1
New cards

“easy” systems

one developer, one user, experimental use only

2
New cards

“hard” systems

multiple developers, multiple users, products

3
New cards

Over a stream

easy, one person job​

4
New cards

Over River Severn

The techniques do not scale

5
New cards
  1. Over a stream

  2. Over River Severn …

Analogy with bridge building

6
New cards

complexity

Software engineering is about managing this _______________

7
New cards

UNIX

contains 4 million lines of code​

8
New cards

Windows

2000 contains 108 lines of code​

9
New cards

Computer programs and associated documentation​

What is softwarre?

10
New cards

Software Products

may be developed for a particular customer or may be developed for a general market

11
New cards
  1. Generic

  2. Bespoke

Software Products may be?

12
New cards

Generic

developed to be sold to a range of different customers

13
New cards

Bespoke (Custom)

developed for a single customer according to their specification

14
New cards

Software Engineering

is an engineering discipline which is concerned with all aspects of software production​

15
New cards

- adopt a systematic and organised approach to their work ​

- use appropriate tools and techniques depending on ​

  • the problem to be solved, ​

  • the development constraints and ​

  • the resources available​

Software Engineers should:

16
New cards
  • theory​

  • fundamentals

Computer Science is Concerned with?

17
New cards

Software Engineering is Concerned with?

  • the practicalities of developing​

    • delivering useful software

18
New cards

Computer Science Theories

insuffficient to act BUT is a foundation for practical aspects of software engineering

19
New cards

system engineering

software engineering is part of?

20
New cards
  • hardware, ​

  • software and ​

  • process engineering

System engineering is concerned with all aspects of computer-based system development including:

21
New cards

System engineers are involved in:

  1. system specification, ​

  2. architectural design, ​

  3. integration

  4. deployment​

22
New cards

software process

a set of activities whose goal is the development or evolution of software

23
New cards
  1. Specification

  2. Development

  3. Validation

  4. Evolution

Generic activities in all software process are:

24
New cards

Specification

what the system should and its development constraints

25
New cards

Development

production of the software system

26
New cards

Validation

checking of the software is what the customer wants

27
New cards

Evolution

changing the software in response to changing demands

28
New cards

software process model

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

29
New cards
  1. Workflow perspective

  2. Data-flow perspective

  3. Role/action perspective

Examples of process perspectives:

30
New cards

Workflow perspective

represents inputs, outputs and dependencies ​

31
New cards

Data-flow perspective

represents data transformation activities ​

32
New cards

Role/Action perspective

represents the roles/activities of the people involved in software process

33
New cards
  1. Waterfall

  2. Evolutionary development

  3. Formal transformation

  4. Integration from reusable components

Generic Process Models:

34
New cards

60 %

how much are development costs?

35
New cards

40%

how much for testing cost

36
New cards

customer software

the evolution cost often exceeds development costs

37
New cards

Costs

it varies depending on the type of system being developed and the requirement of system attributes such as performance and system reliability

38
New cards

Distribution of Costs

depends on the development model that is used

39
New cards

Computer-Aided Software Engineering

What is CASE?

40
New cards

Computer-Aided Software Engineering

Software systems which are intended to provide automated support for software process activities, such as requirements analysis, system modelling, debugging and testing ​

41
New cards

Upper-Case

Tools to support the early process activities of requirements and design

42
New cards

Lower-Case

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

43
New cards

attributes of good software

The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable​

44
New cards
  1. Maintainability​

  2. Dependability​

  3. Efficiency​

  4. Usability

What are the attributes of good software?​

45
New cards

Maintainability

software must evolve to meet changing needs

46
New cards

Dependability

Software must be trustworthy

47
New cards

Efficiency

Software should not make a wasteful use of system resources

48
New cards

Usability

Software must be usable by the users for which it was designed

49
New cards
  1. Legacy Systems

  2. Heterogeneity

  3. Delivery

Software engineering in the 21st century faces three key challenges:​

50
New cards

Legacy Systems

Old, valuable systems must be maintained and updated

51
New cards

Heterogeneity

Systems are distributed and include of hardware and software

52
New cards

Delivery

There is increasing pressure for faster delivery of software