Software Engineering

Get Started. It's Free
or sign up with your email address
Software Engineering by Mind Map: Software Engineering

1. Ch. 8 Software Testing

1.1. Program Testing

1.1.1. Validation testing

1.1.1.1. Demonstrae that s/w meets it req

1.1.2. Defect testing

1.1.2.1. Discover situations with bad behavior

1.1.3. Testing

1.1.3.1. Inspection vs testing

1.1.3.2. Inspections

1.1.3.3. Stages of testing

1.1.3.3.1. Dev

1.1.3.3.2. Release

1.1.3.3.3. User

1.1.3.4. Use-case testing

1.1.3.5. Testing policies

1.1.3.6. Test-driven dev

1.1.3.7. Req based testing

1.1.3.8. Performance testing

1.1.3.9. Regression testing

1.1.3.10. User testing

1.1.3.10.1. Alpha

1.1.3.10.2. Beta

1.1.3.10.3. Acceptance testing

1.1.3.11. Release testing

2. Ch. 9 Software Evolution

2.1. Stages

2.1.1. Evolution

2.1.1.1. Servicing

2.1.1.1.1. Phase-out

2.2. Evolution

2.2.1. "Iteration of dev process where revisions are designed, implemented and tested"

2.3. Maintenance

2.3.1. Types

2.3.1.1. Corrective

2.3.1.2. Adaptive

2.3.1.3. Perfective

2.3.2. Cost

2.3.2.1. 2* to 100*

2.3.2.2. Ageing s/w -> high cost

2.3.2.3. Increases as s/w is maintained

2.3.2.4. Factors

2.3.2.4.1. Team stability

2.3.2.4.2. Contractual responsibility

2.3.2.4.3. Staff skills

2.3.2.4.4. Program age ans structure

2.3.3. Prediction

2.3.3.1. "Which part may cause problems?"

2.3.3.2. En sok degisiklik siki baglantili yerlerde gerekir

2.3.3.3. Metrics

2.3.3.3.1. Complexity

2.3.3.3.2. Process

2.3.4. Reengineering

2.3.4.1. "Gerceklestigi is degismiyor ama sistem yeniden yapilandiriliyor"

2.3.4.2. +

2.3.4.2.1. Yeni yazilim girisimiyle gelen riskler yok

2.3.4.2.2. Dusuk maliyet

2.3.4.3. Activities

2.3.4.3.1. Source code translation

2.3.4.3.2. Reverse engineering (doc hazirlama)

2.3.4.3.3. Program structure improvement

2.3.4.3.4. Program modularisation (reorg. struct)

2.3.4.3.5. Data reengineering

2.3.4.4. Cost factors

2.3.4.4.1. Quality of s/w to be reeng

2.3.4.4.2. Automatic tools availability

2.3.4.4.3. Expert staff

2.3.5. Refactoring

2.3.5.1. "Preventive maintenance" -> reduces problems for future changes

2.3.5.2. Not adding new functionality, rather program improving

2.3.6. Reengineering vs Refactoring

2.3.6.1. Reeng -> after maintenance for some time and maintenance costs increased

2.3.6.2. Refactoring -> continuous process of improvement throughout dev and evolutiom process

2.3.7. "Bad smells" in code

2.3.7.1. Deplicate code

2.3.7.2. Long methods

2.3.7.3. Switch (case) statements

2.3.7.4. Data clumping

2.3.7.5. Speculative generality

2.3.8. Legacy

2.3.8.1. Legacy sistemleri kullanan kurumlar ve ilerleyen zamanlar icin bir strateji karari vermeleri gerekiyor

3. Ch. 25 Configuration Management

3.1. Activities

3.1.1. Change management

3.1.2. Version management

3.1.3. System building

3.1.4. Release management

3.2. Configuration management

3.2.1. Ensuring that system evolution is managed process and that priority given to _most urgent_ and _cost-effective_ changes

3.2.2. Factors in change analysis

3.2.2.1. Consequences of not-change

3.2.2.2. Benefits of change

3.2.2.3. Numbers of users affecred

3.2.2.4. Cost

3.2.2.5. Product release cycle

3.2.3. CM & Agile

3.2.3.1. Customers directly involved

3.2.3.2. Refactoring (improving) not overhead but necessary part

3.3. Version management

3.3.1. "Process of managing codelines and baselines"

3.3.2. Branch

3.3.3. Merge

3.4. System building

3.4.1. ...

3.4.2. Agile building

3.5. Release management

3.5.1. Release tracking

3.5.2. Release reproduction

3.5.3. Release planning

3.5.3.1. ...

3.5.3.2. Release timing

3.5.4. Release components

3.5.4.1. How release should be configured for particular installations?

3.5.4.2. List of possible errors

3.5.4.3. Installation program to help install system

3.5.4.4. Docs