chapter 1 - unisa study notes€¦ · web viewtest driven development: identify increment...

9
Chapter 1 Software process activities: 1. Specification 2. Development 3. Validation 4. Evolution Application Types: 1. Stand Alone 2. Interactive transaction-based 3. Embedded control systems 4. Batch processing systems 5. Entertainment systems 6. Systems for modelling & Simulation 7. Data Collection systems 8. Systems of systems Software Engineering fundamentals 1. Developed & managed using understood processes 2. Dependability 3. Understanding & managing the software specification 4. Reuse software Professional responsibility Confidentiality Competence Intellectual property Rights Computer misuse Chapter 2 Specificat ion Elicitation and analysis Specification Validation Design & Implementa tion Architectural design Database design Interface design Component design Validation - Verification & validation Component testing System testing Customer testing Evolution flexible Benefits of prototyping Improved system usability Closer match to users needs Improved design quality Improved maintainability Reduced development effort Process Improvement Measurement Analysis Change Chapter 3 Principles of Agile methods: Customer involvement

Upload: others

Post on 20-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 1 - Unisa Study Notes€¦ · Web viewTest Driven development: Identify increment functionality Write the test Run the test Implement, rerun Move on Benefits of TDD Code coverage

Chapter 1Software process activities:

1. Specification2. Development3. Validation4. Evolution

Application Types:1. Stand Alone2. Interactive transaction-based3. Embedded control systems4. Batch processing systems5. Entertainment systems6. Systems for modelling & Simulation7. Data Collection systems8. Systems of systems

Software Engineering fundamentals1. Developed & managed using understood processes2. Dependability3. Understanding & managing the software specification4. Reuse software

Professional responsibility Confidentiality Competence Intellectual property Rights Computer misuse

Chapter 2Specification Elicitation and analysis

Specification Validation

Design & Implementation

Architectural design Database design Interface design Component design

Validation - Verification & validation Component testing System testing Customer testing

Evolution flexibleBenefits of prototyping

Improved system usability Closer match to users needs Improved design quality Improved maintainability Reduced development effort

Process Improvement Measurement Analysis Change

Chapter 3Principles of Agile methods:

Customer involvement Incremental delivery People not Process Embrace Change Maintain Simplicity

Page 2: Chapter 1 - Unisa Study Notes€¦ · Web viewTest Driven development: Identify increment functionality Write the test Run the test Implement, rerun Move on Benefits of TDD Code coverage

Chapter 4Types of requirements

User: Natural language System: structured document Functional: statements of service Non-functional: Constraints on services (storage etc)

o Product: programs behaviour (speed)o Organisational (policies)o External (legislation)

Domain: Constraints on system from domain

Requirements Engineering Processes Elicitation & analysis

o Discoveryo Classification & Organisationo Prioritisation & Negotiationo Specification

Natural Language Structured Language Graphical Notations Mathematical specifications

Validationo Requirement reviewso Prototypingo Test-case generation

Management

The waterfall model: Incremental Development Integration Configuration

Plan driven Plan driven or Agile Plan driven or agile

Difficulty of accomodating change Inflexible partitioning of the project into

distict stages

Cost reduced Easy feedback Quick delivery & deployment- Process not visible- Degrading system with new increments

Reduce costs Low risks Quick delivery & deployment- System may not meet needs- Loss of control over evolution

Page 3: Chapter 1 - Unisa Study Notes€¦ · Web viewTest Driven development: Identify increment functionality Write the test Run the test Implement, rerun Move on Benefits of TDD Code coverage

Chapter 5System perspectives

External perspective: context Interaction Perspective: between system & environment Structural perspective: organisation Behavioural perspective: responses

Types of Models CIM: Computaional independent PIM: Platform independent PSM: platform specific

Chapter 6Small: individual programs Large: complex enterprise system

Design decisions: Generic Template? Distribution over hardware? Architectural patterns? Strategy for operation control? Documentation of architecture? Architectural organisation for non functional?

Architectural views:

Logical Physical Process Development

Architectural Patterns:

Layered Repository Client Server Pipe & Filter Process

Advantages Stakeholder

communication System analysis Large scale reuse

Context Activity

Interaction

Use case

Sequence

Structural

Class

Generalization

Aggregation

State Machine

Page 4: Chapter 1 - Unisa Study Notes€¦ · Web viewTest Driven development: Identify increment functionality Write the test Run the test Implement, rerun Move on Benefits of TDD Code coverage

Compiler Components Lexical analyser Symbol table Syntax analyser Syntax tree Semantic analyser Code generator

Chapter 7System design: For OO

Define context Design system architecture Identify principal objects Develop design models Specify interfaces

Models: System context: structural demonstrates other systems Interaction: dynamic, system interaction

Design problems Observer pattern: state of an object changed Façade Pattern: tidy up Iterator pattern: standard access Decorator Pattern: extend functionality

Implementation issues: Reuse

o Abstraction level: knowledgeo Object level: objectso Component levelo System level

Configuration managemento Version managemento System integrationo Problem tracking

Host target developmento Integrated compilero Language debugging systemo Graphical editing toolso Testing toolso Project support

Chapter 8 Validation testing: requirements are met Defect testing: faults

V&V Software purpose User expectation Marketing environment

Stages of testing Development testing

o Unit testing (automated – (setup, call, assertion)) Individual Object classes Composite components

o Component testingo System testing

Release testingo Requirements based testingo Scenario testingo Performance testing

User testingo Alphao Betao Acceptance

Define, Plan, Derive. Run, Negotiate, Accept/Reject

Test Driven development:1. Identify increment functionality

Page 5: Chapter 1 - Unisa Study Notes€¦ · Web viewTest Driven development: Identify increment functionality Write the test Run the test Implement, rerun Move on Benefits of TDD Code coverage

2. Write the test3. Run the test4. Implement, rerun5. Move on

Benefits of TDD Code coverage Regression testing Simplified debugging System documentation

Chapter 9Legacy Systems

Rely on outdated languages & tech Dependent on old hardware Broader socio technical systems

o System hardware & softwareo Application software & datao Business processeso Business policy & rules

Software maintenance Corrective: Fault repair Adaptive: Environmental adaptions Perfective: Functionality addition

Reengineering Source code translation Reverse engineering Program structure Improvement Program modulization Data reengineering

Chapter 10Principal properties of dependability:

Availability (Redundancy) Reliability Safety Security Resilience (Diversity)

Socio-technical systems Equipment OS Communication & Data management Application systems Business processes Organisations Society

Dependable process activities Requirement review Requirement management Formal specification System modelling

Chapter 11Errors:

Human error System fault System error System failure

Fault management Fault avoidance Fault detection Fault tolerance

Page 6: Chapter 1 - Unisa Study Notes€¦ · Web viewTest Driven development: Identify increment functionality Write the test Run the test Implement, rerun Move on Benefits of TDD Code coverage

Chapter 12Safety critical systems

Primary: hardware fail can threaten people Secondary: faults have safety consequences

Hazard driven techniques Hazard avoidance Hazard detection and removal Damage limitation

Hazard driven analysis: Identification Assessment Analysis Safety requirements specification

Chapter 15 System reuse Application reuse Component reuse Object & Function reuse

Chapter 18Resource operations

Create Read Update delete

Chapter 19Systems that include Software:

1. Technical computer-based system:a. Include Hardware & Softwareb. Used for particular purpose

2. Socio-technical systems:a. Include technical systems & peopleb. Governed by rules & policies

Stages of system engineering1. Conceptual Design

a. Develop the concept of the systemb. Write key problems & add appendices

2. Procurementa. Replacement of other organisational systemsb. Need to comply with external regulationsc. External competitiond. Business reorganisatione. Available budget

3. Development4. Operation