SE3352 Final Flashcards
What are the steps in the software development lifecycle?
8 steps: Requirements elicitation, analysis, system design, object design, implementation, testing, deployment, maintenance
What is the result of the requirements elicitation step?
description of the system in terms of actors and use cases - in language that can be understood by the user
What does the software development lifecycle identify?
- activities from inception to phasing out
- applied modeling approach
- methodology and development process
What does a sequence diagram describe?
Describes dynamic behavior between objects of a system
What does a class diagram describe?
Describes static structure of the system
What does a use case diagram describe?
Describes functional behavior as seen by the user
Rating a response or idea in some scale would be classified as a ________ question
“Closed ended “
UML models include? 4 types
“Behavioral (use cases), structural (class diagrams), statechart diagrams, sequence diagrams”
What is the format of a UC description?
UC Name Participating Actors Entry Conditions Flow of Events Exit Conditions Quality Requirements
What type of question should you use when you are looking for previously unknown information
Open Ended
Multiple choice, ranking and rating questions are what type of question?
Closed Ended
Name the Activity:
-performed (over time) for removing software errors not picked up in testing, enhancing software
Maintenance
What is JAD? What does a session look like?
Joint application development, PM’s users and developers working together with a leader and scribe over a 3 week period for 5–10 days with a schedule
What is the leader role in JAD?
To keep session on track, answer questions, record output, resolve issues and explain jargon
What Is the scribes skill set in JAD?
“Touch typing, case tool skills, software development knowledge”
Name the Activity:
-Defines the the design goals and decomposes the system into smaller sub systems
Result:
- Clear Description of strategies
- Subsystem decomposition
- Deployment diagrams (hardware/software mapping of system)
System Design
Name the Activity:
-developers define solution domain objects to bridge the gap between analysis and deployment
Result:
- Detailed object model
- Has constraints
- descriptions for each element
Object Design
What are the Methods of Requirements Elicitation
1) Interviews
2) Questionnaires
3) Task Analysis
4) Study documents/software systems
5) JAD - Joint Application Development
What are the Activities of Requirements Elicitation
- Identify Actors
- Identify Scenarios
- Identify Usecases
- Redefine Usecases
- Identify relationships between use cases
- Identify non-functional requirements
Questionnaires are passive.
True.
What are the three methods of Task Analysis?
Passive, Active, and Explanatory
What are the two types of Non Functional Requirements?
Quality requirements and constraints
JAD decreases ________ by 50%
Scope Creep
Who are the members of a JAD team?
Leader, Scribe, Customers, Devs
What are the 6 activities of requirements elicitation?
Identify Actors Identify Scenarios Identify UCs Refine UCs Identify relationships between UCs Define Non Functional Requirements
What is the format of a UC description?
UC Name Participating Actors Entry Conditions Flow of Events Exit Conditions Quality Requirements
What are the components of a scenario?
name, actor, flow of events
What is a scenario?
An instance of a UC describing a concrete set of actions
What are the 4 tyes of scenarios?
As-is: describes a current system
visionary: describes a future system
evaluation: describes user tasks against which the system is to be evaluated
training: describes a tutorial used for introducing users to the system
What aspects of the use case are detailed in the refinement process?
- elements (attributes, forms) that are manipulated by the system
- low-level sequence of actor-system interactions (like GUI interactions)
When would an include relationship be approptiate?
To factor out behavior common to 2+ UC
Why would you use an extend relationship?
To factor out optional/exceptional behavior
What are some benefits of implementing requirements traceability?
certification change impact analysis maintenance reeingeering reuse
What are the activities of system design?
- Identify design goals
- Design subsystem decomposition
- Refine subsystem decompositions
What are the 8 issues of system design?
- Identify design goals
- Design subsystem decomposition
- Identify concurrency
- Hardware/software mapping
- Persistent data management
- Global resource handling
- Software control
- Boundary conditions
What is a component?
An encapsulated, reusable, and replicable part of software
What is bitcoin?
something something Blockchain something something something something Winkelvoss something something something US dollars, at least for now!
What do you call an interface that a component realizes?
A provided interface
What do you call an interface that a component needs to function?
A required interface
What is included in the <> section of a component?
A list of classes the realize the component (that help the component do its job)
What are services derived from?
use cases
Does the subsystem interface specify interaction and information flows within a subsystem?
NO
-the interface specifies flows to and from subsystem BOUNDARIES
What is the implication of having high coupling between two subsystems?
Modifications to one subsystem is likely to have an impact on the other
What is the desirable combination of coupling and coherence levels?
Minimum coupling, maximum coherence
What is a horizaontal division of a layer called?
a partition
What are the 2 types of dependencies in a layered architectural style?
- compile time dependency (A uses B)
- runtime dependency (A calls B)
What is the difference between relaxed-layered style and strict-layered style?
- Strict: layer can use only the layer directly below it
- Relaxed: layer can use all layers below it
What are the disadvantages of a layered architectural style?
- passing through many layers can hurt performance
- debugging through layers is difficult
- getting the layers right is difficult
What are tha dvantages of a layered architectural style?
- information hiding
- layers are not strongly coupled to higher layers
- low complexity
- easy to replace entire layer
- layers easy to reuse
What are the advantages of MVC style?
- decouples data access and presentation
- views and controllers can easily be added, removed or changes
- UI can be changed at runtime
What are the disadvanatges of MVC style
- views and controller often hard to seperate
- frequent updates slow data display
- interface components are highly dependent on model components
When are objects inherently concurrent?
If they can receive events at the same time
A component must be as small as a class
False, a component can range in size from relatively small class to the size of a large subsystem
What is a node?
A software or hardware resource that can host software or related files
An object model describes?
Entities manipulated by the system