Software Engineering Final Study Guide(Diego Fernandez)

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

What is Equivalence Partitioning as it applies to software testing?

"Equivalence partitioning is simply a testing technique based on graphs, or grouping of input, so you don't have to try out every single possibility."

What is Black-box Testing, and what is White-box testing?

*Black-box testing - behavioral testing or functional testing; Finds: Incorrect or missing functions Interface errors Errors in data structures or external database access Behavior or performance errors Initialization and termination errors *White-box testing - Component-level structural testing Guarantee that all independent paths within a module has been exercised at least once Exercise all logical decisions on their true/false sides Execute all loops at their boundaries and within their operational bounds Exercise internal data structures to ensure their validity

What are the 4 Legacy System Categories and what are the resolution options available for each category

*Low quality, low business value: Scrap System *Low-quality, high-business value -Systems make an important business contribution -Expensive to maintain -Re-engineer or replace *High-quality, low-business value -Replace with COTS, scrap completely or maintain. *High-quality, high business value -Leave the system unchanged

What are the tradeoffs proposes by the "Manifesto for Agile Software Development"?

- Rapid delivery is valued over intermediate work products - Working software is valued over comprehensive documentation - Customer collaboration is valued over contract negotiation - Responding to change valued over following a plan

Describe the differences between Black-box testing and White-box testing.

-"Black Box Testing is a software testing method in which the internal structure/ design/ implementation of the item being tested is NOT known to the tester" -"White Box Testing is a software testing method in which the internal structure/ design/ implementation of the item being tested is known to the tester."

Describe the differences between the software engineering terms COUPLING and COHENSION?

-Cohesion implies that a component or class encapsulates only the attributes and operations closely related to one another and to the class itself. -Coupling is a qualitative measure of the degree to which components are connected to one another.

Describe what is accomplished during the component qualification, adaptation, and composition activities of component-based development.

-Component qualification is the task of examining candidate library components and ensuring that they perform the function required for the new application. -During component adaptation any component conflicts that surface when a library component is added to the new application are dealt with by wrapping the component (sometimes a new component must be engineered). -During component composition, the qualified, adapted, and newly engineered components are used to populate the new application architecture.

Describe the Component-Level design for WebApps.

-Component-level design for WebApps considers both content and functionality as it is delivered by a Web-based system. -Content design at the component level focuses on content objects and the manner in which they may be packaged for presentation to a WebApp end user. Functional design for WebApps focuses on processing functions that manipulate content, perform computations, query and access a database, and establish interfaces with other systems. All component- level design principles and guidelines apply.

What are the features of the SCM Repository?

-Data integrity/Information sharing/Tool integration/Data integration/Methodology enforcement/Document standardization *Versioning/Dependency/Requirement/Configuration/Audit trait

What are the Major Attributes should be used to assess the quality of a WebApp?

-FREMU- Functionality/ Reliability/ Efficiency/ Maintainability/ Usability

List the Quality Attributes that should be tested for a MobileApp.

-FREMUP- Functionality/ Reliability/Efficiency/Maintainability/Usability/Portability

What is the ROLE of context in MobileApp design?

-It helps distinguish the developmental and technical considerations needed in designing a MobileApp i.e. power management, computational and storage limits, security and privacy models and policies, ui limitations. -Users expect MobileApps to deliver personalized user experience based on the physical location of a device in relation to the available network features

Why is Regression testing an important part of any integration testing procedure?

-It re-executes some subsets of tests that have already been conducted to ensure that changes have not propagated unintended side effects. Helps ensure that changes do not introduce unintended behavior or errors -This type of testing is used for new modules that are introduced into the system. Even though the tests work fine before. This form of testing makes sure that this new module does not introduced unintended behaviors or new errors

How are tasks, actions, and activities related to software process models?

-Linear process flow executes each of the five frameworks in sequence -Iterative process flow repeats one or more activities before going the next -Evolutionary process flow executes the activities in a circular manner -Parallel process flow executes one or more activities in parallel with other activities

How does the object-oriented view of component-level design differ from the traditional view?

-OOV - detailed microscopic - very detailed. -TV - Control, Infrastructure and Domain (macro) - overview of C, I, D

Describe Object-Oriented Unit Testing.

-Object Oriented is the equivalent of unit testing for conventional software. Unlike unit testing of conventional software, which tends to focus on the algorithmic detail of a module and the data that flow across the module interface, class testing for Object -Oriented software is driven by the operations encapsulated by the class and the state behavior of the class. -You do not test an operation in isolation but rather as part of a class This is because the class are encapsulated which means that all the class and instances of those classes are encapsulated -This results in that the smallest units that can be tested are methods in the classes

What is the difference between REFACTORING and RE-ENGINEERING?

-Reengineering takes time, it costs significant amounts of money, and it absorbs resources that might otherwise occupied on immediate concerns. It is a rebuilding activity that is encompassed in a reengineering process model. -Refactoring: Reorganization technique that simplifies the design of a component without changing its function of behavior. It is suggested for many agile methods.

What are the Strategies for Managing Legacy Systems discussed in class?

-Scrap the system completely and modify business processes so that it is no longer required; -Continue maintaining the system; -Transform the system by re-engineering to improve its maintainability; -Replace the system with a new system.

Describe the types of Dependencies that can exist in an Architectural Design.

-Sharing dependencies - represent dependence relationships among consumers who use the same resource of producers who produce for the same consumers. -Flow dependencies - dependence relationships between producers and consumers of resources -Constrained dependencies - which represent constraints on the relative flow of control among a set of activities.

What is Unit Testing?

-Unit testing focuses verification effort on the smallest unit of software design- the software component or module -Unit Testing is a level of software testing where individual units/ components of a software are tested. The purpose is to validate that each unit of the software performs as designed. -Boundary testing is the most important task

What are the key differences between Validation testing goals and Acceptance testing goals?

-Validation testing goals: it ensures that all functional requirements are satisfied -Acceptance testing goals: are designed to help the customer validate all of the requirements. Acceptance testing is used when the software is made for a customer.

What is the difference between Validation and Verification?

-Verification refers to the set of tasks that ensure that software correctly implements a specific function. Are we building the product right? -Validation refers to a different set of tasks that ensure the software that has been built is traceable to customer requirements. Are we building the right product?

List the 3 broad categories of information that make up the software configuration.

1. Computer programs (both source level and executable forms). 2. Work products that describe the computer programs (targeted at various stakeholders). 3. Data or content (contained within the program or external to it).

List the 4 design models required for a complete specification of a software design and the role of each.

1. Data design - high level model depicting user's view of the data or information. 2. Architecture design - gives an overall view of the system; equivalent to a floorplan of a house 3. Interface design - interface depicts a set of operations that describe the externally observable behavior of a class and provides access to its operations 4. Component-level design - Describes the internal detail of each software component.

What are the 6 Steps in the engineering process model for developing MobileApps?

1. Formulation / 2. Planning / 3. Analysis / 4. Engineering / 5. Implementation and Testing / 6. User evaluation

What are the steps used to complete the component-level design for a software development project?

1. Identify all design classes that correspond to the problem domain. 2. Identify all design classes that correspond to the infrastructure domain. 3. Elaborate all design classes that are not acquired as reusable components. 4. Describe persistent data sources (databases and files) and identify the classes required to manage them. 5. Develop and elaborate behavioral representations for a class or component. 6. Elaborate deployment diagrams to provide additional implementation detail. 7. Refactor every component-level design representation and always consider alternatives.

List 3 Principles that should be applied when building any User Interface.

1. Place the user in control 2. Reduce the user's memory load 3. Make the interface consistent

What are the Elements that make up a Software Architectural style?

1. Set of components that perform required system functions. 2. Set of connectors allowing communications among the components. 3. Constraints describing how the components maybe integrated to form a system. 4. Semantic models that enable the designer to understand the overall system properties by analyzing the known properties of its components

What is Equivalence Partitioning?

Equivalence Partitioning is a black-box testing method that divides the input domain of a program into classes of data from which test cases can be derived. An ideal test case single-handedly uncovers a class of errors that might otherwise require many test cases before a general error is observed.

Summarize the steps used in a WebApp testing strategy.

1. The content model for the WebApp is reviewed to uncover errors. 2. The interface model is reviewed to ensure that all use cases can be accommodated. 3. The design model for the WebApp is reviewed to uncover navigation errors. 4. The user interface is tested to uncover errors in presentation and/or navigation mechanics. 5. Selected functional components are unit tested. 6. Navigation throughout the architecture is tested. 7. The WebApp is implemented in a variety of different environmental configurations and is tested for compatibility with each configuration. 8. Security tests are conducted in an attempt to exploit vulnerabilities in the WebApp or within its environment. 9. Performance tests are conducted. 10. The WebApp is tested by a controlled and monitored population of end users; the results of their interaction with the system are evaluated for content and navigation errors, usability concerns, compatibility concerns, and WebApp security, reliability, and performance.

Describe 3 Control Structure Testing

1.Condition Testing: the logical conditions contained in a program module. 2.Data flow Testing:Selects paths of a program according to the locations of definitions and uses of variables in the program. 3.Loop Testing: (white box testing) Focuses on the validity of loop constructs *Four types: simple, concatenated loops, nested loops and unstructured loops

List 4 types of Systems Tests.

1.Recovery testing 2.Security testing 3.Stress testing 4.Performance testing * Deployment testing -RSSPD- (do we need Deployment)

List Guidelines that should be followed in a MobileApp testing strategy.

1.Understand the network and device landscape before testing to identify bottlenecks. 2.Conduct tests in uncontrolled real-world test conditions. 3.Select the right automation test tool. Ideally the tool should support all desired platforms, allow testing for various screen types, resolutions, and input mechanisms. 4.Use the weighted device platform matrix method to identify the most critical hardware/platform combination to test. 5.Check the end-to-end functional flow in all possible platforms at least once. 6.Conduct performance testing, GUI testing, and compatibility testing using actual devices 7.Measure performance only in realistic conditions of wireless traffic and user load

How does Business Process Re-engineering (BPR) differ from Software Re-engineering?

BPR often results in new software functionality, whereas software reengineering works to replace existing software functionality with better, more maintainable software.

Why are Evolutionary models considered by many to be the best approach to software development in a modern context?

Because these models are designed to grows and changes. Evolutionary models are interactive. They are characterized in a manner that enables you to develop increasingly more complete versions of the software.

Evolution Process- Diagram

Change request/Impact analysis /Release planning/Change implementation /System release Fault repair/Platform adaptation/System enhancement

What types of testing should be followed in a comprehensive MobileApp testing strategy.

Conceptual testing/ Unit and system testing/ User experience testing/ Stability testing/ Connectivity testing/ Performance testing/ Device compatibility testing/ Security testing/ Certification testing

Which ones are WELL-KNOWN architectural styles/patterns?

Data-Centered/ Data-Flow/ Call-and-Return/ Object-Oriented/ Layered

What is a Design Pattern?

Design patterns provide a codified mechanism for describing problems and their solution in a way that allows the software engineering community to capture design knowledge for reuse

Describe the phases of the Prototyping Model for Software Development?

Identify/Develop/Review/Revise

What framework activities are completed when following an evolutionary (or spiral) user interface development process?

Interface analysis and Modeling Design/Construction/Validation

List 4 content Architectures found in WebApps?

Linear/Grid/Hierarchical/Networked "Pureweb"

Describe the Principle of information hiding as it applies to software design.

Modules should be designed so that information is inaccessible to other modules that have no need for such information;

What are the Attributes of a Good Software Test?

Operability/Observability/Controllability/Decomposability/Simplicity/Stability/Understandability -OOCDSSU-

Test Driven Development (TDD)- Diagram

Pass: Identify New Functionality/Write Test/Run Test Fail: Implement Functionality and Refactor

Why it important for software processes to be agile?

Provides Stability, Control, and Organization to an activity that can become quite chaotic.

What activities are Associated with Reverse Engineering?

Restructure code/ Extract abstractions/ Refine and simply

What are the Primary Advantages of the component-based process model for software engineering?

Software re-use, Reduction on development cycle time, Reduction on project cost.

What are the Benefits of Software Re-structuring?

Software restructuring modifies source code and/or data in an effort to make it amenable to future changes ---------------------------- It makes physical modifications to existing data structures are made to make the data design more effective. It makes source code amendable to future changes

Which ones are the Elements of Software Quality Assurance? "SQA-Final"

Standards/Reviews and audits/Testing/Error,defect collection and analysis/ChangeManagement/Education/VenManagement/SecurityManagement/Safety/Risk Management. -SRTECEVSSR-

Software Testing Process Model- Diagram

Test Cases/Test Data/Test Results/Test Reports Design Test Cases/Prepare Test Data/Run Program with Test Data/Compare Results to Test Cases

What is an MVC Pattern?

The MVC architecture decouples the user infrastructure from WebApp functionality and information content.

What is the intent of DOMAIN engineering in CBSE?

The intent of domain engineering is to identify, construct, catalog, and disseminate a set of software components that have applicability to existing and future software products.

What are benefits of Incremental Delivery?

We can offer the product in a much shorter amount of time developing the core portion of the product then the extra features in the following updates by increments.

What is Forward Engineering?

process of moving from high level abstractions and logical designs to the physical implementation of a system ---------------------- Forward engineering not only recovers design information from existing software but uses this information to alter or reconstitute the existing system in an effort to improve its overall quality. In most cases, reengineered software recreates the function fo the existing system and also adds new functions and/or improves overall performance

Describe the Evolution Process discussed in class

· Change implementation is similar to iteration in development of new features · First stage of change implementation involves understanding how the original program works *Change request/Impact analysis /Release planning/Change implementation /System release Fault repair/Platform adaptation/System enhancement* · Ideal software change implementation *Proposed changes/ Requirement analysis/Requirements updating. Software development* · Urgent change implementation *Change request/ Analyze source/ Modify code/ Deliver modified system

What Questions should be answers to assess usability of a Mobile Device?

• Is the user interface consistent across applications? • Is the device interoperable with different network services • Is the device acceptable in terms of stakeholder values" in the target market area?


Kaugnay na mga set ng pag-aaral

Exam 5: Child and Adolescent Mental Health

View Set

Caring for Central Vascular Access Devices (CVAD) - EXAM

View Set

Economics- Unit 3: Microeconomics

View Set

Nursing 311: Cellular regulation (Evolve NCO)

View Set

Psych: Foundations of Modes and Care

View Set

Chapter 1 Health Psychology:, Chapter 2 Health Psychology, Chapter 3 Health Psych, Chapter 4 Health Psychology, Chapter 5 Health Psychology, Chapter 6 Health Psychology Multiple Choice, Chapter 7 Health Psychology Multiple Choice, Chapter 8 Health Ps...

View Set

AP Physics 1 Forces and Newton's Law Practice

View Set