Midterm 1 Flashcards
When was the term Software Engineering introduced?
The late 60s
What are the goals of software Engineering?
To produce quality software or well engineered software
What are some characteristics of quality software?
Peforms precisely as required, reliable, maintainable, good UI, efficient, delivered on time, delivered within budget
What are some reasons for the difficulty of software development?
The problem domain and solution domain is difficult.
The development process is difficult
What are the 4 facets of Software Engineering?
Problem solving
Modeling
Knowledge Acquisition
Rationale Management
What is software engineering?
A systematic approach to develop software within a specified time and budget
What are the stages of the software engineering life cycle?
Requirement Analysis
Design
Implementation
Testing
Evolution
What is specification (requirement analysis)?
The process of understanding and defining what services are required and identifying the constraints on these services
What is Design?
A description of the structure of the software to be implemented
What is Implementation
The process of converting a system specification and design into an executable system
What is validation?
Checking that the software system meets its requirements and specifications and that it fulfills its intended purpose
What is Evolution?
The process of modifying a software product after delivery
What are the 4 essential attributes of good software?
Maintainability
Dependability
Efficiency
Acceptability
What are the two types of software products?
Generic Products
Customized Products
What are the three parties involved in system development?
Users
Customers
Producers
How should systems take into account users?
Systems should be specified based on user needs
Validated whether it really functions according to user needs
Documented by describing the system from the user’s perspective
What is the Software Development Process or Software Process?
A structured set of activities required to develop a software system
What do all software processes involve?
Specification, Design and Implementation, Validation, Evolution.
What are the two types of software processes?
Plan-driven processes
Agile Processes
What are plan driven processes?
All the process activities are planned in advance and progress is measured against this plan
What are agile processes
Planning is incremental and iterative, and it is easier to change the process to reflect changing customer requirements
What is the main draw of the waterfall method?
It is hard to change after the process is underway
When should the waterfall method be used?
When the requirements are well understood and changes will be limited
What are the benefits of incremental development?
Changing is cheap
You can get customer feedback easier
More rapid delivery of a working product to the customer is possible
Early increments act as a prototype to help elicit requirements for later increments
Low risk of project failure
Highest priority system services can be tested more
What are some issue with incremental development?
The process is not visible
System structure tends to degrade
When the system is supposed to replace an already working system it is impractical to use a non complete system to replace the complete system even temporarly
What is the two ways to reduce the cost of change?
Change anticipation and Change tolerance
What is change anticipation?
Anticipate possible changes before you need to make significant reworks
What is change tolerance?
Making the system easy to change at a low cost
What are two ways of coping with change?
System prototyping and incremental delivery
What is a prototype?
An initial version of a system used to demonstrate concepts and try out design options
What are some benefits of prototyping?
Improved system usability
Closer match to users’ real needs
Improved design quality
Improved maintainability
reduced development effort
What are the stages of the RUP
Inception, Elaboration, Construction, Transition
What are the two iterations of the RUP?
In-phase iteration, Cross phase iteration
What is reuse-oriented development?
Systems are integrated from existing components or application systems
What are the key stages of reuse oriented systems?
Requirements specification
Software discovery and evaluation
Requirement refinement
Application system configuration
Component Adaptation and intergration
What are the advantages of reuse oriented systems?
Reduced costs and risks, faster delivery and deployment of system
What are the disadvantages of reuse oriented systems?
Requirement compromises are going to occur
Loss of control over evolution of reused system elements
What are the three parts of the SCRUM framework?
Roles, Ceremonies and Artifacts
What are the three roles in the SCRUM framework?
The Product owner
The ScrumMaster
The Team
What is does the Product Owner do in a SCRUM?
Define the features of the product
Decide on the release date and content
Be responsible for the profitability of the product
Prioritize features according to market value
Adjust features and priority every iteration
Accept or reject work results
What does the ScrumMaster do in a SCRUM?
Represent management to the project
Enact Scrum values and practices
Removes impediments
Ensure that the team is fully functional and productive
Enable close cooperation across all roles and functions
Shield the team from external interferences
What does the Team do in a SCRUM?
Create the product during the spring
What are the 4 ceremonies in a SCRUM framework?
Sprint Planning
Sprint Review
Sprint Retrospective
Daily Scrum Meeting
What is done during the Sprint Planning Ceremony?
Team select items from the product backlog
Create the sprint backlog
Consider high level design
What is done during the Spring Review?
Team presents what was accomplished during the spring
Informal, typically a demo
What is done during the Sprint Retrospective?
Take a look at what is working and what is not working around 15-30 minutes, done after every sprint
What is done during the Daily Scrum meeings?
Discuss what was done yesterday, what will be done today, is there anything in ones way
What are the 3 artifacts in a SCRUM framework?
Product backlog
Spring backlog
Burndown charts