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. |