chapter 1 - unisa study notes€¦ · web viewtest driven development: identify increment...
TRANSCRIPT
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
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
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
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
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
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