Object Oriented Software Engineering

अब Quizwiz के साथ अपने होमवर्क और परीक्षाओं को एस करें!

Project

-Has a unique purpose -Is temporary -Is developed using progressive elaboration -Requires resources, often from various areas -Should have a primary customer or sponsor -The project sponsor usually provides the direction and funding for the project -Involves uncertainty

Successful project management means meeting three goals:

-Scope: What work will be done as part of the project? What unique product, service, or result does the sponsor expect from the project? -Time: How long should it take to complete the project? What is the project's schedule? -Cost: What should it cost to complete the project? What is the project's budget?

Project stakeholders

-Stakeholders are the people involved in or affected by project activities Stakeholders include: 1. The project sponsor 2. The project manager 3. The project team 4. Support staff 5. Customers 6. Users 7. Suppliers 8. Opponents to the project

Improve Creator Pattern

1) If classes are very similar extend them from a class or interface. 2) Implement getters and setters for all classes. 3) Implement the saving and loading of class information from file and databases inside of the classes.

Classic Three-Tier Architecture

A classic description of the vertical tiers is: 1. Presentation - windows, reports, and so on. 2. Application Logic - tasks and rules that govern the process 3. Storage - persistent storage mechanism. The singular quality of a three-tier architecture is the separation of the application logic into a distinct logical middle tier of software. The presentation tier is relatively free of application processing; windows forward tasks to the middle tier. The middle tier communicates with the back-end storage layer.

Two-Tier design

A disadvantage of a two-tier design is the inability to represent application logic in separate components, which inhibits software reuse.

Requirements based testing

A general principle of requirements engineering is that requirements should be testable. Requirements-based testing is a validation testing technique where you consider each requirement and derive a set of tests for that requirement.

OOD - Object Oriented Design

After analysis of the system you start to design a software to aid in the system and make it quicker or easier. You use the diagrams to help make the system, think of the diagrams as instructions how to build the system effectively, this also aids in making sure that most issues will be ironed out in the design process.

Testing guidelines

Are hints for the testing team to help them choose tests that will reveal defects in the system.

Cyclomatic Complexity

Cyclomatic Complexity is a software metric that provides a quantitative measure of the logical complexity of a program.

Testing policies

Define the approach to be used in selecting system tests: 1. All functions accessed through menus should be tested. 2. Combinations of functions accessed through the same menu should be tested. 3. Where the user input is required, all functions must be tested with correct and incorrect input.

Stress testing

Exercises the system beyond its maximum design load. Stressing the system often causes defects to come to light. Systems should not fail catastrophically. Stress testing checks for unacceptable loss of service or data. Stress testing is particularly relevant to distributed systems that can exhibit severe degradation as a network becomes overloaded.

Multi-Tiered Object-Oriented Architectures

In an object-oriented design, the application logic tier is can decomposed into finer layers: Domain Objects: Classes representing domain concepts, such as a sale. Services: Service objects for functions such as database interaction, reporting, communications, security, and so on. It is possible to add additional tiers and further decompose the existing ones. For instance, the services tier may be divided high-level and low-level services.

Partition testing

Input data and output results often fall into different classes where all members of a class are related. Partitions are groups of data with common characteristics E.g. All negative numbers, names < 30 chars, etc. Each of these classes is an equivalence partition or domain where the program behaves in an equivalent way for each class member. Test cases should be chosen from each partition.

Interface testing

Interface: what the program / object / component presents to the world Takes place when modules or sub-systems are integrated to create larger systems. Objectives are to detect faults due to interface errors or invalid assumptions about interfaces. Particularly important for object-oriented development as objects are defined by their interfaces.

Change management

Involves analysing and defining all changes facing the organisation and developing programs to reduce the risks and costs, and to maximise the benefits of change

Integration testing

Involves building a system from its components and testing it for problems that arise from component interactions.

Abstraction

Is a technique for arranging complexity of computer systems, Abstraction is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics.

Iterative and incremental software development

Iterative and incremental software development is a method of software development that is modeled around a gradual increase in feature additions and a cyclical release and upgrade pattern. Iterative and incremental software development begins with planning and continues through iterative development cycles involving continuous user feedback and the incremental addition of features concluding with the deployment of completed software at the end of each cycle.

Encapsulation

Means hiding the independent parts from the implementation, allowing to build invisible parts to the external world. That's what encapsulation is, there is a system that is closed within a capsule, but we don't care how it works we just want the product of that inner working system. The mailman here delivers letters to us, but how does he get the letters? There is a whole process behind that, but we DO NOT care about that, we just want our letters! Think of private variables and public variables, private can only be seen in that class, where public can be seen outside of it.

Contract

Name. Responsabilities. Exceptions. Type. Post-conditions.

Use Case Template

Name. Scope. Description. Preconditions. Activation. Main Flow Description. Alternate Flow Description. Exceptional Flow Description. Termination. Post Conditions.

Performance testing

Part of release testing may involve testing the emergent properties of a system, such as performance and reliability. Performance tests usually involve planning a series of tests where the load is steadily increased until the system performance becomes unacceptable.

Polymorphism

Polymorphism means many forms, the same named behaviour may be completed differently for different objects/classes.

Observer Pattern

Problem: Used when multiple displays of state are needed.

Expert Pattern

Problem: What is the most basic principle by which responsibilities are assigned in object-oriented design? Solution: Assign a responsibility to the information expert - the class that has the information necessary to fulfill the responsibility.

Creator Pattern

Problem: Who should be responsible for creating a new instance of some class? The creation of objects is one of the most common activities in an object-oriented system. Solution: Assign class B the responsibility to create an instance of class A if one of the following is true: 1. B aggregates A objects. 2. B closely uses A objects. 3. B has initializing data that will be passed to A when it is created.

Controller Pattern

Problem: who should be responsible for handling a system event? A system event is a high level system event generated by an external actor. They are associated with system operations - operations of the system in response to system events. A controller is a non-user interface object responsible for handling a system event. A controller defines the method for the system operation. Solution: Assign the responsibility for handling a system event to a class representing one of the following choices: 1. Represents the overall "system" (facade controller). 2. Represents the overall business or organization (facade controller). 3. Represents an artificial handler of all system events of a use case. 4. Represents something in the real-world that is active (for example, the role of a person) . ******************************* Presentation layer does not handle system events. *******************************

Project Management

Project management is "the application of knowledge, skills, tools and techniques to project activities to meet project requirements"

Qualified association

Qualified associations are used with one-to-many and many-to-many associations The qualifier distinguishes among the set of objects at the many end of the association. A qualified association is the UML equivalent of a programming concept known as a dictionary. The qualifier is drawn as a small box at the end of the association near the class from which the association should be read.

Structural testing

Sometime called white-box testing. Derivation of test cases according to program structure. Knowledge of the program is used to identify additional test cases. Objective is to exercise all program statements.

System testing

Testing of groups os components integrated to create a system or sub-system.

Component testing

Testing of individual program components. Usually the responsability of the component developer. Tests are derived from developer's experience

Model-View Separation pattern

The Model View Separation pattern states that model objects should not have direct knowledge of view objects. Motivation for Model-view separation: To allow separate development of the model and user interface layers. To minimize the impact of requirement changes in the interface upon the domain layer. To allow new views to be easily connected to an existing domain layer, without affecting the domain layer. To allow multiple simultaneous views of the same model object. To allow execution of the model layer independent of the user interface layer.

Inheritance

The attributes defined in an object class can be "inherited" or reused by another object class.

Path testing

The objective of path testing is to ensure that the set of test cases is such that each path through the program is executed at least once.

Release testing

The process of testing a release of a system that will be distributed to customers. Primary goal is to increase the supplier's confidence that the system meets its requirements. Release testing is usually black-box or functional testing

Validation testing

To demonstrate to the developer and the system customer that the software meets its requirements; A successful test shows that the system operates as intended.

Defect testing

To discover faults or defects in the software where its behaviour is incorrect or not in conformance with its specification; A successful test is a test that makes the system perform incorrectly and so exposes a defect in the system.

Use Cases and Testing

Use cases can be a basis for deriving the tests for a system. They help identify operations to be tested and help design the required test cases. From an associated sequence diagram, the inputs and outputs to be created for the tests can be identified.

Creator Pattern

What object should create object B? Object A should create object B if: Object A contains Object B. Object A saves object B. Object A uses Object B. Object A has all the data needed to instantiate object B.

OOA - Object Oriented Analysis

Your analysing the system that you want to build software for. You may sit with a client and get all the information about the way they do things. AKA, they move the box from Position A to Position B, so the inner workings of a system.


संबंधित स्टडी सेट्स

Business Law Chapter 1: The Nature and Sources of Law

View Set

CITI - SoCRA - GCP for Clinical Trials with Investigational Drugs and Biologics (ICH Focus)

View Set

Final: Dependent and Independent Variables

View Set

End-Of-Life Issues Practice Questions

View Set

U.S. History Industrialization, Immigration, and Urbanization Lesson Review

View Set