















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 23
This page cannot be seen from the preview
Don't miss anything!
















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