Software Architecture and Design Concepts, Exams of Computer Science

This document covers various subtopics related to software architecture and design concepts. It explains the components, connectors, and configuration of software architecture. It also covers the rationale for decomposition, identification, and definition. the importance of domain-specific software architectures and ISO/OSI models. It explains the process of developing software architecture and the design concepts such as abstraction, separation of concerns, cohesion, and coupling. The document also covers software testing, quality control, and quality assurance. It explains different types of testing, verification, and validation. It also covers debugging and regular expressions.

Typology: Exams

2023/2024

Available from 02/04/2024

star_score_grades
star_score_grades 🇺🇸

3.7

(21)

1.6K documents

1 / 23

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Architecture and Design
Concepts
One spec - correct answer Many Designs
Software Architecture subtopics - correct answer -Organization
-how software is decomposed into components
-Server organization
-technologies that you use to build software
What is a software architecure represented in terms of - correct answer -Components
-Connectors
-Configuration (topology)
-Rationale for decomposition, identification, definition
Software Architecture is - correct answer the set of principal design decisions made about a
system to be developed
What is a software component - correct answer It encapsulates a subset of the systems
functionality and/or data
-Composability, reusability, evolvability
Domain-specific software architectures - correct answer DSSAs represent the most valuable
type of experience useful in identifying a set of alternative arrangements for a design
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Partial preview of the text

Download Software Architecture and Design Concepts and more Exams Computer Science in PDF only on Docsity!

Software Architecture and Design

Concepts

One spec - correct answer Many Designs Software Architecture subtopics - correct answer -Organization -how software is decomposed into components -Server organization -technologies that you use to build software What is a software architecure represented in terms of - correct answer -Components -Connectors -Configuration (topology) -Rationale for decomposition, identification, definition Software Architecture is - correct answer the set of principal design decisions made about a system to be developed What is a software component - correct answer It encapsulates a subset of the systems functionality and/or data -Composability, reusability, evolvability Domain-specific software architectures - correct answer DSSAs represent the most valuable type of experience useful in identifying a set of alternative arrangements for a design

ISO/OSI model - correct answer 7 Layer organization Developing software architecture - correct answer -Choose architecture style (e.g., a layered architecture) -Identify components (subsystems) -Identify connectors (how the components willcommunication) Why we dcompose - correct answer Management, modification, understanding Abstraction - correct answer present a problem and solution at appropriate levels of abstraction Separation of concerns - correct answer a feature specified by the requirement model Functional Independence - correct answer Design concepts: Functional independence• Functional independence Each module has a simple interface Cohesion - correct answer interdependence of elements of one module Coupling - correct answer interdependence between different modules low coupling is good Goal - correct answer high cohesion and low coupling

Uniformity acces principle - correct answer all code in the same form i.e. a.balance(), balance(a) all instances would be a.balance() Information hiding principle: - correct answer The designer of every module must select a subset of the module's properties as the official information about the module, to be made available to authors of client modules Information hiding - correct answer Every module should be known tothe outside world through an official, "public" interface Reusability - correct answer design for reusability to use parts of the design and implementation in other applications Refactoring - correct answer "Improves the internal structure of a design (or source code) without changing its external functionality or behavior" Fan-in - correct answer refers to the number of units that use a particular software unit Fan-out - correct answer refers to the number of units used by particular software unit Interfaces - correct answer The specification of a software unit's interface describes the externally visible properties of the software unit Generality - correct answer a design principle that makes a software unitas universally applicable as possible, to increase thechance that it will be useful in some future system

Abstract Class - correct answer A class with defined methods, but no implementationthat act as a template i.e. shape class where square, circle, rectangle all inherit from it i.e. methods: area Polymophism - correct answer code is written in terms of interactions with an interface, but code behavior depends on the object associated with the interface at runtime and on the implementations of that object's method DBMS - correct answer Set of programs Use of DBMS - correct answer Contain information about a particular enterprise Database systems are used to manage collections of data that are lareve, and accessed at the same time Database Langugaes - correct answer Data Defenition Language (DDL) Data Manipulation Language (DML) DBMS Interfaces - correct answer Standalone query languages (SQL), Programming interfaces (CLI), user-friendly interfaces. Relational Model - correct answer Mathematical concept based on the ideas of sets SQL - correct answer Structured Query Language

  • Pure polymorphism the ability to treat objects of different derived classes as objects of their base class
  • Dynamic binding: during runtime, the correct method is invoked based on the actual type of the object Polymorphism Supertype in place of a subtype - correct answer - You can substitute a base class object, reference, or pointer inplace of a derived class object when calling functions ormethods Where do software architectures come from? - correct answer -Domain-specific software architectures• -Reference architectures• -Architectural styles -Design Patterns Design Pattern - correct answer A design pattern is a general repeatablesolution to a commonly occurringproblem in software design Elements of Design Pattern - correct answer Name Problem Solution Consequences

Adapter Pattern - correct answer the adapter pattern is a softwaredesign pattern that allows the interface of an existingclass to be used as another interface. It is often used tomake existing classes work with others withoutmodifying their source code."Software design 79 Design Pattern Consequences - correct answer Modularity Extensibility Customizability Unexpected updates Fundamental Concepts in Module Design - correct answer A function A method A class What is the Objective of Testing? - correct answer (A) To show that a program works (B) To improve the reliability of a program (C) To find defects in the code (D) to protect the end-user (E) To protect the developing community ANSWER: C Dijkstra's view on testing - correct answer In other words, a program can be proven incorrect by a test, but it cannot be proven correct.

Objected of Test-to-pass (constructive testing) - correct answer -Software works minimally -Apply straightforward test cases for correct behavior -Capabiliteis are not pushed -The right way of itnital testing Objected of Test-to-fail (constructive testing) - correct answer -Aggressive testing -Testing a feature in every conceivable way possible -Break the software (find faults) Software Testing is - correct answer Static, Dynamic Types of testing - correct answer Module, compoennt, or unit Levels of testing - correct answer Unit Testing Integration Testing System Testing Acceptance Testing Specification-based or black-box or closed-box or functional testing - correct answer - Functionality of the test objects

  • No view of code or data structure - input and output only Code-based or white-box or clear box or glass box or structural testing - correct answer - Structure of the test objects is explored -Internal view of code and data structures Formal Proof Techniques - correct answer Write assertions and theorems from A1 to An that proves the program works Steps in Choosing Test Cases - correct answer Determing Test Cases Selecting Test Cases Defining a Test When to stop testing - correct answer • When you run out of time
  • When continued testing causes no new failures
  • When continued testing reveals no new faults
  • When you cannot think of any new test cases
  • When you reach a point of diminishing returns
  • When mandated coverage has been attained Quality Control - correct answer Keep quality at an acceptable level by rejecting unacceptable product Quality Assurance - correct answer Process and Design Standards -> Requirements -> Development -> QC Inspection When do you fix problems? - correct answer Before and druing the development process to IMPROVE the process

max- max Robust BV - correct answer 6n+1 test cases min- min min+ max- max max+ NO single-fault assumption - correct answer 5^n test cases Interested in what happens when more than one variable has an extreme value Also known as Multiple-Fault BV Testing Combination of Robust and Multiple-fault assumption - correct answer All combinations of 7 valeus for all variables 7^n test cases Example of test cases - correct answer c1. 1 ≤ a ≤ 200 c4. a < b + c

c2. 1 ≤ b ≤ 200 c5. b < a + c c3. 1 ≤ c ≤ 200 c6. c < a + b This defines min and maxes EC - correct answer Equivalence Class Robust EC Testing - correct answer A few within bounds and someoutside Normal EC testing but no single-fault - correct answer Tests within all partitions inside the bounds. Strong Robust EC Testing - correct answer all partitions inside and outside of the ranges Specification based testing - correct answer Black Box Testing Functional Testing Mostly to establish confidence Code based testing - correct answer White/clear/glass box testing structural testing mostly to seek faults Whitebox testing - correct answer Following examples T1 - correct answer Three lemons, one pistachio, two cantaloupes, one pear, one tangerine, four apricots

Decision coverage - correct answer Test cases ensure Boolean expressions tested in control structures evaluated to both true and false Condition Coverage - correct answer Condition coverage reports the true or false outcome of each Boolean sub-expression, separated by logical-and(&&) and logical-or (||) if they occur MCDC or MC/DC - correct answer Stands for Modified Condition/Decision Coverage Compound (multiple, combinatoric) condition testing generates: - correct answer 2^n test cases (where n is the number of conditions) Regular Expression (regex) - correct answer Describes a pattern of text /pattern - correct answer

. - correct answer to match any character \ - correct answer start an escape sequence, for example . to match a dot | - correct answer means or () - correct answer is used for grouping [] - correct answer group characters into a character set [a-e] - correct answer a range of characters or numbers [1-4]

^ - correct answer at the start of a bracket means any char except these; for example [^0-9] means any non-digit character a$ - correct answer if a string ends with the character ma+n - correct answer matches the pattern to the left of the + ex: maaaan would be a match so would man A && B && C - correct answer a changes rows 1 and 5 b changes rows 1 and 3 c changes rows 1 and 2 so we need test cases for rows 1,2,3,5 which is four test cases Truth table testing - correct answer Each variable change you need a test case for that row Unit Testing - correct answer test each function and gradually bring it to a whole produc Data Center - correct answer Big centers with servers that use a lot of electricity and generate a lot of heat What is cloud computing? - correct answer The on-demand availability of computing resources,especially data storage and computing power, withoutdirect active management by the user Cloud-based software - correct answer The cloud is a very large number of remote servers that are offered for rent by companies that own these servers

Server choice - correct answer If you find that the servers you are renting are notpowerful enough, you can upgrade to more powerful systems- You can add servers for short-term requirements, such as load testing. Distributed development: - correct answer If you have a distributed developmentteam, working from different locations, all team members have thesame development environment and can seamlessly share allinformation Hypervisor: - correct answer A type of computer software, firmware orhardware that creates and runs virtual machines Host machine: - correct answer A computer on which a hypervisor runsone or more virtual machines is called a host machine Guest machine: - correct answer Each virtual machine is called a guest machine Type 1 hypervisor - correct answer (bare-metal): runs directly on thephysical hardware of the host machine (e.g., MS Hyper-V) Type 2 hypervisor - correct answer hosted): installed on an OS (e.g., MSVirtual PC) Advantage so containers - correct answer Can be moved across virtual environments without worrying about the underlying dependencies Docker - correct answer container management system that allowsusers to define the software to be included in acontainer as a Docker image IaaS - correct answer Infrastructure as a service

Cloud providers offer different kinds of infrastructure service such as acomputer service, a network service and a storage service that you can use toimplement virtual servers PaaS - correct answer Platform as a service his is an intermediate level where you use libraries and frameworksprovided by the cloud provider to implement your software SaaS - correct answer Software as a service Your software product runs on the cloud and is accessed by users through aweb browser or mobile app Example - correct answer Pizza Made at home: On Prem Take and Bake: IaaS Pizza Delivered: PaaS Dined out: SaaS Benefits of SaaS for software product providers - correct answer Cash Flow, Update Management, Continuous Deployment Benefits of SaaS for software product providers - correct answer Payment flexibility, Try before you buy, Data collection