Showing posts with label object oriented software engineering. Show all posts

What are the characteristics of modern website applications or web apps or software?

The following attributes are encountered in the vast majority of WebApps.

Network intensiveness. A WebApp resides on a network and must serve the needs of a diverse community of clients. The network may enable worldwide access and communication (i.e., the Internet) or more limited access and communication (e.g., a corporate Intranet).

Concurrency. A large number of users may access the WebApp at one
time. In many cases, the patterns of usage among end users will vary greatly.
Unpredictable load. The number of users of the WebApp may vary by
orders of magnitude from day to day. One hundred users may show up on
Monday; 10,000 may use the system on Thursday.

Performance.  If a web app user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere.

Availability. Although expectation of 100 percent availability is unreasonable, users of popular WebApps often demand access on a 24/7/365 basis. Users in Australia or Asia might demand access during times when traditional domestic software applications in North America might be taken off-line for maintenance.

Data-driven. The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end user. In addition, WebApps are commonly used to access information that exists on databases that are not an integral part of the Web-based environment (e.g., e-commerce or financial applications).

Content sensitive. The quality and aesthetic nature of content remain an important determinant of the quality of a WebApp.

Continuous evolution. Unlike conventional application software that evolves over a series of planned, chronologically spaced releases, Web applications evolve continuously. It is not unusual for some WebApps (specifically, their content) to be updated on a minute-by-minute schedule or for content to be independently computed for each request.

Immediacy. Although immediacy—the compelling need to get the software to market quickly—is a characteristic of many application domains, WebApps often exhibit a time-to-market that can be a matter of a few days or weeks.

Security. Because web apps are available via network access, it is difficult, if not impossible, to limit the population of end users who may access the application. In order to protect sensitive content and provide secure modes
Learn more »

What do you mean by Test Case? What are the structure of test plan? Explain with an example.

Definition

Test case has components that describes and input, action on event and a expected response to determine if a feature of an application is working correctly.

Levels of Test Case

There are four levels of test cases:
  1. Level 1: Basic test cases are from application specific
  2. Level 2: Practical stage in which writing test cases depends on actual functional and system flow of the application.
  3. Level 3: Group some test cases and write a test procedure where 0<n<=10
  4. Level 4: Automation of the project

Example

  • Test Case Id
  • Unit to test
  • Assumptions
  •  Test data
  • Steps to be executed
  • Expected result
  • Pass/fail
  • Comments

Structure of test Plan

  1. Test plan identifier
  2. Introduction 
  3. Test item
  4. Features to be tested
  5. Features not be tested
  6. Approach
  7. Items pass/fail criteria
  8. Suspension criteria and resumption criteria
  9. Test deliverables
  10. Testing tasks
  11. Environment needs
  12. Responsibilities
  13. Schedule
  14. Risk and contingencies
  15. Approvals


Learn more »

What do you mean severity and priority of bugs in software testing?

Bugs severity means the degree of error impact on operations. There are four category of severity:
  1. Critical: It causes failure of software system, subsystem or any program of the software. It causes loss of critical data.
  2. High: It does not cause failure but causes system to produce incorrect, incomplete, inconsistent results and impairs usability.
  3. Medium: It does not cause failure, it does not impair usability and does not influence in the fluent work of the system.
  4. Low: It is an aesthetic bug, or is a result of non-conformance to standard.
Bugs priority deals with the urgency of resolving. These are also of four kinds:
  1. Immediate: It should be resolved immediately.
  2. High: These are resolved before the release of software and are solved as soon as possible.
  3. Medium: These are repaired after some serious bugs are resolved.
  4. Low: It can be resolved in major software revision or may not be resolved at all. 


Learn more »

Eight Top questions asked about project Managers and their answers.

PROJECT MANAGEMENT

Questions

1. What is the role of a Project Manager?
2. Why are project management techniques used by organisations?
3. When were the first project management techniques documented?
4. Project management methodology has four distinct phases. What are they?
5. What does Phase 1, the Investigation phase of project management, involve? Who undertakes this phase?
6. List four steps in Phase 2, the Planning and Design Phase of project management.
7. What does Phase 3, the Production Phase of project management involve?
8. In the Evaluation and Monitoring phase of project management what questions might a Project Manager address?

Answers

1. Project Managers concern themselves with how to get a particular job done. They organise people, equipment and procedures in an appropriate way to get a project completed in time and within budget.

2. Project Management techniques ensure that organisational objectives and system objectives are met in a timely, accurate, relevant and complete way. They provide the adequate control of people, resources and procedures and clearly identify tasks that must be completed and the desired completion time.

3. The first documented techniques were in the early 1900s with the development of the GANTT chart method.

4. Phase 1: Investigation
    Phase 2: Planning and Design
    Phase 3: Production
    Phases 4: Monitoring and Evaluation

5. This phase involves the initial commissioning of the project, the identification of initial aims and goals and investigation into the possible way the project can be completed. The Investigation phase is undertaken by top-level management or strategic planners.

6. Choose from any of the following:

   Defining the exact purpose of the project and clearly defining goals
   Breaking the project into tasks or activities and defining the purpose of each
   Estimating the shortest and longest possible time required for each activity
• Identifying milestones and key time markers in the project that keep the project     on schedule
   Determining the sequence of each activity and any constraints affecting the sequence
   Deciding which activities should be completed before others can commence
   Identifying activities that can be done simultaneously
   Assigning resources, people, materials and equipment to activities
   Costing of resources
   Drawing up a calendar of events

7. This phases involves: providing resources, completing the set activities, monitoring, controlling and recording the progress of the project on a GANTT chart, comparing current progress to the planned schedule, updating and refining the schedule as required and monitoring resources to ensure there are no problems meeting the budget.

8. The Project Manager might address issues of quality asking questions such as: How well it has the project met the objectives? Is the final quality of the product satisfactory? The Manager might also address issues of cost: Did the project stay within the budget specified?  Lastly issues of time would be considered: Did the project finish on or before the specified date? Was it the shortest possible time for the project?
Learn more »

Important Object Software Engineering Interview questions.

  1. What is an object?

    Answer: An object is anything that exists in the real world, such as a person, a place or a thing. It can be any noun or noun phrase, either physical or conceptual. An object contains data and functions as its integral parts. The data integral to an object are called attributes of the object and the functions are called methods.
  2. Differentiate between class and object.

    Answer: A class is a group of similar objects. It is a blueprint that is used to create objects. A single object is simply an instance of a class.
  3. What is Inheritance?

    Answer: Inheritance is the process by which objects acquire the properties of objects of other class. When two classes have parent child relationship, the child class (subclass) inherits the properties of the parent class (super class). Inheritance is specified by 'Is-A Relationship'.
  4. What is meant by Encapsulation in OOSD?

    Answer: Encapsulation means containing or packaging data within an object. Here data and procedures are tied together to prevent them from external misuse. Encapsulation also means data hiding, which is the process of hiding all aspects of an object that do not contribute to its essential characteristics.
  5. What is meant by Encapsulation in the context of object technology?

    Answer: Polymorphism means the ability to take more than one form. It means the same operation behaving differently on different classes. Polymorphism is achieved by method overloading and method overriding.
  6. What are different types of relationships?

    Answer: There are three main types of relationships, as given below.
    C) Is-A Relationship: This relationship specifies inheritance.
    D) Has-A Relationship: This relationship is used for Aggregation. Here, a class contains another class as its member.
    E) Uses-A Relationship: This relationship represents Association.
  7. What is Object Identifier (OID)?

    Answer: Whenever an object is created, it is uniquely identified in the system by a unique code called OID or sometimes as unique identifier (UID). OID is never changed or deleted even if the objects name or its location is changed or the object is deleted.
  8. Write about the four phases in OMT?

    Answer: OMT consists of four phases. These are:
    1. Analysis: In this phase an abstraction of what the desired system must do is made in terms of attributes and operations.
    2. System design: The overall architecture and high-level decisions about the system are made.
    3. Object design: It produces a design document, consisting of detailed objects static, dynamic and functional models.
    4. Implementation: This activity produces reusable, extendible, robust code.
  9. What is object model of OMT?

    Answer: The object model describes the static structure of the objects in the system and their relationships. It represents the data aspects of the system.
  10. What are different diagrams used in Booch methodology?

    Answer: Booch's methodology uses six types of diagrams to depict the underlying design of a system. These are: (1) Class Diagram, (2) Object Diagram, (3) State Transition Diagram, (4) Module Diagram, (5) Process Diagram and (5) Interaction Diagram.
  11. What are Use-cases?

    Answer: Use-cases are scenarios for understanding the user requirements. A use-case is depicted through the use-case diagram. The use-case diagram has mainly two types of components, namely, 'actors' and 'use-cases'. Actors in the use-case diagram are represented by stick men and use-cases by ovals.
  12. Write a short note on Objectory.

    Answer: Jacobson along with others developed a complete set of tools required for OO software engineering. This was called object factory for software development and is often referred to as ObjectOry or 'Objectory'. It is built around several models. These are: Use-case model, Requirement model, Domain object model, Analysis model, Design model, Implementation model and Test model.
  13. Why do we go for the unified approach?

    Answer: The unified approach combines the best practices, processes, methodologies and guidelines of different OO methodologies. It uses UML (Unified Modeling Language) notations and diagrams that are considered as universal standard in OO system development.
  14. What is UML?

    Answer: UML stands for Unified Modeling Language. It is a language for specifying, constructing, visualizing and documenting the software system and its components. It is accepted by Object Management Group (OMG) as standard for modeling in OOSD.
  15. Write the primary goals of UML.

    Answer: The primary goals of UML in the design are as follows:
    • Provide users a ready-to-use, expressive visual modeling language.
    • Provide extensibility and specialization mechanisms to extend the core concepts.
    • Be independent of any particular programming language or development process.
    • Encourage the use of OO tools and their demand in the market.
    • Support higher-level development concepts.
    • Integrate best practices and methodologies.
  16. Enumerate different diagrams of UML.

    Answer: Different diagrams used in UML are: (1) Use-case diagram, (2) Class diagram, (3) Object diagram, (4) Activity diagram, (5) State diagram, (6) Sequence diagram, (7) Collaboration diagram, (8) Component diagram and (9) Deployment diagram.
  17. What are various approaches for identifying classes?

    Answer: There are different alternative approaches for identifying classes. These are: (1) Noun phrase approach, (2) Classical approach, (3) Function point (FP) approach, (4) Domain analysis approach, (5) Structural approach, (6) CRC approach and (7) Use-case-driven approach.
  18. What do you mean by relevant, fuzzy and irrelevant classes?

    Answer: In the noun phrase approach the list of nouns is divided into three categories:
    • Relevant classes: These classes have a purpose. Each class must have a purpose and should be clearly defined and necessary.
    • Irrelevant classes: These classes have no purpose and are unnecessary. It is safe to scrap these irrelevant classes.
    • Fuzzy classes: Fuzzy classes are those classes that we are not sure about. These classes cannot be determined as either relevant or irrelevant and thus considered as fuzzy.
  19. What are the sources used for finding the candidate classes?

    Answer: Some sources used for finding candidate class and object are: (1) People - who carry out some functions, (2) Places - set aside for people or things, (3) Devices - with which the application interacts, (4) Organization, (5) Concepts, principles or ideas, (6) Events - that happen, (7) Other external systems with which the application interacts and (8) Roles played by different roles, the users.
  20. What is CRC?

    Answer: CRC stands for class, responsibility and collaborator. It is a technique used for identifying the attributes and methods of classes.
  21. Write the three steps of the CRC process?

    Answer: The CRC process consists of three steps as given below.
    1. Identify classes' responsibilities (and identify classes)
    2. Assign responsibilities
    3. Identify collaborators
  22. How can we identify the methods?

    Answer: Methods usually correspond to queries about attributes and sometimes association of objects. Methods determine the value of the attributes. For example, if 'cost' is an attribute of a product, then getCost() can be a corresponding method.
  23. List the main activities of the OO design process?

    Answer: The main activities of the OO design process are listed as under.
    • Designing classes (their attributes, methods, associations, structures etc.)
    • Designing the access layer
    • Designing the user interface
    • Testing user satisfaction and usability
    • Iteratively refining the design
  24. Define axiom? What are the two design axioms applicable to the OO design?

    Answer: An axiom is a fundamental truth that always is observed to be valid. The axioms may not be proven or derived but they cannot be invalidated by counterexamples or exceptions. There are two design axioms applied to the OO design.
    • Axiom 1: The independence axiom. Maintain the independence of components.
    • Axiom 2: The information axiom. Minimize the information content of the design.
    F) Axiom 1 deals with relationships between system components and Axiom 2 deals with the complexity of design.
  25. Define corollary? Give an example of a corollary derived from design axioms.

    Answer: A corollary is a proposition that follows from an axiom or another proposition that has been proven. 'Uncoupled design with less information content' is an example of a corollary derived from design axioms.
  26. What are different types of coupling in the OO design?

    Answer: The OO design has three types of coupling. These are:
    1. Interaction Coupling: It is a measure of the number of message types an object must send to another object and the number of parameters passed with those messages.
    2. Identity Coupling: It refers to the level of connectivity in a design. For example, in case of a reference from one object to another, the object must know the identity of the other object.
    3. Inheritance Coupling: It refers to the coupling between super-classes and sub-classes. A sub-class is coupled to its super-class in terms of attributes and methods.
  27. What do you mean by cohesion in the OO design?

    Answer: Cohesion can be defined as the interactions within a single object or software component. It reflects the 'single-purpose-ness' of an object.
  28. Define anti-patterns.

    Answer: An anti-pattern represents a worst practice while a pattern represents a best practice. Anti-patterns come in two types:
    1. Those that describe a bad solution to a problem resulting in a bad situation
    2. Those that describe how to get out of a bad situation
  29. Write the differences between design patterns and frameworks.

    Answer: Design patterns are more abstract, are smaller architectural elements and are less specialized than frameworks. A framework is executable software whereas design patterns represent knowledge and experience about the software.
Learn more »