1/53
Exam 1
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
How and why Waterfall and Agile paradigms differ
Waterfall paradigm is an incremental model. For this to work, requirements must be well known in advance and not really change much
Agile paradigms have iterative cycles , it knows plans can be short lived and change as requirements do
They differ because they are meant for different things. Waterfall is best for projects with fixed scope and requirements, whereas Agile suits projects with evolving needs and uncertainty
compare/contrast different Agile
(iterative/evolutionary) approaches
Extreme Programming (XP) | Scrum | Kanban |
Pros: | Pros: | Pros: |
Cons: | Cons: | Cons: |
iterative and evolutionary | iterative and incremental | evolutionary |
what type of paradigm is this?
an evolutionary agile model, specifically extreme programming
What type of paradigm is this?
a waterfall paradigm
What classes of problems cannot be
avoided, and give some examples from those classes
Invisibility
• senses cannot be easily used in comprehension
• visualizations, sonifications, require lots of work
Complexity
• programs are among most complex systems ever
created
• our short-term memory accommodates only ~7
things
Changeability
• software is constantly changing
• yesterday’s comprehension may be obsolete
Conformity
• Large system (hardware, users, domain)
• The program glues it all together, reflects the large
system
• This adds even more complexity
Discontinuity
• People easily understand linear or semi-linear systems:
shower
• Software is discontinuous, small change of input can
result in huge change of output: password
Having well-defined ______ clarifies the scope of the work (reduces complexity) that will be required for a project
requirements
We need to avoid ______. Everyone always wants more, but we must be disciplined about what work we will do and in what order
scope creep
What are the generic framework activites?
Communication
Planning
Modeling
Analysis of requirements
Design
Construction
Code generation
Testing
Deployment
What is this model showing?
Process Flow
What model is this?
The Incremental Model
What model is this and why does it exist?
The Evolutionary Model; it accommodates products that evolve over time
What is this model and what is its use?
The Spiral; its for rapid development of complete versions of software
What is this model"?
Unified Process Model
_______— reuse is the development objective
Prepackaged software
Provide specific functionality —> integrated into the software
Evolutionary (Spiral)
Steps:
Specific application domain
Integration
Software architecture
Testing
Component based development
_________:
Is driven by customer descriptions of what is
required (scenarios)
Recognizes that plans are short-lived
Develops software iteratively with a heavy
emphasis on construction activities
Delivers multiple ‘software increments’
Adapts as changes occur
AN AGILE PROCESS
_____—distinguishing features
Development work is partitioned into “packets”
Testing and documentation are on-going as the product is constructed
Work occurs in “sprints” and is derived from a “backlog” of existing requirements
Meetings are very short and sometimes conducted without chairs
“demos” are delivered to the customer with the time-box allocated
Scrum
What model is this?
Kanban Framework
_______:
• Having well-defined requirements clarifies the scope of
the work (reduces complexity) that will be required for a
project.
• We need to avoid scope creep. Everyone always wants
more, but we must be disciplined about what work we
will do and in what order.
• A project plan with milestones and clear deliverables
helps us get paid and ensures the customer gets what
they asked for.
• A well-defined process keeps developers from being
overwhelmed and keeps the final product focused on
SOFTWARE ENGINEERING’S PURPOSE
What model is this?
Devops
______:
Each iteration addresses these
activities:
Modeling
Implementation
Testing
Deployment
Configuration and project management
Environment management
AGILE UNIFIED PROCESS
CHARACTERISTICS OF _______ PROCESS MODELS:
1. Not suitable for large high-risk or mission critical projects.
2. Minimal rules and minimal documentation.
3. Continuous involvement of testers.
4. Easy to accommodate product changes.
5. Depends heavily on stakeholder interaction.
6. Easy to manage.
7. Early delivery of partial solutions.
8. Informal risk management.
9. Built-in continuous process improvement.
AGILE
CHARACTERISTICS OF _______ PROCESS MODELS:
1. Not suitable for small, low-risk projects.
2. Several steps required, along with documentation done up front.
3. Early involvement of testers (might be done by outside team).
4. Hard to accommodate product changes until prototype completed.
5. Continuous stakeholder involvement in planning and risk assessment.
6. Requires formal project management and coordination.
7. Project end not always obvious.
8. Good risk management.
9. Process improvement handled at end of project.
SPIRAL
_______ DEFINITION:
1. Encourage active stakeholder participation by matching their
availability and valuing their input.
2. Use simple models (for example, Post-it notes, fast sketches,
user stories) to reduce barriers to participation.
3. Take time to explain your requirement representation techniques
before using them.
4. Adopt stakeholder terminology and avoid technical jargon
whenever possible.
5. Use a breadth-first approach to get the big picture of the project
done before getting bogged down in details. Contd..
AGILE REQUIREMENTS
________:
Understand the problem better set of tasks
What customer wants
End user interaction with the software
Solid approach to requirements gathering
(software/system) challenges
Adapted to the need
Effort to understand before solving
Requirements Engineering
_____ ask a set of questions that establish:
basic understanding of the problem
the people who want a solution
the nature of the solution that is desired, and
the effectiveness of preliminary communication and collaboration between the
customer and the developer
Requirements Engineering Inception
____ elicit requirements from all stakeholders
Requirements Engineering Elicitation
________ creates an analysis model that identifies data, function and behavioral
requirements
Requirements Engineering Elaboration
_____ agree on a deliverable system that is realistic for developers and
customers
Requirements Engineering Negotiation
______ can be any one (or more) of the following:
A written document
A set of models
A formal mathematical model
A collection of user scenarios (use-cases)
A prototype
Requirements Engineering Specification
______ a review mechanism that looks for
errors in content or interpretation
areas where clarification may be required
missing information
inconsistencies (a major problem when large products or systems
are engineered)
conflicting or unrealistic (unachievable) requirements.
Requirements Engineering Validation
_______: quality attribute, performance
attribute, security attribute, or general system constraint. A two phase process is used to determine which ____’s are compatible:
The first phase is to create a matrix using each ___ as a column heading and the system SE guidelines a row labels
The second phase is for the team to prioritize each ____ using a set of decision rules to decide which to implement by classifying each ___ and guideline pair as complementary, overlapping, conflicting, or independent
Non-Functional Requirement (NFR)
The basic template for writing a good _____ is:
As a(n) actor, I want/need [some capability/behavior] so that I can [achieve some outcome/goal]
Or
As a(n) actor, I want/need [some capability/behavior] because [some requirement]
NOTE: actors can be users, developers, other systems, etc. ...
use case
What is this?
CRC card
What is this?
use-case diagram
What is this?
class diagram from use case
_______:
• specifies software’s operational characteristics.
• indicates software's interface with other system elements.
• establishes constraints that software must meet.
• it allows the software engineer to:
• elaborate on basic requirements established during earlier requirement
engineering tasks.
• build models that depict the user’s needs from several different perspectives.
Requirements analysis
What is this?
guiding principle for system development
_______ PRINCIPLES:
• Principle 1. The information domain of a problem must be represented and understood.
• Principle 2. The functions that the software performs must be defined.
• Principle 3. The behavior of the software (as a consequence of external events) must be represented.
• Principle 4. The models that depict information, function, and behavior must be partitioned in a manner that uncovers detail in a layered (or hierarchical) fashion.
• Principle 5. The analysis task should move from essential information toward implementation detail.
REQUIREMENTS MODELING
________:
ACTORS AND PROFILES
• A UML actor models an entity that interacts with a system object.
• Actors may represent roles played by human stakeholders or external hardware as they interact with system objects by exchanging information.
• A UML profile provides a way of extending an existing model to other domains or platforms.
• This might allow you to revise the model of a Web-based system and model the system for various mobile platforms.
• Profiles might also be used to model the system from the viewpoints of
different users.
SCENARIO-BASED MODELING
______:
• a “contract for behavior” and more formal than a user story.
•are simply an aid to defining what exists outside the system (actors) and what should be performed by the system (use-cases).
1.What should we write about?
2. how much should we write about it?
3. how detailed should we make our description?
4. how should we organize the description?
USE CASES
___________:
• Used in construction and manufacturing
• collect the requirements
• create a design
• follow the design during the entire construction
• transfer finished product to the user
• solve residual problems through maintenance
• Intuitively appealing metaphor
• good design avoids the expensive late rework
WATERFALL METAPHOR
Why must software change?
software must be adapted to meet the
needs of new computing environments or
technology.
software must be enhanced to implement
new business requirements.
software must be extended to make it
interoperable with other more modern
systems or databases.
software must be re-architected to make it
viable within a network environment.
What are umbrella activities? give examples
Ongoing tasks that support and span the entire software development process, rather than being confined to specific phases
ex:
Software project management
Formal technical reviews
Software quality assurance
Software configuration management
Work product preparation and production
Reusability management
Measurement
Risk management
_____:
- describes a process-related problem that is encountered
during software engineering work,
- identifies the environment in which the problem has been
encountered, and
- suggests one or more proven solutions to the problem.
- Stated in more general terms, a process pattern
provides you with a template [Amb98]—a consistent
method for describing problem solutions within the
context of the software process.
A process pattern
_______:
Waterfall
Incremental
Evolutionary
Other Process Models
Unified Process
Formal methods
AOSD... and more
PSP and TSP
PROCESS MODELS
______—emphasizes the
mathematical specification of requirements
Mathematical analysis allows
Clear specifications
Catch inconsistency or incompleteness
Easily correct the problem
Concerns
Time consuming and expensive
Extensive training is required
Customer understanding is less
Formal methods
_____—provides a process and methodological
approach for defining, specifying, designing, and
constructing aspects
Concerns cut across the entire architecture or multiple
system functions, features and information →
crosscutting concerns
Aspect specification → Defines these concerns that
affect the software architecture
Evolutionary → aspects are to be identified and then
implemented
Parallel nature → aspects are engineered independent
of localized S/W components 23
AOSD
___________:
• Maintenance - activities needed to keep software operational after it has been accepted and released in the end-user environment.
• Corrective maintenance - reactive modification of software to repair problems discovered after the software has been delivered.
• Adaptive maintenance - reactive modification of software after delivery to keep the software
usable in a changing environment.
• Perfective maintenance - proactive modification of the software after delivery to provide new user features, better program code structure, or improved documentation.
• Preventive maintenance – proactive modification software after delivery to correct product faults before discovery by users.
• In agile process models much (but not all) of the maintenance work is preventive or perfective as new features are added.
SOFTWARE RELEASE MAINTENANCE
what is this
activity diagram
what is this and what are the boxes for?
STATE DIAGRAM
what is a sequence diagram and what is it used for?
Sequence diagram is a shorthand version of a use case.
The UML sequence diagram can be used for behavioral
modeling.
Sequence diagrams can also be used to show how events cause transitions from object to object.
Once events have been identified by examining a use case, the modeler creates a sequence diagram—a representation of how events cause flow from one object to another as a function of time.
what type of diagram is this?
sequence diagram
_________:
• Scenario-based models
• Class-oriented models
• Behavioral models
• Data models
• Flow-oriented models
REQUIREMENTS MODELS