• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/50

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

50 Cards in this Set

  • Front
  • Back
(T/F) Software engineering is a process
false
Give two definitions of software engineering
1. The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works on real machines.

2. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software
List two agile processes

List two formal processes
Agile: XP, scrum
Formal: Rational Unified Process, cleanroom
What are some non-functional requirements of a project?
performance, usability, maintainability, technology
What does a use case diagram show?
actors and use cases, system scope and boundaries
What is a use case?
text - a form of writing. describes the system's behavior as it responds to a request from an actor.

describes the sequence of events that happen when the system responds to a request. can describe alternatives and errors.
What are the parts of a use case?
Primary actor

goal

normal steps

alternative steps (errors, options)
What are the different ways of writing use cases?
-user stories
-actor goal list
-use case briefs
-casual use cases
-"fully dressed" use cases
What are the components of a fully dressed use case
-primary actor
-goal in context
-scope
-level
-stakeholders and interests
-precondition
-minimal guarantees
-trigger
-extensions
What is traceability?
the ability to trace the effect of a requirement
(T/F) use case goals can fail
true. use cases describe a set of ways for carrying out the goal, and several ways of failing
What are the primary project killers?
-requirements mistakes
-improper schedule
(T/F) the costs of fixing a bug in deployment is cheaper than fixing a bug in design phase
false
What is an actor
role of someone or something that interacts with system
What is a statistical tool, used in project management, that is designed to analyze and represent the tasks involved in completing a given project.
PERT
a common technique for representing the phases and activities of a project work breakdown structure (WBS), so they can be understood by a wide audience all over the world.
Gantt charts
Why is software management distinct from other engineering management?
Software in intangible. Projects may be novel or innovative so there is no body of experience to guide their management. Software processes are not as mature as traditional engineering processes
___________ is now recognized as one of the most important project management tasks
risk management
What are the elements of risk management?
identifying and assessing major project risks to establish the probability that they will occur and the consequences for the project if that risk does arise. You should make plans to avoid, manage, or deal with likely risks if or when they arise
The ______ is an agreed statement of the system requirements. It should be organized so that both system customers and software developers can use it.
software requirements document
What is requirements elicitation and analysis?
an iterative process that can be represented as a spiral of activities - requirements discovery, requirements classification and organization, requirements negotiation, and requirements documentation
Give one advantage and one disadvantage of PERT charts
Advantage: explicitly defines and makes visibly dependencies
-facilitates identification of the critical path

Disadvantage:
-Can be large amounts of individual dependency relationships
-Can be large and unwieldy
What are the three different types of risks?
-Technical risks
-Project risks
-Business risks
What are the non-functional requirements?
-security
-reliability
-efficiency
-usability
-scalability
-maintainability
-performance
-usability
-technology
What are some advantages of a distributed VCS over a traditional VCS?
-No need to connect to a central server to commit
-No central point of failure
-Merges do not need to be resolved before a commit
-Better performance due to local repositories
Why have distributed VCSs not been adopted?
-Organizational intertia
-Need for centralized control
-Need for traceability
-Need to integrate with other systems
How is software architecture created when using RUP?
archited elaborates a skeleton system
How is software architecture created when using XP
user stories. emerges as the system is developed and refactored, everyone is an architect
List some responsibilities of a software architect other than designing architect?
-chief builder
-create conceptual integrity
-communicating with clients / developers
-leader
-creating standards
-recognizing reuse
What are two reasons why it is not possible for software projects to achieve a fully rational process?
-requirements change
-unclear at the beginning what we'll build at the end
-development teams change
-people make mistakes
What is the difference between requirments and specification
-requirements -> non-technical perspective perspective of the user

-specification -> perspective of the developer and/or tester
What is Architecture?
1) High-level design (components = modules
2) Pervasive patterns (components = lower level objects)
Why is architecture important?
1) key to meeting non-functional requirements
2) Provides a common view for all stakeholders
3) Divide the system into modules
What is the Architectural Trade-off Analysis Method (ATAM)?
 Collect scenarios (architectural use cases)
 Collect requirements, constraints, and
environment descriptions
 Describe candidate architectural styles
 Evaluate quality attributes
 Identify sensitivity of quality attributes
 Critique candidate architectures
What are the advantages of RDBMS (Relational Database Management System)?
1) Safety, concurrency, integration, queries
2) Standard
- Compatible tools
- Expert developers
3) Scalable (with cost)
What are the disadvantages of RDBMS (Relational Database Management System)?
1) Performance bottleneck
2) Object-relational impedance mismatch
Must convert between tables and objects
3) Tables not good for trees and graphs
What are two ways to manage risks in XP?
-iteration
-do the simplest thing that can possibly work
-customer picks most important stories
Some believe that quality is all about conformance to requirements and standards. Argue
why that isn’t true by showing what is missing from that statement
1. Requirements and standards can evolve/change over time
2. Requirements can be unachievabl
Give an example where use cases would not work well for capturing requirements
A system that has only one use case or one that has very little interaction with the
stakeholders e.g. a compiler
Give two differences between use cases and user stories in XP
Context - Use cases include more context by including the actors, scope, level whereas


Completeness - Use cases handle the main success scenario and extensions whereas
user stories usually only focus on the final goal (how would you know how to
handle the corner cases?)
user stories don’t account for those


Traceability Use cases can refer to previous/future ones to show some dependencies
whereas user stories usually are pretty self-contained and isolated
Parnas shows two ways to decompose the KWIC Index Production System. The first
method roughly resembles a pipeline model where information was being transferred between modules sequentially. According to Parnas, what are three potential problems of
this decomposition
Changeability - Changing one module has a cascading effect on the other modules


Independent Development -Because the modules are tightly coupled, it is hard to
develop one with affecting the others


Comprehensibility - Hard to understand – in isolation – what one module is doing
without first understanding how other modules work/interact
Even though the first method for decomposition exhibits those problems, why is it nevertheless a likely choice of decomposition among programmers
Because this is usually how we think of the problem – progressing in stages where each
step follows from a previous one. It’s also a simple approach for a first design
The paper also presents a second method for decomposition which, Parnas claims, addresses the problems with the first approach. What was the basis of the second method of
decomposition? What was one potential problem of this second decomposition if it were
implemented naively
The second approach is based on information hiding between modules. If implemented
naively, the overhead of passing information between the different modules could be a
bottleneck that would slow the system down
Describe two ways in which modelling notations such as UML are beneficial?
Modelling notations help developers communicate.

Modelling notations provide documentation.

Modelling notations help find errors.

Modelling notations can be used to generate code.
What are the three stereotypes in a use case diagram?
Boundary stereotype: UI associated with actor

Control stereotype: control associated with use case

Entity stereotype: persistent with real objects
How do you achieve good software abstractions?
Get them from someone else (read lots of boks, read lots of code)

Generalize from examples.

Look for duplication. KILL IT!
What is architecture?
High-level design and pervasive patterns.
Why is architecture important?
Key to meeting non-functional requirements.

Provides a common view for all stakeholders.

Divides the system into modules.
What is Architectural Trade Off Method?
Collect architectural use cases.

Collect constraints, requirements, and environment descriptions.

Describe candidate architectural styles.

Evaluate quality attributes.

Identify sensitivity of quality attributes.

Critique candidate architectures.
What are some common risks associate with software development?
Takes too long.

Customer runs out of money.

Problem is harder than thought.