What is the V Model?
Shows how different software artifacts can be validatied — not a process model
What is the difference between Validation and Verification?
Validation: "Did we build the right product?" (business perspective)
Verification: "Did we build the product right?" (technical perspective)
→ Validation is case-based; Verification checks consistency between artifacts
What is a Review in Software Engineering?
What types of reviews exist?
Why are reviews called a silver bullet?
Why are they still not used as much?
Meeting in which a Software artifact is examined/evaluated (looking at quality and correctnes,…)
Types
inspection (check if there are problems)
team review
walkthrough
pair programming (one is coding one is checking)
pass-around, ad-hoc review (documentation is produced, send around and comments are expected)
=> remove 60-90% of errors before testing is even started
Why not used?
- consultants cannot make money
- not new
- increased up front cost
- requires consideration of psychological factors
Benefits and Dangers of/for Reviews
Dangers of Reviews:
Testing is omitted because teams assume reviews catch all errors
Authors feel frustrated or even violated by harsh reviews
Sloppiness: "Errors will be found during review anyway"
Dangers for Reviews:
Managers cut review time under deadline pressure
Reviewers are unprepared, making the process a waste
Obfuscation: Authors hide errors behind tricky or unclear code/documents
Benefits
-> Quality, correctness
-> improved understanding on project (less dependency on one person)
-> Teaching for beginners
-> better code (readibility, good documentation)
What are the 7 phases of a review?
Planning – Schedule, define goals, select participants
Overview – Author presents artifact and context
Preparation – Reviewers study the material individually
Meeting – Team discusses findings and defects
Rework – Author fixes identified issues
Follow-Up – Check if rework was done correctly
Causal Analysis – Identify root causes of common defects
What roles are involved in a review?
Author – Creates the artifact
Moderator – Organizes and leads the review
Reader(s) – Reads the document aloud or explains it
Recorder – Logs all findings and decisions
Verifier – Confirms whether issues have been resolved
What is the inspection process in software reviews?
What documents are involved in a review process?
Name 3
(see 7 steps)
What 3 different Code Reading Techniques exist?
based on test cases
hypothesis based reading
architectural reading
What types of review exist and what phases of the review do they address?
What Psychological Interaction Patterns exist?
The Alcoholic Pattern
Roles: Addicted (e.g., always late/unprepared), Helper, Punisher, Ashamed
Dysfunction: Review becomes a loop of enabling and blame, not improvement
The "Now-I-Have-Got-You" Pattern
Reviewer A catches B's mistake and uses it to dominate
B is defenseless → leads to fear and silence
The "See-What-You-Made-Me-Do" Pattern
A blames their error on reviewer B’s previous suggestion
Undermines mutual responsibility and trust
The "If-It-Were-Not-For-You" Pattern
A claims: “If it weren’t for you, I’d have succeeded”
A uses hypothetical blame to avoid accountability
The "Look-How-Hard-I-Tried" Pattern
A highlights effort to excuse poor results
Shifts focus from quality to sympathy
The "Yes-But" Pattern
B blocks improvements by deflecting with "yes, but..."
Avoids responsibility while defending poor solutions
The "Wouldn’t-It-Be-Nice-If" Pattern
B suggests fancy additions to show off, ignoring A’s constraints
May push A into defensive or "yes-but" mode
w
Summary on Reviews
What are typical advantages of processes?
What is a software process model?
A software process model is an abstract representation of a software development process.
It defines:
Activities to be carried out
Roles and responsibilities
Artifacts to be produced
techniques and tools to be used
→ Models that define the order of phases and transition criteria are Life cycle models (e.g., Waterfall, V-Model)
What characterizes the Waterfall model?
Why is it wrong?
The Waterfall model is a sequential process model with feedback to earlier phases.
Phases:
Planning
Definition
Design
Implementation
Test
Use & Maintenance
→ "we can specify a system completely upfront"
What is the V-Model in software development?
The V-Model is a verification and validation-oriented life cycle model.
Left side: Development phases (from requirements to implementation)
Right side: Corresponding testing phases (unit test to acceptance test)
The “V” shape shows that each development step has a test counterpart
→ Encourages early thinking about tests and traceability from requirement to test
What are Iterative Processes in software development?
Iterative processes develop software in repeated cycles, allowing feedback and changes at each iteration.
Key Characteristics:
Each iteration includes: requirements → design → implementation → test
Working software is delivered early and improved continuously
Promotes feedback-driven development and risk reduction
→ Helps deal with uncertainty, evolving requirements, and complex systems
What is Evolutionary Processes compared to incremental in software development?
What of that is the Spiral Model?
Incremental development delivers the system in small, functional pieces, each adding value.
Evolutionary development allows the system to adapt and evolve as understanding improves.
Which models are the building blocks of oftware development processes?
And why?
waterfall model
the original V model
the spiral model
explaining how to incorporate
development phases
testing
risk management
such that a full grown process can be pieced together
What is the Unified Process (UP) in software development?
What are the benefits
The Unified Process (UP) is a framework for development.
Defines
4 Phases
9 Disciplines
Benefits:
iterative und incremental
risk-driven
client-driven
architecture-centric
What are the four phases of the Unified Process (UP)?
Inception
Define project vision, scope, and feasibility
Identify critical use cases, initial risks, rough estimate
Elaboration
Refine requirements, establish baseline architecture
Resolve high risks, plan construction phase in detail
Construction
Build the system incrementally
Focus on coding, testing, and integration
Transition
Deliver the final product to users
Handle user feedback, training, and defect correction
What are the disciplines in the Unified Process (UP)?
Business Modeling – Understand business context
Requirements – Capture and manage stakeholder needs
Analysis & Design – Define and design the system structure
Implementation – Code and build components
Testing – Verify functionality and quality
Deployment – Deliver and install the product
Configuration Management – Manage versions and artifacts
Project Management – Plan, track, and control project progress
Environment – Provide tools, standards, and processes
What does RUP do bettern than UP?
RUP additionally defines roles, activities/tasks, and artefacts/work products
What are the 6 RUP best practices?
Benefits and Problems of Processes
Conclusion to Software Development Processes
What is the Agile Manifesto?
Agile Manifesto = Core values and priorities for agile development (2001)
Individuals and interactions > Processes and tools
Working software > Comprehensive documentation
Customer collaboration > Contract negotiation
Responding to change > Following a plan
Value exists in both sides, but left side is prioritized
What are two key insights from reviewing the Agile Manifesto?
You cannot plan ahead
You need to monitor continously
What are the key components of Extreme Programming (XP)?
XP = A set of values, principles, and practices for agile development
Values
Communication
Simplicity
Feedback
Courage
Principles
Quick delivery
Rapid feedback
Embrace change
Incremental change
Project, team, and individual-level practices
What is the typical XP process flow?
Just enough design
Write tests first (TDD)
Implement -> Modeling tools like CRC cards may be used
Common XP Agile Criticisms
Seems ad-hoc and hard to scale
Lack of documentation and reuse
Client collaboration is demanding
Practices (e.g., pair programming, TDD) need more validation -> Higher cost, steep learning curve
What is Scrum?
Scrum = Agile management framework for software development
3 roles, 4 meetings, 3 artefacts
Work delivered in time-boxed Sprints (usually 30 days)
Based on Agile Manifesto values -> People are the key resource
What are the key elements of the Scrum process?
draw this information as a domain (meta) model (i.e. object model)
Scrum Key Elements
Product Owner creates and maintains Product Backlog
Sprint Planning defines Sprint Backlog
Daily Scrum syncs team
Scrum Master supports the team
Sprint yields a product increment
Sprint Review + Retrospective evaluate and improve
What are the 3 roles, 4 meetings, and 3 artefacts in Scrum?
Roles: Product Owner, Scrum Master, Team
Meetings: Sprint Planning, Daily Scrum, Sprint Review, Retrospective
Artefacts: Product Backlog, Sprint Backlog, Increment
What are the types of Scrum meetings?
Sprint Planning: plan the Sprint
Daily Scrum: share status, uncover issues
Sprint Review: demo shippable product
Sprint Retrospective: reflect and improve
What defines a Sprint in Scrum?
Sprint = Time-box (≤ 1 month) producing a “Done” product increment
No changes that threaten Sprint Goal
Quality goals remain constant
Scope may be re-negotiated
-> Continuous, consistent cycle of improvement
What are the core Scrum roles?
Product Owner: defines priorities and vision
Team: implements product
Scrum Master: ensures Scrum is followed -
"Pigs" (committed) vs. "Chickens" (involved)
=> individuals and interactions over processes and tools!
What is the Product Owner?
decides what will be delivered and is responsible for the result
What does a Scrum Master do?
The ideal Scrum Master is a moderator, coach and experienced software developer
What are effective Scrum Teams?
self organised, implements the product increment
What is the Product Backlog?
What are important considerations for Product Backlog items?
= High-level list of features (user stories) prioritized by business value
-> Evolves during the project
Items:
Requirements captured as user stories
not too many at once 2–3 sprints
Must highlight essential features
Coarse descriptions refined later
How does Scrum handle project planning?
Scrum Planning = 3 levels of planning
Release planning (based on backlog and velocity)
Sprint planning
planning of a workday
How to fill Sprint Backlog?
To what capacity?
Pick next prioritized user story
Identify all required activities
E.g., design, testing, documentation, review, refactoring
Activities must:
Be clear
Take ≤ 16 hours
Be estimated in 2–4 hour increments
-> not more than 85% of the capacity
Net = available days – distractions (25–35%)
Example:
5 devs × 18 days = 720 hours
Net = 480h → 85% = 408h available
What are tips for scaling Scrum to large projects?
What are tips for distributed Scrum teams?
What are pros and cons of agile methods?
Conclusion Agile Methods
How to approach release planning?
2 metrics:
the effort (i.e. the “distance”) d required to work off the product backlog
the time t required to implement the whole product backlog can then be calculated with the following equation
Why is Requirements Engineering (RE) critical for software success?
~48% of project failures due to RE issues
-> Requirements are missing
-> Requirements are wrong or misunderstood
-> Stakeholders are not involved
Fixing errors later is expensive -> Early RE reduces risk and cost
What is a requirement?
Requirement = Condition or capability needed by user/system
Needed to solve a problem or meet objectives
Must be met to fulfill contracts/specs
Documented representation of those conditions
What is the purpose of the Software Requirements Specification (SRS)?
= Foundation and contract of the development process
-> Most important artifact in software projects
What are the main activities in the Requirements Engineering process?
Elicitation (gathering needs)
Documentation (create SRS)
Agreement (conflict resolution) Cross-cutting
Validation
Management
Who are stakeholders in Requirements Engineering?
= Anyone (in)directly influencing system requirements
-> missing stakeholders may lead to missing requirements
What is a Requirements Engineer?
Requirements Engineer
Acts as translator between users and devs
Skills: analytical, empathetic, communicative, conflict-resolving -> Responsible for elicitation, documentation, agreement
Why are multiple stakeholder viewpoints important?
Different stakeholders = different perspectives (that may conflict)
-> RE must manage all viewpoints
Why must requirements be considered in context?
Systems are part of domains and other systems
-> Dealing with multi-level requirements is unavoidable
What is ‘context’ in RE terms?
= Relevant part of the environment needed to understand the system
What is the difference between system and context boundaries?
System boundary = between system and environment
-> system boundary separates the system to be developed from its environment
Context boundary = between relevant and irrelevant domain parts
What is a key RE challenge when mapping real-world to system behavior?
Real-world requirement (RWorld) must be satisfied by system (RSystem)
RE Definitions (Jackson)
S
D
R
The requirements problem
Given: Machine spec S, Domain D
Then: S ∧ D ⊨ R (real-world requirement)
-> S must satisfy R only under domain assumptions
What is Requirements Elicitation?
Who should elicit requirements?
Requirements Elicitation = Process of discovering requirements from stakeholders and sources
Elicitation Roles
Stakeholders: provide domain knowledge
Requirements Engineers: guide process
(Smart ignoramus: unbiased questioning)
What are common requirements elicitation techniques?
Ask: interviews, polls
Collaborate: workshops, role playing
Build & Play: prototypes, mock-ups
Observe: user behavior
Analyze: artifacts, bug reports, market studies
-> Use varied methods for rich input
How are constraints identified during elicitation?
Ask about solution restrictions
Technical, legal, organizational, cultural
Check for hidden requirements -
> Constraints may mask actual needs
What are common issues with non-functional requirements?
Non-Functional Requirement Issues
Often misunderstood or misused
Confused with global, soft, or supplementary features
-> Focus on the concern, not terminology
What is a concern?
A concern is a matter of interest in a system
-> can be used to classify requirements
How can you decide the type of a requirement?
Concern-based Classificaiton
Behavior/input/reaction → Functional
Desired system quality → Quality
Prescribed restriction → Constraint
-> Ask: “What is the real concern?”
What requirement types exist?
Functional,
Quality,
Constraint (limitation, like legal, environmental, physical)
How to distinguish requirement types?
Recognizing Representations
Operational = action verbs
Quantitative = measurable
Declarative = reviewable
-> Don't confuse quality kind with qualitative requirement
Requirement Classification Summary
What are key writing guidelines for natural language requirements?
Writing Guidelines
Short, active sentences
One requirement per sentence
Avoid vague terms (“easy”, “quickly”)
Use template (see SS)
-> Maintain glossary for consistent terms
What are modern approaches for writing requirements?
Most common:
User Stories (agile)
Use Cases (model-based)
What is requirements validation?
= Am I building the right system?
= Checking if requirements are correct and complete
How can requirements be validated?
Reviews (formal or informal)
Acceptance Tests
Simulations
Prototyping
Model checking
On what is requirements prioritization based?
By who?
Necessity
Cost
Time
Risk
Volatility
-> done by stakeholders, only a subset is prioritizeed
What are common prioritization strategies?
Simple ranking
Assigning points
Prioritization methods:
MoSCoW (MUST, SHOULD, COULD, WON’T)
Cost Value Analysis (value vs. cost, risk, volatility)
Kano Model (Attractive, Performance, Must-be, etc.)
What are the benefits of good RE?
Cost for removing errors depends on how long it stays in the software
What is traceability in Requirements Engineering?
The ability to trace a requirement
(1) back to its origins,
(2) forward to its implementation in design and code,
(3) to requirements it depends on (and vice-versa).
How are traces established and maintained?
Manually: high effort, needs consistent naming and updates
Automatically: IR-based candidate links + manual review -> Tool support is essential for efficiency
RE Summary
What is model-based requirements elicitation?
Uses various models:
Use Case Texts
Use Case Diagrams
Activity Diagrams
-> Use Case Texts are just a notation
What is the basic idea behind use case modeling?
-> Use cases define a contract of behavior between system and users
Describes system as black-box interactions
Captures operational requirements
What is a use case?
use cases are a notation to textually capture an interaction of (typically) two parties
What should be modeled as a use case?
Identify relevant actors and system boundaries
Different scopes → different goals and actors -> Understand context to define meaningful use cases
What are the definitions of system boundary, context boundary and system context?
System Boundary = interface of system to environment
System Context = relevant environment for RE
Context Boundary = separates relevant from irrelevant -> These evolve during elicitation
What makes a good Use Case?
Good Use Cases
Vary in granularity (e.g., “negotiate contract”, “withdraw money”)
Focus on goal achievement
-> Best at Elementary Business Process (EBP) level
What is an Elementary Business Process (EBP)?
a task
performed by one person
in one place at one time,
in response to a business event,
which adds measurable business value
and leaves data in a consistent state
e.g. approving a credit request
What are helpful heuristics for identifying use cases?
3
Boss Test = would your boss be happy?
Coffee Break Test = finish a use case when would you intuitively make a coffee break
Size Test = not just one step -> Focus on meaningful goals
What are the goal levels of use cases?
What are good practices for use case diagramming?
Diagramming Tips
Focus on user-goal level use cases
Don't overdo diagrams—text is primary
Place primary actors left, supporting right
Use <<include>> and <<extend>> properly
<<include>>
<<extend>>
-> Diagrams are for clarity, not completeness
What’s the difference between a stakeholder and an actor?
Stakeholder = person/org with interest in the system
Actor = interacts with system (role/system/org), Primary actor initiates use case
Use case model = is the set of all use cases and related diagrams
What is the difference between a use case and a scenario?
Scenario = specific sequence of actions (an instance)
Use Case = collection of related scenarios (success & failure)
-> A use case is a set; a scenario is a story
-> Goals initiate scenario definition
-> Scenarios concretize and refine goals
What are the steps for identifying use cases?
Define system boundary
Identify primary actors
Identify user goals
Define use cases for goals (imperative names)
-> CRUD goals often grouped (Create, Retrieve, etc.)
What is iterative use case elaboration?
What precision levels are feasible?
Use cases are complex
-> Iterative Refinement, work breadth-first
Precision levels:
1. primary actor's name and goal
2. use case briefs or main success scenario
3. add extension conditions (failure conditions)
4. add extension handling steps (failure handling) + more
What are common use case templates?
Fully Dressed: full details and structure
Casual: plain text
One-/Two-Column: actor & system side-by-side
RUP Style: similar to fully dressed
How to write Use Cases?
What are the 3 levels of data descriptions
Steps describe 1. interactions, 2. validation, or 3. internal change (between user ans system)
e.g. ATM, insert card, validate card, deduct amount from balance
Precision levels
Data nickname
Data fields associated with nickname
Everything
<<include>> through underlining
What are the components of a fully dressed use case?
Preface: scope, level, primary actor
Stakeholders & Interests: who cares and why
Pre Conditions: must be true before starting
Post Conditions: what’s true after success
Main Success Scenario (Describes happy path)
Extensions = describe all other scenarios or branches both success or fail
- labeled with two parts: Condition (how system detects), Handling part
Special Requirements = NFRs linked to this use case
Tech & Data Variations = tech-specific differences
Use Cases Summary
What is Natural Language Processing (NLP)?
NLP = Natural Language Understanding
Models grammar, meaning, and language structure
Uses algorithms to analyze and interpret text -> Enables computers to "understand" language
Why is NLP important for Software Engineering?
-> Automatic processing of requirements, documentation, issues,… = huge leverage across SE lifecycle
What are the steps in the classical NLP pipeline?
NLP Pipeline
Tokenizer (splits text into units)
Tagger (labels parts of speech)
Stemmer/Lemmatizer (find base word forms)
Parser (builds tree/graph structures)
Discourse Analyzer (interprets meaning & context)
What are syntax trees and dependency graphs used for?
Why is requirement quality in NLP?
Name the four High Level Properties (Quality Attributes)
NLP can help identify problematic patterns
Requirement Quality Attributes = Key aspects of textual clarity
Non-Ambiguity
Completeness
Consistency
Understandability
What indicators show
What is QuARS and what does it do?
QuARS Tool = Quality Analyzer for Requirements
Uses dictionaries and analyzers
Detects low-quality indicators -> Supports early requirement validation
What is RESI and how does it help with requirements?
RESI = Requirements Engineering Specification Improver
Identifies and suggests fixes for quality issues
Uses POS tags, ontology links, and linguistic rules -> Aims to improve clarity and structure
What is a Large Language Model (LLM)?
LLM = Predictive language model
Predicts next word/sentence (fill the gap)
Estimates probability of word sequences
Promises semantic understanding -> Useful for context-aware tasks in SE
What are word embeddings?
Word Embeddings = Vector representation of words
Compact, meaningful vectors
Enable arithmetic operations & semantic comparisons
-> Foundation for LLMs (e.g., king – man + woman ≈ queen)
What is the transformer architecture in LLMs?
Whats the key part?
= Core architecture of almost all LLMs
Encoder & Decoder components
Key part: (Self-) Attention Layer
▪ Assesses which part of the input should be focused? Which/How do parts of the input relate?
▪ Fundamental for the capabilities and success of LLMs
▪ Feed-Forward Neural Network: Main training layers
How are LLMs trained?
Masked Language Modeling (e.g., BERT)
Next Sentence Prediction
RLHF (Reinforcement Learning with Human Feedback)
What is:
Zero-Shot
One/Few-Shot
Fine-Tuning
Zero-Shot: Just give the task description
One/Few-Shot: Provide examples for better results
Fine-Tuning: Train further with task-specific data -> Approach depends on task complexity
What is Retrieval-Augmented Generation (RAG)?
Stores knowledge as vectors (vectorstore)
Retrieves relevant chunks for a query
Provides retrieved info to LLM -> Reduces hallucinations & improves factual accuracy
What is the goal of requirements classification?
NoRBERT
Identify requirement types:
Functional
Quality (e.g., performance, usability)
Constraint (e.g., platform, standards) -> Enables better analysis, prioritization, and processing
How good is your LLM?
Evluation Tooling
Classification Metrics
What is Traceability Link Recovery (TLR)?
What are the steps of Fine-grained Traceability Link Recovery (FTLR)?
RAG-based TLR with LiSSA
How does Inconsistency Detection work?
Summary NLP
Zuletzt geändertvor 3 Tagen