Exam Flashcards
What is the mission of Software Engineering?
Planning the construction and maintenance of large-scale and long-living software systems with predictable and adequate quality and cost.
Which are the challenges in Software Engineering?
- Interconnection of systems
- Integration of systems
- Continuous change
- Collaborative development
Which are the 4 inhibitors to scalability of the speed/quality of SW delivery?
- Processes
- Roles
- SW Structure
- Technologies
What is Software Architecture?
- Abstraction
- Conceptual model
- Blueprint
- Represent the set of significant design decisions
What is Software Architecture by Len Bass?
“… the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.”
What is architecturally-significant?
Whatever is:
- Costly to change
- Risky
- New
Which are the 4 classes of architectural drivers?
- Business goals
- Quality attributes (Runtime/Devtime)
- Functional requirements
- Constraints
Which is the difference between runtime and devtime quality attributes?
RT: system in operation
DT: team in operation
How to measure the achievement of a quality attribute?
Scenarios
Which are the 8 fields of a architectural scenario template?
- ID / Scenario title
- Status
- Quality attribute
- Stakeholders
- Environment
- Stimulus
- Team/System Response
- Response measure
Which are the 2 main purposes of architectural scenarios?
- Compensate missing requirements
- Aggregate large amount of repeating requirements
For what are architectural scenarios used for?
- Communicate with stakeholders
- Input to architecture definition process
- Evaluating the architecture
Which are the 6 steps for deriving architectural scenarios?
- Brainstorm scenarios from functional requirements, stakeholders and experience. Formulate questions.
- Classify scenarios: Runtime or Devtime
- Define the environment
- Define response and response measure
- Validate with each stakeholder
- Prioritize
Which are the 4 main characteristics of Agile Development?
- Individual and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Which are the 2 advantages of Agile?
- Produce fast results
- Often leads to high quality products
Which are the 4 disadvantages of Agile?
- Hardly scales to large-scale projects
- Leading to systems hard to maintain
- Does not lead to uniform solutions
- Relies on refactoring
What is the role of the architect and which skills are required?
- Mediator and communication between business level and technology level
- Engineering skills, organizational skills, interpersonal skills, communication skills.
What is the difference between parallel computing and distributed computing?
Parallel: shared memory, same physical location
Distributed: communicate via the network, physically separated
Which are the 2 commonalities between parallel computing and distributed computing?
- Synchronization of resource access and modification
- Subdivision of computational problems
What is a distributed system?
A system that:
- communicate
- coordinate
- by message passing
- over the network
- that appear to the user as a single system
Which are the 11 quality attributes motivating distribution?
MARTISSO PSP:
- Maintainability
- Availability
- Reliability
- Testability
- Integrity
- Safety
- Security
- Openness
- Performance
- Scalability
- Portabilitynote
Which are the 6 challenges of distributed systems?
- Complexity
- Security
- Maintainability
- Determinism, Predictability
- Decomposing of problems
- Data and semantic dependencies (synchronization)
What is a component?
- Logical unit of composition (abstraction)
- Self-contained functional unit
- Deployed independently
What is an interface?
Boundary across two independent components that interact and communicate.
Which are the 2 types of interfaces?
- Provided
- Required
Which are the 3 types of interface ownership?
- Standard
- Component ownership
- Framework style
What are connectors used for?
- enable communication
- enhance communication
- ease communication
- provide transparency
Which are the 4 connector responsibilities?
- Transport
- Transformation, Adaptation
- Security
- Transactions