EXAM2

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

1/69

flashcard set

Earn XP

Description and Tags

chapter 9,18,3,23,22b, 13, COCOMO

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

70 Terms

1
New cards

Program evolution dynamics

The study of the process of system change.

2
New cards

What did Lehman and Belady propose after major empirical studies.

There were a number of ‘laws’ which applied to all systems as they evolved.

(more like sensible observations rather than laws. They are applicable to large systems devolved by large organizations. Perhaps less applicable in other cases.)

3
New cards

Lehman’s law

  • Continuing change

  • Increasing complexity

  • Large program evolution

  • Organizational stability

  • Conservation of Familiarity

  • Continuing growth

  • Declining Quality

  • Feedback system

4
New cards

What are Lehman’s laws applicable to?

Large, tailored systems developed by large organizations

(Confirmed in more recent work by Lehman on the FEAST project)

5
New cards

For applicability of Lehman’s laws it is not clear how they should be modified for?

  • Shrink-wrapped software products

  • Systems that incorporate a significant number of COTS components

  • Small organizations

  • Medium sized systems

6
New cards

Software maintenance

  • Modifying a program after it has been put into use

  • Does not normally involve major changes to the system’s architecture.

  • Changes are implemented by modifying existing components and adding new components to the system

7
New cards

Types of maintenance

  • To repair system faults (to correct deficiencies)

  • To adapt software to a different operating environment (changing systems)

  • To add or modify the system’s functionality (to satisfy new requirements)

8
New cards

Distribution of maintenance effort for Fault repair? (percentage)

17%

9
New cards

Distribution of maintenance effort for Software adaptation? (percentage)

18%

10
New cards

Distribution of maintenance effort for Functionality addition/modification? (percentage)

65%

11
New cards

Distributed systems architectures

  • Client-server (services that are called on by clients) [servers that provide services are treated differently from clients that use them]

  • Distributed object (no distinction between clients and servers)

12
New cards

Middleware

  • Software that manages and supports different components of a distributed system

  • Usually off-the-shelf rather then specially written software

  • EX:
    transaction processing monitors;
    Data converters;
    Communication controllers.

13
New cards

Multiprocessor architectures

  • Simplest distributed system model

  • System composed of multiple processes that may execute on different processors

  • model of large real-time systems

  • may be pre-ordered or under the control of a dispatcher

14
New cards

Client-server architectures

  • Application is modelled as a set of services that are provided servers and a set of clients that use them

  • Clients know of servers but servers need not know clients

  • Clients and servers are logical processes

  • Mapping to the processes is not 1 : 1

15
New cards

Layered application architecture

  • Presentation layer
    - concerned with presenting the results of the computation to system users with collecting user input.

  • Application processing layer
    - concerned with providing application specific functionality

  • Data management layer
    - concerned with managing system databases

16
New cards

Thin-client model

  • all of the application processing and data management is carried out on the server. The client is simply responsible for running the presentation software

17
New cards

Fat-client model

  • the server is only responsible for data management. The software on the client implements the application logic and the interactions with the system user

18
New cards

COBRA

  • International standard for an Object Request Broker - middleware to manage communications between distributed objects

  • Middleware for distributed computing is required at 2 levels:
    - at the logical communication level (allows objects on different computers to exchange data and control information)
    - at the component level (provides a basis for developing compatible components)

19
New cards
<p>What structure is this?</p>

What structure is this?

COBRA

20
New cards

peer-to-peer architectures

  • Systems are decentralized systems where computations may be carried out by any node in the network

  • Overall system is designed to take advantage of the computational power and storage of a large number of networked computers

  • Most p2p systems have been personal systems but there is increasing business use of this technology.

21
New cards
<p>what is this a diagram of?</p>

what is this a diagram of?

Web services

22
New cards

Services standards

  • are based on agreed, XML -based standards so can be provided on any platform and written in any programming language

  • Key standards
    - SOAP
    - WSDL
    - UDDI

23
New cards

SOAP stands for

Simple Object Access Protocol

24
New cards

WSDL stands for?

Web services Description Language

25
New cards

UDDI stands for?

Universal Description, Discovery, and integration

26
New cards

Agile Manifesto

  • Individuals and interactions over processes and tools

  • Working software over comprehensive documentation

  • Customer collaboration over contract negotiation

  • Responding to change over following a plan

27
New cards

Principles of agile methods

  • Customer involvement

  • Incremental delivery

  • People not process

  • Embrace change

  • Maintain simplicity

28
New cards

Extreme programming practices

  • Incremental Planning

  • Small releases

  • Simple design

  • Test-first development

  • Refactoring

29
New cards

Examples of refactoring

  • Re-organization of a class hierarchy to remove duplicate code

  • Tidying up and renaming attributes and methods to make them easier to understand.

  • The replacement of inline code with calls to methods that have been included in a program library

30
New cards

Test automation

Tests are written as executable components before the task is implemented

31
New cards

Pair programming

  • Work in pairs, sitting together to develop code

  • Helps develop common ownership of code and spreads knowledge across the team

  • Serves an an informal review process as each line is looked at by more than 1 person

  • Encourages refactoring

  • similar to that of two people working independently

32
New cards

Software cost components

  • Hardware and software cost

  • Travel and training costs

  • Effort costs

  • Effort costs must take overheads into account

33
New cards

Software pricing factors

  • Market opportunity

  • Cost estimate uncertainty

  • Contractual terms

  • Requirements volatility

  • Financial health

34
New cards

Productivity measures

  • Size related: based on some output from the software process (lines of source code, object code instructions, etc.)

  • Function-related: based on an estimate of the functionality of the delivered software.

35
New cards

Factors affecting productivity

  • Application domain experience

  • Process quality

  • Project size

  • Technology support

  • Working environment

36
New cards

Estimation Techniques

  • Algorithmic cost modelling

  • Expert judgement

  • Estimation by analogy

  • Pricing to win

37
New cards

Motivation

  • An important role of a manager is to motivate the people on a project

  • It’s a complex issue but it has different types
    - Basic needs
    - Personal needs
    - Social needs

38
New cards

Human needs hierarchy (1 is the top 5 is the bottom)

  1. Self-realization needs

  2. Esteem needs

  3. Social needs

  4. Safety needs

  5. Physiological needs

39
New cards

Personality types

  • Needs hierarchy is an over-simplification

  • Different personality types
    - Task-oriented
    - Self-oriented
    - Interaction-oriented

40
New cards

Task-oriented

The motivation for doing the work is the work itself

41
New cards

Self-oriented

The work is a means to an end which is the achievement of individual goals - e.g. to get rich, to play tennis, to travel etc.

42
New cards

Interaction-oriented

The principal motivation is the presence and actions of co-workers. People go to work because they like to go to work

43
New cards

Group organization

  • Software engineering group sizes should be relatively small (< 8 members)

  • Break big projects down into multiple smaller projects

  • Small teams may be organized in an informal, democratic way

  • Chief programmer teams try to make the most effective use of skills and experience

44
New cards

The people capability maturity model (five stages)

  1. Initial

  2. Repeatable

  3. Defined

  4. Managed

  5. Optimizing

45
New cards

Security Dimensions

  • Confidentiality

  • Integrity

  • Availability

46
New cards

Asset

Something of value which has to be protected

47
New cards

Attack

An exploitation of a system’s vulnerability

48
New cards

Control

A protective measure that reduces system’s vulnerability

49
New cards

Exposure

Possible loss or harm to a computing system

50
New cards

Threat

Circumstances that have potential to cause loss or harm.

51
New cards

Vulnerability

A weakness in a computer-based-system that may be exploited to cause loss or harm

52
New cards

Threat types

  • Interception

  • Interruption

  • Modification

  • Fabrication

53
New cards

Interception

allow attackers to gain access to an asset

54
New cards

Interruption

Allows an attacker to make part of the system unavailable

55
New cards

Modification

Allow attackers to tamper with a system asset

56
New cards

Fabrication

allows attackers to insert false information into a system

57
New cards

What is Cocomo

Constructive Cost Model

58
New cards

SLOC

Source Line of code
1. One logical line of code
2. Declarations are counted as SLOC
3. Comments are not counted as SLOC
4. Only count delivered code
5. SOURCE lines are created by the project staff

59
New cards

COCOMO Scale Drivers

  • Precedentedness

  • Development Flexibility

  • Architecture/Risk resolution

  • Team Cohesion

  • Process Maturity

60
New cards

How many cost drivers does COCOMO have?

17

61
New cards

COCOMO Effort equation

= 2.94 EAF (KSLOC)^E

62
New cards

COCOMO Duration equation

= 3.67 (EFFORT)^SE

63
New cards

COCOMO Average Staff equation

= EFFORT/DURATION

64
New cards

Cloud Computing

Internet-based computing, where shared resources, software, and information are provided to computers and other devices on demand.

65
New cards

What services do cloud computing provide?

  • Reliability

  • Elasticity

  • Affordability

66
New cards

Cloud Computing types

  • Public

  • Private

  • Hybrid

67
New cards

Cloud Computing: Service Models

  • Infrastructure-as-a-Service (Iaas)

  • Platform-as-a-Service (PaaS)

  • Software-as-a-Service (SaaS)

68
New cards

IaaS examples

  • Amazon web service

  • Google compute engine

  • Azure

  • Digital Ocean

69
New cards

PaaS examples

  • Amazon web service

  • Google compute engine

  • Azure

  • heroku

  • Oracle

70
New cards

SaaS examples

  • Office 365

  • salesforce

  • Netflix

  • GoToMeeting

  • Google Docs