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 Demonstrae that s/w meets it req

1.1.2. Defect testing Discover situations with bad behavior

1.1.3. Testing Inspection vs testing Inspections Stages of testing Dev Release User Use-case testing Testing policies Test-driven dev Req based testing Performance testing Regression testing User testing Alpha Beta Acceptance testing Release testing

2. Ch. 9 Software Evolution

2.1. Stages

2.1.1. Evolution Servicing 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 Corrective Adaptive Perfective

2.3.2. Cost 2* to 100* Ageing s/w -> high cost Increases as s/w is maintained Factors Team stability Contractual responsibility Staff skills Program age ans structure

2.3.3. Prediction "Which part may cause problems?" En sok degisiklik siki baglantili yerlerde gerekir Metrics Complexity Process

2.3.4. Reengineering "Gerceklestigi is degismiyor ama sistem yeniden yapilandiriliyor" + Yeni yazilim girisimiyle gelen riskler yok Dusuk maliyet Activities Source code translation Reverse engineering (doc hazirlama) Program structure improvement Program modularisation (reorg. struct) Data reengineering Cost factors Quality of s/w to be reeng Automatic tools availability Expert staff

2.3.5. Refactoring "Preventive maintenance" -> reduces problems for future changes Not adding new functionality, rather program improving

2.3.6. Reengineering vs Refactoring Reeng -> after maintenance for some time and maintenance costs increased Refactoring -> continuous process of improvement throughout dev and evolutiom process

2.3.7. "Bad smells" in code Deplicate code Long methods Switch (case) statements Data clumping Speculative generality

2.3.8. Legacy 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 Consequences of not-change Benefits of change Numbers of users affecred Cost Product release cycle

3.2.3. CM & Agile Customers directly involved 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 ... Release timing

3.5.4. Release components How release should be configured for particular installations? List of possible errors Installation program to help install system Docs