Software Eng exam #2

Lakukan tugas rumah & ujian kamu dengan baik sekarang menggunakan Quizwiz!

You find a open source library online, but it is not implemented for your programming language, at which level will you reuse it ? explain ?

Abstraction level

What are essential tools in a software development platform?

An integrated compiler and syntax-directed editing systems, debugger, modelling tools,Testing tools

What are the 4 levels at which software reuse is possible?

The abstraction level, object level ,component level,system level

Software reuse is possible at a number of different levels:

Abstraction and object level

Reuse ? abstraction level, object level, component level, system level:

*Abstraction level:* At this level, you don't reuse software directly but rather use knowledge of successful abstractions in the design of your software *Object level:* At this level, you directly reuse objects from a library rather than writing the code yourself. *Component level:* Components are collections of objects and object classes that operate together to provide related functions and servicesYou often have to adapt and extend the component by adding some code of your own. An example of component-level reuse is where you build your user interface using a framework. *System level:* At this level, you reuse entire application systems. This function usually involves some kind of configuration of these systems. This may be done by adding and modifying code (if you are reusing a software product line) or by using the system's own configuration interface.

What is host-target development ? Example ?

*Host-target development:* Production software is usually developed on one computer (the host system) and executes on a separate computer (the target system). *Example:* Making a game for ps4. It is made in unity but then played on the ps4.

How will your architecture be different based on: performance ? availability ?

*Performance*: The architecture should be designed to localize critical operations within a small number of components, with these components deployed on the same computer rather than distributed across the network. *Availability*: The architecture should be designed to include redundant components so that it is possible to replace and update components without stopping the system.

Configuration management: version management, system integration, problem tracking, release management

*Version management:* where support is provided to keep track of the different versions of software components. *System Integration:* where support is provided to help developers define what versions of components are used to create each version of a system. *Problem Tracking:* where support is provided to allow users to report bugs and other problems, and to allow all developers to see who is working on these problems and when they are fixed. *Release Management:* where new versions of a software system are released to customers. Release management is concerned with planning the functionality of new releases and organizing the software for distribution.

Design models: structural models, dynamic models, subsystem models, sequence models, state machine models

-*structural model (e.g., a class diagram)* that demonstrates the other systems in the environment of the system being developed. -*dynamic model* (e.g., a use case diagram + structured natural language description) that shows how the system interacts with its environment as it is used. -*Subsystem models* show logical groupings of objects into coherent subsystems. These are represented using a form of class diagram with each subsystem shown as a package with enclosed objects. Subsystem models are static (structural) models. -*Sequence models* show the sequence of object interactions. These are represented using a UML sequence or a collaboration diagram. Sequence models are dynamic models. -*State machine* models show how individual objects change their state in response to events. These are represented in the UML using state diagrams. State machine models are dynamic models. State diagrams are useful high-level models of a system or an object's run-time behavior.

Open-source: what should you do if you plan to use open-source software ?

-Establish a system for maintaining information about open-source components that are downloaded and used. - Be aware of the different types of licenses and understand how a component is licensed before it is used. - Be aware of evolution pathways for components. - Educate people about open source. - Have auditing systems in place. -Participate in the open-source community.

What do Gamma et al. suggest are the four essential elements of a design pattern?

A meaningful name, a description of the problem and when the pattern can be applied, a solution description, consequences of applying the pattern.

How is component testing different than system testing ? Give an example of tests and what are you testing for ?

Component testing is defined as a software testing type, in which the testing is performed on each individual component separately without integrating with other components. It's also referred to as Module Testing when it is viewed from an architecture perspective. Component Testing is also referred to as Unit Testing, Program Testing or Module Testing. *Example 1*: Consider a website which has 5 different web pages then testing each webpage separately & with the isolation of other components is referred as Component testing in Small. *Example 2*: Consider the home page of the guru99.com website which has many components like Home, Testing, SAP, Web, Must Learn!, Big Data, Live Projects, Blog and etc. Similarly, any software is made of many components and also, every component will have its own subcomponents. Testing each modules mentioned in example 2 separately without considering integration with other components is referred as Component Testing in Small.

Briefly describe the three principal stages of testing for a commercial software system

Development testing, Release testing,User testing

Cost of buying reusable software is so high, you should always consider it as a last option

False

Design pattern are only applicable to object-oriented design

False

High availability does not have an impact on the number of platform a component must be deployed

False

Software reuse is only applicable at the object level

False

Approaches that may be used to identify object classes?

Grammatical analysis identifying nouns and verbs, identify tangible things in the application domain, use scenario-based analysis

Generalization ?

In object-oriented languages, is implemented using inheritance

Design pattern:what is it ? what are they useful for ? why do we use them ?

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

What are the advantages of inspections over testing?

Incomplete versions of a system can be inspected.

What is scenario testing?

Scenario testing is an approach to release testing where you write a story describing how a system may be used and design tests based on the sequence of events in the scenario.

A diagram which show interactions between actors and the system and between system components

Sequence diagram

How is configuration management critical for security ? explain it ?

The management and control of configurations for an information system with the goal of enabling security and managing risk. Attackers are looking for systems that have default settings that are immediately vulnerable. Once an attacker exploits a system, they start making changes. These two reasons are why security configuration management tools are so important. SCM can not only identify misconfigurations that make your systems vulnerable but can also identify "unusual" changes to critical files or registry keys.

What is the idea of open-source development ?

The source code of a software system is made publicly available and volunteers participate in the development of the system.

When and know do you do testing in the software testing process ?

There are 3 stages of the testing process: development testing ,release testing, user testing. You use a mix of manual and automated testing

You must test the profile creation for BurghyBook (a campus wide social site). The profile creation has : First Name, Last Name, date of birth, and an email. List tests you will do.

User testing and development testing

What is the distinction between validation and verification?

Validation: Are we building the right product? Verification: Are we building the product right?

Architectural patterns:

layered, repository, client-server, pipe and filer architecture

Architectural view

logical view, process view, development view, physical view -> system architecture

Structural models ?

may be static, showing the structure, or dynamic, showing the organization of the system when it is executing

Behavioral models ?

models the dynamic behavior, upon stimuli such as data arriving or event happening

Non-functional system characteristics and software architecture

performance, security, safety, availability

Architectural design

the process of defining a collection of hardware and software components and their interfaces to establish the framework for the development of a computer system

Application architecture

transaction processing applications, layered information system, language processing system,

V & V

validation: are we building the right product (vs customer's expectation) ? verification: are we building the product right (vs requirements)?


Set pelajaran terkait

9th Grade Physical Science - Chapter 3 States Of Matter

View Set

Chapter 6 Foundations of Business Intelligence: Databases and Information Management

View Set

(6) Events Leading to Secession and War

View Set

Hello, Universe major plot events

View Set

Chapter 5 chronic illness Medsurg

View Set

Economics Chapter 1-3 Test Review

View Set

levels of scrutiny/classes/tests

View Set