Lecture 1 and 2 Flashcards
What is Software
- Computing continues to dramatically impact society
- Software exists within an increasingly complex and diverse technological infrastructure
- Our understanding of what software is evolves along with these changes
So should our understanding of how it is made
What is Engineering?
The meeting of science and economics
What is Software Engineering?
SE (IEEE): systematic approach to development,…., of software
Systematic approach: methodologies and practices that can be used to solve a problem from problem domain
Name components of software/system quality
Functionality suitability Performance efficiency Compatibility Usability Reliability Security Maintainability Portability
What governs quality and premise
People
Processe
Technology
What is the SE focus
Processes for achieving the goals
Name some characteristics of Agile
- not any one specific methodology. Lightweight.
- emphasizes teamwork (self-organizing, interdependent smaller group) over management. Values individual creativity and motivation.
- anticipates and welcomes change
- planning minimized through continual client engagement, short goal-focused iterations leading to releases of working software
- high internal standards of quality
- devoted to simplicity (in design and process), software is the key documentation
What is a user?
A real person with real constraints trying to get their job done
Why are user stories considered a “proto-requirement”
- very terse, often action oriented
* face to face elicitation of details with client / users as needed • leads directly to a short term development goal
What are the three Ws of user stories
- WHO needs/wants the functionality
- WHAT the functionality does, in user or client-centric terms
- WHY the functionality is important, what benefit is derived from it
What is the anatomy of a user story
As a , I want so that .
Name two characteristics that constitutes a good user story
- User stories should provide enough detail to make a reasonable estimate about how long they should take to realize
- User stories should lead directly to one or more concrete (and often automated) acceptance tests that will verify that the story has been realized
What are acceptance tests?
A way to verify that the WHAT has been accomplished with a user story.
Who validates acceptance tests?
The client
How acceptance tests affect a project task?
The acceptance test is broken down into actionable engineering tasks. This ensures that only what is required to fulfill a user is implemented, and no more.