Software Engineering (copy)

0.0(0)
studied byStudied by 0 people
full-widthCall with Kai
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/53

flashcard set

Earn XP

Description and Tags

Exam 1

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

54 Terms

1
New cards

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

2
New cards

compare/contrast different Agile
(iterative/evolutionary) approaches

Extreme Programming (XP)

Scrum

Kanban

Pros:
- Emphasizes customer involvement.
-Establishes rational plans and schedules.
-High developer commitment to the project.
-Reduced likelihood of product rejection

Pros:
- Product owner sets priorities.
- Team owns decision making.
- Documentation is lightweight.
- Supports frequent updating.

Pros:
- Lower budget and time requirements.
- Allows early product delivery.
- Process policies written down.
- Continuous process improvement.

Cons:
-Temptation to “ship” a prototype.
-Requires frequent meetings about increasing costs.
-Allows for excessive changes.
-Depends on highly skilled team members.

Cons:
- Difficult to control the cost of changes.
- May not be suitable for large teams.
- Requires expert team members.

Cons:
- Team collaboration skills determine success.
- Poor business analysis can doom the project.
- Flexibility can cause developers to lose focus.
- Developer reluctance to use measurement.

iterative and evolutionary

iterative and incremental

evolutionary

3
New cards
<p>what type of paradigm is this?&nbsp;</p>

what type of paradigm is this? 

an evolutionary agile model, specifically extreme programming

4
New cards
<p>What type of paradigm is this?</p>

What type of paradigm is this?

a waterfall paradigm

5
New cards

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

6
New cards

Having well-defined ______ clarifies the scope of the work (reduces complexity) that will be required for a project

requirements

7
New cards

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

8
New cards

What are the generic framework activites?

Communication
Planning
Modeling
     Analysis of requirements
     Design
Construction
     Code generation
     Testing
Deployment

9
New cards
<p>What is this model showing?</p>

What is this model showing?

Process Flow

10
New cards
<p>What model is this?</p>

What model is this?

The Incremental Model

11
New cards
<p>What model is this and why does it exist?</p>

What model is this and why does it exist?

The Evolutionary Model; it accommodates products that evolve over time

12
New cards
<p>What is this model and what is its use? </p>

What is this model and what is its use?

The Spiral; its for rapid development of complete versions of software

13
New cards
<p>What is this model"?</p>

What is this model"?

Unified Process Model

14
New cards


_______— 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

15
New cards

_________:
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

16
New cards

_____—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

17
New cards
<p>What model is this?</p>

What model is this?

Kanban Framework

18
New cards

_______:
• 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

19
New cards
<p>What model is this?</p>

What model is this?

Devops

20
New cards

______:
Each iteration addresses these
activities:
Modeling
Implementation
Testing
Deployment
Configuration and project management
Environment management

AGILE UNIFIED PROCESS

21
New cards

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

22
New cards

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

23
New cards

_______ 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

24
New cards

________:

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

25
New cards

_____ 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

26
New cards

____ elicit requirements from all stakeholders

Requirements Engineering Elicitation

27
New cards

________ creates an analysis model that identifies data, function and behavioral
requirements

Requirements Engineering Elaboration

28
New cards

_____ agree on a deliverable system that is realistic for developers and
customers

Requirements Engineering Negotiation

29
New cards

______ 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

30
New cards

______ 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

31
New cards

_______: 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)

32
New cards

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

33
New cards
<p>What is this?</p>

What is this?

CRC card

34
New cards
<p>What is this?</p>

What is this?

use-case diagram

35
New cards
<p>What is this?</p>

What is this?

class diagram from use case

36
New cards

_______:

• 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

37
New cards
<p>What is this?</p>

What is this?

guiding principle for system development

38
New cards

_______ 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

39
New cards

________:
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

40
New cards

______:
• 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

41
New cards

___________:
• 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

42
New cards

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.

43
New cards

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

44
New cards

_____:
- 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

45
New cards

_______:
Waterfall
Incremental
Evolutionary
Other Process Models
Unified Process
Formal methods
AOSD... and more
PSP and TSP

PROCESS MODELS

46
New cards

______—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

47
New cards

_____—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

48
New cards

___________:
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

49
New cards
<p>what is this&nbsp;</p>

what is this 

activity diagram

50
New cards
<p>what is this and what are the boxes for? </p>

what is this and what are the boxes for?

STATE DIAGRAM

<p><span style="color: rgb(255, 255, 255);">STATE DIAGRAM </span></p>
51
New cards

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.

52
New cards
<p>what type of diagram is this?&nbsp;</p>

what type of diagram is this? 

sequence diagram

53
New cards

_________:
• Scenario-based models
• Class-oriented models
• Behavioral models
• Data models
• Flow-oriented models

REQUIREMENTS MODELS

54
New cards