software engineering collection 5
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