software engineering collection 5

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

Legacy System Replacement Risks

- Lack of complete system specification - Tight integration of system and business processes - Undocumented business rules embedded in the legacy system - New software development may be late and/or over budget

Change Prediciton

- Predicting the number of changes requires and understanding of the relationships between a system and its environment. - Tightly coupled systems require changes whenever the environment is changed. - Factors influencing this relationship are: 1) Number and complexity of system interfaces 2) Number of inherently volatile system requirements 3) The business processes where the system is used.

Complexity Metrics

- Predictions of maintainability can be made by assessing the complexity of system components. - Studies have shown that most maintenance effort is spent on a relatively small number of system components. - Complexity depends on: 1) Complexity of control structures 2) Complexity of data structures; 3) Object, method (procedure) and module size.

Key Points

- Software development and evolution can be thought of as an integrated, iterative process that can be represented using a spiral model. - For custom systems, the costs of software maintenance usually exceed the software development costs. - The process of software evolution is driven by requests for changes and includes change impact analysis, release planning and change implementation. - Legacy systems are older software systems, developed using obsolete software and hardware technologies, that remain useful for a business.

Charles Darwin Facts

- The ship he rode was named the Beagle - He studied Finches on the Galapagos Islands

Coupling

- qualitative measure of the degree - degree to which a component is connected to other components and to external world

geographic barriers

- separation of a population by emerging geographic barriers increases the likelihood of genetic adaptations on either side - the adaptations will be unique until reproductive isolation occurs

Natural Selection

-Darwin's survival of the fittest - Those best suited for their environment will survive and reproduce

Radioactive Dating (Absolute)

-Determines the actual age of fossils, done by radioactive aging -Radioactive isotopes decay over time and turn into other elements

Why are fossils evidence of evolution through natural selection?

-Show changes in species over long period of time -Show patterns and progression of change

Founder Effect

-type of genetic drift Occurs after a small number of indv. colonize a new area Ex. species are separated because of iceberg

Bottleneck Effect

-type of genetic drift Occurs after an event drastically reduces the size of an population Ex. asteroid that hit earth and killed dinosaurs, but some mammals survived

Two basic Parts of Darwin's Theory

1) Diverse groups of animals evolve from one or a few common ancestors; 2) The mechanism by which this evolution takes place is natural selection Ex. Finches,

General Steps in the Software Evolution Process

1. Change Requests 2. Impact Analysis 3. Release Planning (Includes fault repair, platform adaptation, and system enhancement) 4. Change Implementation 5. System Release

Domain Engineering

1. Define the domain 2. Categorize the items extracted 3. Collect a representative sample 4. Analyze each application 5 Develop an analysis model

IGNORE THIS SLIDE

1. Extinction 2. Adaptive Radiation 3. Convergent Evolution 4. Clution 5. 6.

Five means where we look for evolution or common ancestory:

1. Fossil Record 2. Homologous Structures 3. Molecular Homologies 4. Biogeography 5. Embryologoy

Mechanisms of Evolution

1. Gene flow 2. Genetic drift 3. Sexual selection 4. Mutation 5. Artificial selection

Component Level Design

1. Identify all design correspond to problem domain 2. Identify all design correspond to infrastructure domain 3. Elaborate all design that are not acquired 3a Specify message details 3b Identify appropriate interfaces per component 3c Elaborate attributes 3d Describe processing flow 4 Describe persistent data sources 5 Develop and elaborate behavioral representation 6 Elaborate deployment diagrams 7 Factor every component-level design

General Steps in Change Implementation

1. Proposed changes 2. Requirements analysis 3. Requirements updating 4. Software development

Software Timeline (Life Cycle)

1. Software Development 2. Software Evolution 3. Software Servicing 4. Software Retirement (Phase-out)

Adaptation

1. consistent methods 2. common activities 3. interfaces within the architecture

two examples of genetic barriers

1. marsupials: development of punched animals and placental animals 2. Darwin's finches: a single species of galapagos finch underwent adaptive radiation to form 13 different species of finches that enables them to survive int heir niche.

How old is the Earth?

4.543 billion years

What process embodies these principles?

A Scrum retrospective.

Array

A data structure in which data items of the same type are grouped together

Bottom-up Design

A design methodology which begins with writing procedures and blocks of code

Flow Chart

A design notation using boxes linked by arrows showing data flow

System-of-Systems system

A large number of mostly decoupled systems that work together based off of a communication standard. These system cannot easily be isolated or configured separately for tests. Different systems will be expanding at difference rates, meaning test criteria will be changing extremely rapidly.

Fixed Loops

A loop which is carried out a set number of times

Species

A member of the same species can interbreed and reproduce Ex. A panda bear reproducing with another panda bear

Design

A stage of SDP that involves the planning of a solution to the problem

Documentation

A stage of the SDP where a user guide and technical guide are produced

Socio-technical system

A system that has a large number of users will have more variation in demographics. It will be difficult to create a unifying test suite for every use case / experience for each user type.

Heterogeneous complex system

A system that is worked on my multiple different organisations / developers. Different design and coding methodologies mean hard to create a unifying test suite.

Pseudocode

A text-based design notation using ordinary language to define a problem

Perfective Maintenance

Adding new features to a program and the request and cost of the client

domain specific

Agile process improvement is meant to be specific to a particular project, rather than for an entire company etc.

Rich client

All three layers (interface, business, data) implemented on device. Subject to mobile limitations.

Field Testing

Allowing users other than the programmers to test the program

Portability

An evaluation criterion that assesses if the software can be used on a computer other than the one on which it was designed

Maintainability

An evaluation criterion that determines how easy it is to maintain a program

Observed Natural Selection Ex.

Antibiotic resistant bacteria, peppered moths of England

Analogous structures are or are not evidence of a common ancestor?

Are not

What is Verification?

Are we building the product right?

When should a retrospective take place?

At the end of an iteration.

Software Servicing

At this stage, the software remains useful but the only changes made are those required to keep it operational i.e. bug fixes and changes to reflect changes in the software's environment. No new functionality is added.

Pre Z Barrier -Mechanical Isolation

Atomically incompatible

Disruptive Selection

Average is bad, extreme is good Ex. When you have both black and white color rabbits, gray are bad

Stabilizing Selection

Average is good Ex. Baby's head not too big, not too small, but medium

Three domain system of classification

Bacteria, Archaea, Eukaryota

In 1968 scientists used a five kingdom system:

Bacteria, Fungi, Protista, Plantae and Animalia

Why can no population be actually represented by The Hardy-Weinberg Principle

Because real populations have unstable gene pools and migrating populations

Why does adpative radiation occur after mass extinctions?

Because there are many open niches waiting to be filled, this helps with evolution

Fittness

Being better suited for one's environment

Prezygotic Reproductive barrier

Blocks formation of zygote - before sperm and egg join together

Miller-Urey Experiment

Can we make organic compounds? -Stimulated early Earth

Which is the best known model for characterising the results of an on-going SPI effort?

Capability Maturity Model.

CORBA

Common Object Request Broker Architecture

Technical Guide

Documentation designed for technical personnel that explains how to install software

User Guide

Documentation that explains how to operate the software once it has been installed

What s software process improvement?

Ensuring and enhancing the quality of software development efforts.

In 1980, scientists recognized that Bacteria were composed of two distinct groups:

Eubacteria and Archaea

Three domains

Eukarya, Bacteria and Archaea

Configuration reviews are not needed if regression testing has been rigorously applied during software integration. True/False

False

In software quality assurance work there is no difference between software verification and software validation. True/False

False

Performance testing is only important for real-time or embedded systems. True/False

False

Recovery testing is a system test that forces the software to fail in a variety of ways and verifies that software is able to continue execution without interruption. True/False

False

Software validation is achieved through a series of tests performed by the user once the software is deployed in his or her work environment. True/False

False

Units and stubs are not needed for unit testing because the modules are tested independently of one another. True/False

False

When testing object-oriented software it is important to test each class operation separately as part of the unit testing process. True/False

False

Analysis

First stage of the SDP concerned with gathering knowledge and understanding the problem

Corrective Maintenance

Fixing bugs or mistakes which were not discovered at the testing stage

What does 2pq represent?

Frequency of the heterozygous genotype (Aa)

Pre Z Barrier - Gamete Isolation

Gametes don't form zygote, Ex. Chimp and cow and cow can't reproduce

What is the first step in the SPI cycle?

Gather data from most recent iteration.

BDD acceptance criteria format

Given <pre condition> And <pre condition> When <action> And <action> Then <result> And <result>

Adaptive Advantage

Having a trait that makes one better suited for their environment

How did Alfred Wallace help develop the the evolutionary theory?

He came along after Darwin developed his theories. He had more guts that Darwin and helped broadcast his theory to the world.

Mutation

Heritable change in the nucleotide sequence of the genetic nuclei acid, resulting in an alteration in the products coded for by the gene

Hominids

Humans and their ancestors --Bipedal, walk up right on two legs --Homo Sapien only existing one --Not linear evolution, jumbled up tree --Maybe and Neanderthals and Homo Sapiens are not a different species?

Project Manager

In charge of the whole software development process

Reasons for increases in testing complexity

Increase in: - Number of modules and inter-dependencies - Number of software platforms - Variation of builds and configurations - Duration and variation of inputs - Variation in users Differences in: - Size, location and experience of dev teams

How should the business value of a legacy system be assessed?

Interview different stakeholders and collate the results! - System end-users - Business customers - Line managers - IT managers - Senior managers

Systems Analyst

Interviews company personnel and observes current procedures looking for ways to improve the system

Gene Flow

Introduction or loss of new alleles into the population through immigration or emigration -Is the transfer of alleles or genes from one population to another. Ex. U.S. melting pot

Exhaustive Testing

Involves all the possible sets of test data and all of the program pathways

Change Implementation

Iteration of the development process where the revisions to the system are designed, implemented and tested.

Concatenation

Joining strings together

Eukarya

Kingdoms of protista, fungi, plantae and antimalia

Software Specificiation

Legally binding document defining the problem

Maintenance Prediction

Maintenance prediction is concerned with assessing which parts of the system may cause problems and have high maintenance costs

Theory Synopsis #2

Modification by Natural Selection -Environment selects which individual will survive and reproduce

Different sources of genetic variation

Mutations,

________ __________ is the mechanism by which __________ occurs

Natural Selection, Evolution

Is requirements gathering a QA practice?

No.

Directional Selection

One is better off than the other Ex. Bigger beaks are better, Galapagos Islands

What is the highest (most mature) level in the Capability Maturity Model?

Optimising.

Natural Selection

Organisms adapt advantageous variations and is encapsulated in the phrase "survival of the fittest."

Module Library

Pre-defined and tested subprograms which speed up the SDP

Artificial Selection

Process of selective breeding to get certain traits in an organism - Humans select which organisms will breed based on desired chara. Ex. lab+ poodle= labordoodle

Genetic Drift

Random changes in genetics due only to chance

Macroevolution

Refers to the large scale evolutionary patterns and processes that occur over long periods of time (Big change) Ex. Birds of Paradise

Formation of a new species hinges on __________ ___________

Reproductive isolation

Iteration

Revisiting or repeating steps in the SDP to improve the solution

Linnaeus's System of Classification

Seven levels of classification based on structure and similarities *Kingdom, phylum, class, order, family, genus, species* -Each level called a taxon

Cladogram

Shows the evolutionary relationships among a group of organisms

Molecular Homologies

Similar DNA, RNA and proteins found in diff. species

Efficiency

Software is evaluated for excessive resource use such as memory or backing storage

Divergent Evolution

Species getting more different as evolution occurs

What three words might summarise the discussions in a retrospective?

Stop/start/continue.

Competition

The developing population must compete for the necessities of life

Debugging

The process of finding and correcting errors in a program

Software Retirement (Phase-out)

The software may still be used but no further changes are made to it.

Software Evolution

The stage in a software system's life cycle where it is in operational use and is evolving as new requirements are proposed and implemented in the system.

Compiler

Translates a high level language program into object code

Interpreter

Translates and runs a high level language one line at a time

Debugging is not testing, but always occurs as a consequence of testing. True/False

True

The focus of validation testing is to uncover places that a user will be able to observe failure of the software to conform to its requirements. True/False

True

Pre Z Barrier - Behavioral Isolation

Two populations are capable of interbreeding but differ in courtship rituals or other reproductive strategies that involve behavior, Ex. Why CF football players don't have girlfriends

Input Validation

Used to check that data input is with an acceptable range

Counting Occurrences

Used to count how many times a value appears in a list

Linear Search

Used to find a target value in a full list

Local Variable

Variables defined only for use in one subprogram

Importance of variation in evolution theory

We are able to try different things, if there was no variances, things would easily die off if everyone was the same.

Modularity

When a program is divided into smallers sections called subprograms

Programmer

Writes code working to a software specification

Postzygotic Reproductive barrier

Zygote forms but offspring is not viable Ex. Liger, not going to pass on species

Which of the following is an approach to debugging? A) backtracking B) brute force C) cause elimination D) code restructuring

a b c

Qualification

before a component can be used, the user must consider some requirements.

Taxon

category

Enumerated classification

defining a hierarchical structure

Speciation may occur when

demes become isolated

Dependency Inversion Principle

depend on abstractions

Faceted classification

domain area is analyzed and a set of basic descriptive features are identified

Reuse Environment

enables a client application to retrieve components and services from the library server.

molds

form hollow spaces in rocks as the organisms decay

casts

formed by minerals deposited in molds

Release Reuse Equivalency Principle

granule of reuse is the granule of release

vestigial structures

have no known current function but apparently have some ancestral function

homologous structures

have the same basic anatomical features and evolutionary origins but their functions are different

imprints

impressions left by an organism (footprints)

Software process improvement

improving the software development practices you use (as opposed to directly improving the product itself).

OMG/CORBA

interface repository contains all necessary information about the service's request.

Overpopulation

more offspring are produced that can survive. Resources are insufficient to support the entire population

the pioneer autographs developed ...

primitive photosynthetic pathways, using solar energy to make carbohydrates from CO2 + H20

Microsoft COM

provides a specification for using components produced by various vendors within a single application

stages of development of the embryo

resemble the stages in an organisms evolutionary history

Assortive mating

selection of a mate with preference for (or aversion to) a particular genotype

Fitness

the ability to survive and reproduce

Pre Z Barrier - Temporal Isolation

When two or more species reproduce at different times, Ex. When a 40 yr old dates a 45 yr old its okay, but when a 5th grader dates a 10th grader its not--- all about timing

How were Darwin's thoughts a contrast to the time period?

Everyone believed in Llmark's theory that if one didn't use their traits, that they lost it. Or if they did use it and acquire it, it is passed on.

Gradualism

Evolution proceeds chiefly by the accumulation of gradual changes

Substrings

Secting part of a string

Comparitive Embryology

Similar embryonic features in very different species suggests descent from common ancestry

Phylogeny

Study of evolutionary relationships among organisms

Since many WebApps evolve continuously, the testing process must be ongoing as well. True/False

True

Lamarckian Evolution

changes occurring in an organism through use and disuse of its body parts in response to environmental change are inherited by its offspring.

Cohesion

class encapsulates only attributes and operations (single-mindedness" of a module

Common Reuse Principle

classes that aren't reused together should not be grouped together.

Common Closure Principle

classes that change together belong together

Bacteria

corresponds to kingdom Eubacteria

Attribute-value classification

set of attributes are defined for all components

Divergent Evolution

when species with a shared ancestor develop different traits due to dissimilarities between their environments

Convergent Evolution

when two species from different ancestors develop similar traits

Genetic drift

changes in the composition of the gene pool due to chance

What does p^2 represent?

Frequency of the homozygous dominant genotype (TT)

What does q^2 represent?

Frequency of the homozygous recessive genotype (aa)

Higher the level of taxon, the ___ back in ____ the ancestor of all organisms in that taxon

further, time

demes

small and local populations before speciation

Endosymbiotic theory

Eukaryotes evolved from prokaryotes living within larger prokaryotes -eukaryotes evolved from simpler things co-living

Stress testing examines the pressures placed on the user during system use in extreme environments. True/False

False

Darwin's contribution to the evolutionary theory

He stated that all species of organisms arise and develop through the natural selection of small, inherited variations that increase the individual's ability to compete, survive, and reproduce.

Domain

Highest taxonomic rank of organisms

Readability

How easy it is for your program to be read by anyone else

Reliability

How well your program operates without stopping due to design faults

What did Malthus, Lyell and Hutton contribute to Darwin's theory?

Hutton and Lyell provided a base for Darwin, if Earth changes if given enough time, could animals? *Uniformitarianism* Malthus- believed that unless people showed restraint to the number of children they had, the limited supply of food and natural disasters will cause people to fight for their survival. Causing some to survive and others to die from war, famine, etc. Darwin applied this to the wild, he wondered if this was happening in the wild? Before he thought that they were just producing enough for stable pop. Now he realized that the fittest would go on to survive.

Punctuated Equilibrium

Long periods of little evolution broken up by short period of rapid evolution -supported by fossil record

Behaviour Driven Development (BDD)

Creating acceptance tests off of user stories.

How did the work of Mendel support/help Darwin?

Darwin knew traits were inherited, but he did not know how. With the help of Mendel he was able to figure out that mutation are a mechanism of natural selection

Theory Synopsis #1 from Darwin

Descent with modification -Offspring can vary slightly from their parents

Structure Diagram

A design notation using different shaped boxes and showing hierarchy

Design Notation

A way of describing the design of a program eg. pseudocode or structure diagram

Variations

Offspring naturally show differences in their characteristics compared to those of their parents. Caused by mutations

Vestigial Structures

Structures that were an adaption for a species ancestor, but evolved to be non-functional because the organisms environment changed, Ex, Humans: appendix

What is the responsibility of the Scrum master?

To ensure the business of the meeting does not take more than a few hours.

By collecting software metrics and making use of existing software reliability models it is possible to develop meaningful guidelines for determining when software testing is done. True/False

True

Security testing attempts to verify that protection mechanisms built into a system protect it from improper penetration. True/False

True

Pre Z Barrier - Geographic/Habitat Isolation (most common)

Two populations are separated by geographic barriers, like rivers or mountains

Coevolution

Two species evolve in response to changes in each other over time Ex. Hosts and parasites

Data Types

Types of data stored by a program including string, integer, real, single

Analogus Structure *

Various structures in different species having the same function but have evolved separately, Ex. Wings of birds, bats and insects -Result of Convergent Evolution

4 general categories of living things

autotrophic anaerobes (chemosynthetic bacteria) autotrophic aerobes (green plants and phytoplankton) heterotrophic anaerobes (yeasts) heterotrophic aerobes (amoebas, earthworms and humans)

Acceptance tests are normally conducted by the A) developer B) end users C) test team D) systems engineers

b

Smoke testing might best be described as A) bulletproofing shrink-wrapped software B) rolling integration testing C) testing that hides implementation errors D) unit testing for small programs

b

Top-down integration testing has as it's major advantage(s) that A) low level modules never need testing B) major decision points are tested early C) no drivers need to be written D) no stubs need to be written

b c

Bottom-up integration testing has as it's major advantage(s) that A) major decision points are tested early B) no drivers need to be written C) no stubs need to be written D) regression testing is not required

c

What is the normal order of activities in which traditional software testing is organized? A) integration testing B) system testing C) unit testing D) validation testing

c a d b

Which of the following need to be assessed during unit testing? A) algorithmic performance B) code stability C) error handling D) execution paths

c d

Selection

change in allele frequencies over generations due to differential survival and reproductive success of genotype

microevolution

change in the frequency of alleles in a population over many generations

Interface Segregation Principle

client-specific interface are better than one general purpose interface

Rate of evolutionary change will ________ as the environment ________ and the variation in the population ___________

increases x3

Open-Closed Principle

open for extension; closed for modification

Dependencies and Inheritance

(Guidelines) good idea to model dependencies from left to right

Types of non-functional requirements

- Security - Reliability - Performance

population

includes all members of a particular species inhabiting a given location

CBSE Activities

Component qualification, adaptation, composition, update

OMG

Object Management Group

What is Validation?

Are we building the right product?

Interfaces

(Guidelines) interfaces provide important information about communication

Components

(Guidelines) naming conventions should be established

Characterisation standards & Management standards

*Characterisation standards* measure how well a team is performing. *Management standards* are processes we can take to improve the metrics we collect from a software project.

"maturity" of a software project and how to transition between the levels of maturity:

*Initial:* The software process is ad hoc and can be chaotic *Repeatable:* Basic practices are established to track cost, schedule and functionality *Defined:* The software process for both management and engineering activities is documented, standardised and integrated into a standard process for the organisation *Managed:* Detailed measures of the software process and product quality are collected *Optimising:* Continuous process improvement is enabled by quantitative feedback from the process and from piloting new ideas and technologies.

Prezygotic vs. postzygotic

*Prezygotic* isolation prevents the fertilization of eggs while *postzygotic* isolation prevents the formation of fertile offspring

questions that should be answered in a retrospective are:

*START* - what should we begin doing that we aren't doing yet? *STOP* - what did we do that didn't help and that we should stop? *CONTINUE* - what did we do well that we should keep doing?

collect data from team members using a variety of techniques:

*Theme boards* identify recurring topics and ideas between team members. For example, you could have 4 categories, "Liked", "learned", "lacked", and "longed for", and then you can write things on sticky notes that match those "themes". *Five whys* helps diagnose the root cause for a problem. You take a problem and then keep asking why until you get an answer that can be improved by process improvement.

Maintenance Effort Distribution

- 25% Fault Repair - 20% Environmental Adaptation - 55% Functionality Addition and Modification (I adapted these numbers from the book as the book's numbers on the graph represented 101%....)

Maintenance Costs: Why is it more expensive to add new features during maintenance than it is to add the same features during development?

- A new team has to understand the programs being maintained - Separating maintenance and development means there is no incentive for the development team to write maintainable software - Program maintenance work is unpopular - Maintenance staff are often inexperienced and have limited domain knowledge. - As programs age, their structure degrades and they become harder to change

System Quality Assessment Components

- Business process assessment: How well does the business process support the current goals of the business? - Environment assessment: How effective is the system's environment and how expensive is it to maintain? - Application assessment: What is the quality of the application software system?

How might you decide which improvement actions to select?

- By priority. - By feasibility. - By return on investment.

How can we characterise the standards for SPI?

- Characterisation standards: used to relate metrics gathered from a software project to an assessment of the maturity of a team's QA processes. - Management standards: explain the methods and activities to undertake to conduct an SPI effort.

How could you monitor review actions?

- Create tickets for next milestone. - Ensure someone is responsible for each action. - Include previous decisions in future retrospectives. - Review the process review process.

What are the principles of Agile Process Improvement?

- Domain specific. - Continual reassessment of new information. - Whole team involvement.

Advantages of Reengineering

- Reduced risk: There is a high risk in new software development. There may be development problems, staffing problems and specification problems. - Reduced cost: The cost of re-engineering is often significantly less than the costs of developing new software.

"Bad Smells" in Code that can be fixed with Refactoring

- Duplicate code: The same or very similar code may be included at different places in a program. This can be removed and implemented as a single method or function that is called as required. - Long methods: If a method is too long, it should be redesigned as a number of shorter methods. - Switch (case) statements: These often involve duplication, where the switch depends on the type of a value. The switch statements may be scattered around a program. In object-oriented languages, you can often use polymorphism to achieve the same thing. - Data clumping: Data clumps occur when the same group of data items (fields in classes, parameters in methods) re-occur in several places in a program. These can often be replaced with an object that encapsulates all of the data. - Speculative generality: This occurs when developers include generality in a program in case it is required in the future. This can often simply be removed.

Types of Maintenance

- Fault repairs: Changing a system to fix bugs/vulnerabilities and correct deficiencies in the way meets its requirements. - Environmental adaptation: Maintenance to adapt software to a different operating environment or changing a system so that it operates in a different environment (computer, OS, etc.) from its initial implementation. - Functionality addition and modification: Modifying the system to satisfy new requirements.

What is the basic workflow of process improvement?

- Gather data from previous iteration. - Evaluate previous performance. - Choose improvement actions. - Implement actions in next iteration.

Give 4 examples of SPI standards.

- ISO 9001. - Six Sigma. - Capability Maturity Model (CMMI). - Agile Process Improvement.

Reasons for urgent change requests

- If a serious system fault has to be repaired to allow normal operation to continue - If changes to the system's environment (e.g. an OS upgrade) have unexpected effects - If there are business changes that require a very rapid response (e.g. the release of a competing product).

What are the 5 maturity levels for a software process in CMMI?

- Initial: software process is adhoc, occasionally even chaotic. - Repeatable: basic project management processes are established to track cost, schedule and functionality. - Defined: software process is documented, standardised and integrated. - Managed: detailed measures of the software process and product quality are collected. - Optimising: continuous process improvement enabled by quantitative feedback from the process.

Key Points (cont.)

- It is often cheaper and less risky to maintain a legacy system than to develop a replacement system using modern technology. - The business value of a legacy system and the quality of the application should be assessed to help decide if a system should be replaced, transformed or maintained. - There are 3 types of software maintenance, namely bug fixing, modifying software to work in a new environment, and implementing new or changed requirements.

Security metrics

- Knowledge required for penetration - Time / resources required for penetration - Unpatched vulnerabilities per line of code - Patches per year - Successful penetration per year - Attack surface exposure

Legacy Systems

- Legacy systems are older systems that rely on languages and technology that are no longer used for new systems development. - Legacy software may be dependent on older hardware, such as mainframe computers and may have associated legacy processes and procedures. - Legacy systems are not just software systems but are broader socio-technical systems that include hardware, software, libraries and other supporting software and business processes.

Software Maintenance

- Modifying a program after it has been put into use. - The term is mostly used for changing custom software. Generic software products are said to evolve to create new versions. - Maintenance 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.

Reasons for Software Change

- New requirements emerge when the software is used - The business environment changes - Errors must be repaired - New computers and equipment is added to the system - The performance or reliability of the system may have to be improved

Legacy System Change Costs (Why so expensive?)

- No consistent programming style - Use of obsolete programming languages with few people available with these language skills - Inadequate system documentation - System structure degradation - Program optimizations may make them hard to understand - Data errors, duplication and inconsistency

Reliability Metrics

- Probability of failure on demand - Mean downtime - Downtime per year

Process Metrics

- Process metrics may be used to assess maintainability: 1) Number of requests for corrective maintenance 2) Average time required for impact analysis 3) Average time taken to implement a change request 4) Number of outstanding change requests - If any or all of these is increasing, this may indicate a decline in maintainability.

Positives of mass extinction

- Provides ecological opportunity for organisms that survived, Ex. Mammals when dinosaurs died -Resulted in bursts of evolution that produced many new species

Refactoring vs Reengineering

- Re-engineering takes place after a system has been maintained for some time and maintenance costs are increasing. You use automated tools to process and re-engineer a legacy system to create a new system that is more maintainable. - Refactoring is a continuous process of improvement throughout the development and evolution process. It is intended to avoid the structure and code degradation that increases the costs and difficulties of maintaining a system.

Refactoring

- Refactoring is the process of making improvements to a program to slow down degradation through change. - You can think of refactoring as 'preventative maintenance' that reduces the problems of future change. - Refactoring involves modifying a program to improve its structure, reduce its complexity or make it easier to understand. - When you refactor a program, you should not add functionality but rather concentrate on program improvement.

Software Rengineering

- Restructuring or rewriting part or all of a legacy system without changing its functionality. - Applicable where some but not all sub-systems of a larger system require frequent maintenance. - Reengineering involves adding effort to make them easier to maintain. The system may be re-structured and re-documented.

Legacy System Management Strategic Options

- Scrap the system completely and modify business processes so that it is no longer required - Continue maintaining the system - Transform the system by re-engineering to improve its maintainability - Replace the system with a new system

Reengineering Process Activities

- Source code translation: Convert code to a new language - Reverse engineering: Analyse the program to understand it - Program structure improvement: Restructure automatically for understandability - Program modularisation: Reorganise the program structure - Data reengineering: Clean-up and restructure system data.

Factors used in environment assessment

- Supplier Stability - Failure Rate - Age - Performance - Support Requirements - Maintenance Costs - Interoperability

Components of Legacy Systems

- System hardware: Legacy systems may have been written for hardware that is no longer available. - Support software: The legacy system may rely on a range of support software, which may be obsolete or unsupported. - Application software: The application system that provides the business services is usually made up of a number of application programs. - Application data: These are data that are processed by the application system. They may be inconsistent, duplicated or held in different databases. - Business processes: These are processes that are used in the business to achieve some business objective. - Business policies and rules: These are definitions of how the business should be carried out and constraints on the business. Use of the legacy application system may be embedded in these policies and rules.

System Measurement (Quantitative data collected to make an assessment of the quality of the application system)

- The number of system change requests: The higher this accumulated value, the lower the quality of the system. - The number of different user interfaces used by the system: The more interfaces, the more likely it is that there will be inconsistencies and redundancies in these interfaces. - The volume of data used by the system: As the volume of data (number of files, size of database, etc.) processed by the system increases, so too do the inconsistencies and errors in that data. Cleaning up old data is a very expensive and time-consuming process

Reengineering cost factors

- The quality of the software to be reengineered. - The tool support available for reengineering. - The extent of the data conversion which is required. - The availability of expert staff for reengineering (This can be a problem with old systems based on technology that is no longer widely used)

What 2 main sources of information can be used as input to the evaluation of a retrospective?

- The team members: they can provide detailed information as to the performance of the project team. - Project artefacts: provide a valuable alternative source of info about project's historic performance.

Software Evolution Processes depend on:

- The type of software being maintained - The development processes used - The skills and experience of the people involved

Issues in Business Value Assessment

- The use of the system: If systems are only used occasionally or by a small number of people, they may have a low business value. - The business processes that are supported: A system may have a low business value if it forces the use of inefficient business processes. - System dependability: If a system is not dependable and the problems directly affect business customers, the system has a low business value. The system outputs: If the business depends on system outputs, then the system has a high business value

What are 2 elicitation techniques for retrospectives?

- Theme boards: a technique for identifying recurring topics and ideas (4 Ls). - Five whys: a technique for diagnosing root cause of a problem.

Performance Metrics

- Throughput - Demand - Response

Factors used in application assessment

- Understandability - Documentation - Data - Performance - Programming Language - Configuration Management - Test Data - Personnel Skills

Maintenance Costs

- Usually greater than development costs (2x to 100x depending on the application). - Affected by both technical and non-technical factors. - Increases as software is maintained. Maintenance corrupts the software structure so makes further maintenance more difficult. - Ageing software can have high support costs (e.g. old languages, compilers etc.).

What are 7 quality assurance practices?

- Version control. - Project planning, task and progress management. - Software build and dependency management. - CI. - Risk management. - Software testing and inspections. - Continual refactoring.

What questions do you aim to answer in a retrospective?

- What did we do well and should keep doing? - What did we do that did not help and we should stop? - What should be begin doing that we aren't doing yet?

Handover problems when software is handed over to another development team

- Where the development team have used an agile approach but the evolution team is unfamiliar with agile methods and prefer a plan-based approach. The evolution team may expect detailed documentation to support evolution and this is not produced in agile processes. - Where a plan-based approach has been used for development but the evolution team prefer to use agile methods. The evolution team may have to start from scratch developing automated tests and the code in the system may not have been refactored and simplified as is expected in agile development.

coacervate droplets

- a cluster of colloidal molecules surrounded by a shell of water - tend to absorb and use substance from surroundings - not living but possessed living traits - may have developed into fist primitive cells

biochemical pathways

- the primitive heterotrophs evolved biochemical pathways to enable them to use more nutrients - evolved anaerobic respiratory process to concert nutrients to energy

Relative Dating

-Index fossils are used to compare fossils from different areas ---Chara. of index fossils: wide spread, existed for relatively short time, easily fossilized -Comparing placement of fossils in strata

Why are there gaps in Fossil Record

-Not all organisms form fossils -Fossils have been destroyed by geologic forces -No all fossils have been found

At the end of the retrospective...

-need to prioritise which actions are going to be resolved or worked on during the next iteration. -You might choose these by priority, by how easy they are to implement, or by how much they will provide a return on any investment required.

Taxonomy

Branch of science that classifies organisms

Stepwise Refinement

Breaks each step down as far as possible until each step can be turned into a line of code

Legacy System Assessment Criteria

Business Value vs System Quality - High Business Value but Low Quality (make an important business contribution but are expensive to maintain. Should be re-engineered or replaced if a suitable system is available.) - Low Business Value and Low Quality (should be scraped) - Low Business Value but High Quality (replace with COTS, scrap completely or maintain.) - High Business Value and High Quality (continue in operation using normal system maintenance)

Derived characteristics

Characteristics that appear in recent parts of a lineage but not in its older members -mark differences

Evolution

Change over time, process by which modern organisms have descended from ancient organisms

Uniformitarianism

Changes in the earth's crust during geological history have resulted from the action of continuous and uniform process

Catastrophism

Changes in the earth's during geological history have resulted chiefly from sudden and unusual events

Adaptive Maintenance

Changing the software in response to changes in the client's hardware

Inheritance of the variations

Individuals that survive (those with the favorable variations) live to adulthood to reproduce and transmit the favorable adaptions to offspring

Thin web-based client

Interface layer only on device (Business and data -> cloud)

Sexual Selection

Process in which certain traits increase mating success and therefore become more common in the population -Ex. prettier people get more attention, peacock effect

Process improvement is what type of tool?

Quality assurance.

Homologous Structure

Similar structure shared in different species -Result of Divergent Evolution

Adaptive Radiation

Single species or a small group of species evolves into several different forms that live in different ways Ex. Birds of Paradise, Darwin's finches

What is it five whys technique?

State a problem and ask why it happened. When an answer is give, the question is asked again. You don't actually have to get exactly 5 whys.

Extreme Test Data

Test data which is on the boundary of what is acceptable by the program

Normal Test Data

Test data which is within a range that the program should accept

Exceptional Test Data

Test data which should be rejected by the program under test conditions

Comprehensive Testing

Testing programs as thoroughly as possible

Acceptance Testing

The Beta testing stage of the SDP

Robustness

The ability of software to cope with errors during execution without crashing

Biogeography

The distribution of plants and animals around the Earth

Molecular Homology

The evolutionary history of a species can be seen in its DNA sequences. The more closely related two species are, the more similar their DNA sequences.

Gene flow

The movement and exchange of genes or alleles from one population of species to another

Data Flow

The movement of data between subprograms, implemented using parameters

What would happen to the population in the absence of selective pressures

There is no variation in a population and some genotypes become fixed. Soon species won't be able to reproduce

Convergent Evolution

Things evolving to become more similar -Unrelated or distantly related organisms evolve similar body forms, coloration, organs, and adaptations. Ex. Swimmers mimic aquatic animals to be fast

The OO testing integration strategy involves testing A) groups of classes that collaborate or communicate in some way B) single operations as they are added to the evolving class implementation C) operator programs derived from use-case scenarios D) none of the above

a

Regression testing should be a normal part of integration testing because as a new module is added to the system new A) control logic is invoked B) data flow paths are established C) drivers require testing

a b

Which of the following strategic issues needs to be addressed in a successful software testing process? A) conduct formal technical reviews prior to testing B) specify requirements in a quantifiable manner C) use independent test teams D) wait till code is written prior to writing the test plan

a b

Component-Based SE

a library of components must be available.

OMG Unified Modeling Language Specification

a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.

When oxygen existed, both heterotrophs and autotrophs evolved the biochemical pathways of ______ ______.

aerobic respiration

Archaea

corresponds to kingdom archae

The best reason for using Independent software test teams is that A) software developers do not need to do any testing B) strangers will test the software mercilessly C) testers do not get involved with the project until testing begins D) the conflicts of interest between developers and testers is reduced

d

Limited gene flow results in:

different populations genetically that could evolve into different species

fossils

direct evidence of evolution change, generally found in sedimentary rocks

Composition

infrastructure must be established to bind components together

What are the 3 equations of The Hardy-Weinberg Principle?

p+q=1 (p+q)^2=(1)^2 p^2+2pq+q^2=1

the hardy Weinberg principle

pop. is large no mutations mating is random no net migration genes are all equally successful at reproducing

Sun JavaBeans

portable platform independent CBSE infrastructure.

Object request broker

provides service that enable reusable components to communicate with other components

The addition of molecular oxygen converted the atmosphere from a _____ to a _____ one.

reducing; oxidizing

Lots of gene flow results in:

similar production genetically

analogous structures

similarity of function and superficial resemblance of structures that have different origins

Liskov Substitution Prinsiple

subclasses should be substitutable for their base classes.

gene frequency

the decimal fraction representing the presence of an allele for all members of the population that have this particular gene

Adaptive radiation

the diversification of a group of organisms into forms filling different ecological niches

speciation

the formation of new and distinct species in the course of evolution

Speciation

the formation of new species, requiring the gene pools of two populations to become separated.

amber

the fossil resin of trees

Parallel Evolution

the independent evolution of similar traits, starting from a similar ancestral condition

petrification

the process by which minerals replace the cells of an organism

primordial soup

the seas and atmosphere as they existed on earth before the existence of life, consisting primarily of an oxygen-free gaseous mixture containing chiefly water, hydrogen, methane, ammonia, and carbon dioxide + nitrogen

phylogeny

the study of evolution history

gene pool

the sum total of all the alleles for any given trait in the population

WebApp

well-defined cohesive function manipulates content. provides end-user with some required capability. incorporates elements of content design and functional design


Ensembles d'études connexes

define each of the types of constitutional powers

View Set

Lecture 2: Newborn Adaptation, Assessment & Nursing Care (EXAM 1)

View Set

Medical Terminology 2 - The Nervous System

View Set

AWS Academy Cloud Foundations Exam 1 Chapter 1 - 5

View Set

MSM6610: Theories of Organizational Behavior - Quiz 2

View Set