Posts

Showing posts from April, 2021

Explain general format of Software Requirement Specification (SRS).

 Solution:- Software requirements specification (SRS) is a document that is created when a detailed description of all aspects of the software to be built must be specified before the project is to commence.  It is important to note that a formal SRS is not always written. In fact, there are many instances in which effort expended on an SRS might be better spent in other software engineering activities.  However, when software is to be developed by a third party, when a lack of specification would create severe business issues, or when a system is extremely complex or business critical, an SRS may be justified.  Karl Wiegers has developed a worthwhile template that can serve as a guideline for those who must create a complete SRS.  A topic outline follows: 1. Introduction 1.1. Purpose1.2. Document Conventions 1.3. Intended Audience and Reading Suggestions 1.4. Project Scope 1.5. References 2. Overall Description 2.1 Product Perspective 2.2 Product Features 2.3 U...

Describe Data Dictionary. Wire any four advantages.

 Solution:- Data dictionary:- 1. Data dictionaries are lists of all of the names used in the system models. Descriptions of the entities, relationships and attributes are also included.  2. Data dictionary as the central database for the description of all data objects.  3. Once entries in the dictionary are defined, entity-relationship diagrams can be created and object hierarchies can be developed. Many CASE workbenches support data dictionaries. Advantages: 1. Support name management 2. Avoid duplication 3. Store of organizational knowledge linking analysis, design and implementation 4. It is a valuable reference in any organization because it provides documentation. 5. It improves the communication between system analyst and user by establishing consistent definitions of various items terms and procedures. 6. It is a good tool for manage operators and other members of the development team

Explain. (i). Components-level design elements (ii). Deployment level design elements. With respect to design model.

  Solution:- Component-level design elements: 1. Component-level design defines data structures for all local data objects and algorithmic detail for all processing that occurs within a component and an interface that allows access to all component operations . 2. Within the context of object-oriented software engineering, a component is represented in UML diagrammatic form.  3. The design details of a component can be modeled at many different levels of abstraction. A UML activity diagram can be used to represent processing logic. 4. Detailed procedural flow for a component can be represented using either pseudo code or some other diagrammatic form.  5. Algorithmic structure follows the rules established for structured programming. Data structures, selected based on the nature of the data objects to be processed are usually modeled using pseudo code or the programming language to be used for implementation.  Deployment-level design elements:  1. indicate how so...

What do you mean by testing strategies?

Image
 Solution:- A strategy for software testing may also be viewed in the context of the spiral.  Unit testing begins at the vortex of the spiral and concentrates on each unit (e.g., component,class, or Web App content object) of the software as implemented in source code. Testing progresses by moving outward along the spiral to integration testing, where the focus is on design and the construction of the software architecture.  Taking another turn outward on the spiral, which encounters validation testing, where requirements established as part of requirements modeling are validated against the software that has been constructed.  Finally, system testing, where the software and other system elements are tested as a whole. To test computer software, spiral out in a clockwise direction along streamlines that broaden the scope of testing with each turn. 1. Testing begins at the component level and works "outward" toward the integration of the entire computer-based system....

Explain basic principles of project scheduling.

  Solution:- Compartmentalization: The project must be compartmentalized into a number of manageable activities, actions and tasks; both the product and the process are decomposed. Interdependency: The interdependency of each compartmentalized activity, action or task must be determined. Some tasks must occur in sequence while others can occur in parallel. Some actions or activities cannot commence until the work product produced by another is available. Time allocation: Each task to be scheduled must be allocated some number of work units. In addition, each task must be assigned a start date and a completion date that is a function of the interdependencies. Start and stop dates are also established based on whether work will be conducted on a full-time or part-time basis. Effort validation: Every project has a defined number of people on the team. As time allocation occurs, the project manager must ensure that no more than the allocated number of people has been scheduled at any g...

Explain smoke testing with its advantages and disadvantages (2 each)

 Solution:- Smoke testing is an integration testing approach that is commonly used when ―shrink wrapped software products are being developed.  It is designed as a pacing mechanism for time-critical projects, allowing the software team to assess its project on a frequent basis.   In essence, the smoke testing approach encompasses the following activities: Software components that have been translated into code are integrated into a ―build.  A build includes all data files, libraries, reusable modules, and engineered components that are required to implement one or more product functions.  A series of tests is designed to expose errors that will keep the build from properly performing its function.  The intent should be to uncover show stopper errors that have the highest likelihood of throwing the software project behind schedule.  The build is integrated with other builds and the entire product (in its current form) is smoke tested daily.  The in...

Explain CPM. How is it different from PERT?

Image
  Solution:-

State and describe various core principles of software engineering.

  Solution:- The First Principle: The Reason It All Exists A software system exists for one reason: To provide value to its users. All decisions should be made with this in mind. Before specifying a system requirement, before noting a piece of system functionality, before determining the hardware platforms or development processes, ask yourself questions such as: "Does this add real VALUE to the system?" If the answer is "no", don't do it. All other principles support this one. The Second Principle: Keep it Simple and Stupid Software design is not haphazard process. There are many factors to consider in any design efforts. All design should be as simple as possible, but no simpler. This facilitates having a more easily understood, and easily maintained system. This is not to say that features, even internal features, should be discarded in the name of simplicity. The Third Principle: Maintain the Vision A Clear vision is essential to the success of a software ...

Describe the following with respect to Risk assessment : (i). Risk identification (ii). Risk analysis (iii). Risk prioritization

  Solution:- Risk identification: Is the first step in risk assessment, which identifies all the different Risks for a particular project. These risks are project-dependent and identifying them is an exercise in envisioning what can go wrong. Methods that can aid risk identification include checklists of possible risks, surveys, meetings and brainstorming, and reviews of plans, processes, and work products. Checklists of frequently occurring risks are probably the most common tool for risk identification—most organizations prepare a list of commonly occurring risks for projects, prepared from a survey of previous projects. Such a list can form the starting point for identifying risks for the current project. Risk identification merely identifies the undesirable events that might take place during the project, i.e., enumerates the ―unforeseen‖ events that might occur. It does not specify the probabilities of these risks materializing nor the impact on the project if the risks indeed...

What is Quality Assurance? Describe various SQA activities.

  Solution:- Software quality assurance is composed of a variety of tasks associated with two different constituencies - the software engineers who do technical work and an SQA group that has responsibility for quality assurance planning, oversight, record keeping, analysis, and reporting. Software engineers address quality (and perform quality assurance and quality control activities) by applying solid technical methods and measures, conducting formal technical reviews, and performing well-planned software testing. Activities of SQA: 1) Prepare an SQA plan for a project: The plan is developed during project planning and is reviewed by all interested parties. Quality assurance activities performed by the software engineering team and the SQA group are governed by the plan. The plan identifies evaluations to be performed audits and reviews to be performed standards that are applicable to the project procedures for error reporting and tracking documents to be produced by the SQA grou...

Differentiate between verification and validation.

Image
  Solution:-

Explain any four features of SCM.

  Solution:- SCM Features: To support SCM, the repository must have a tool set that provides support for the following features : Versioning: As a project progresses, many versions of individual work products will be created. The repository must be able to save all of these versions to enable effective management of product releases and to permit developers to go back to previous versions during testing and debugging. The repository must be able to control a wide variety of object types, including text, graphics, bit maps, complex documents, and unique objects like screen and report definitions, object files, test data, and results. Dependency tracking and change management: The repository manages a wide variety of relationships among the data elements stored in it. These include relationships between enterprise entities and processes, among the parts of an application design, between design components and the enterprise information architecture, between design elements and deliv...

Describe white box and black box testing of software.

  Solution:- White Box Testing (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent Box Testing, Code-Based Testing or Structural Testing) is a software testing method in which the internal structure/ design/ implementation of the item being tested is known to the tester. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming know-how and the implementation knowledge is essential. White box testing is testing beyond the user interface and into the nitty-gritty of a system. This method is named so because the software program, in the eyes of the tester, is like a white/ transparent box; inside which one clearly sees. EXAMPLE: A tester, usually a developer as well, studies the implementation code of a certain field on a webpage, determines all legal (valid and invalid) AND illegal inputs and verifies the outputs against the expected outcomes, which is also determined by studying the implementatio...

Write any four features of Agile Software Development approach.

  Solution:- Agile programming is an approach to project management, typically used in software development. It helps teams react to the instability of building software throughincremental, iterative work cycles, known as sprints. Features of the Agile Software Development Approach: The name ―agile software process‖, first originated in Japan. The Japanese faced competitive pressures, and many of their companies, like their American counterparts, promoted cycle-time reduction as the most important characteristic of software process improvement efforts Modularity: Modularity is a key element of any good process. Modularity allows a process to be broken into components called activities. A software development process prescribes a set of activities capable of transforming the vision of the software system into reality. Activities are used in the agile software process like a good tool. They are to be wielded by software craftsman who know the proper circumstances for their use. They ...

With neat diagram, describe inputs and output of domain analysis.

Image
 Solution:- Software domain analysis is the identification, analysis and specification of common requirements from a specific application domain, typically for reuse in multiple projects within that application domain. Object-oriented domain analysis is the identification, analysis and specification of common, reusable capabilities within a specific application domain, in terms of common objects, classes, subassemblies, and frameworks.  Input and Output Structure of domain analysis: The main goal is to create the analysis classes and common functions. The input consists of the knowledge domain. The input is based on the technical survey, customer survey and expert advice. The output domain consists of using the input as the reference and developing the functional models. The role of domain analyst is to discover and define reusable analysis patterns, analysis classes and related information that may be used by many people working on similar but not necessarily the same appl...

State and describe six principles of communication practices.

 Solution:- Communication Practices Effective communication among the technical peers, customers and other stakeholders, project managers etc. is among the most challenging activities that confront software engineers. Before customers‘ requirements can be analysed, modeled are specified they must be gathered through a communication. Effective communication is among the most challenging activities that you will confront. Communication Principles are 1. Listen: Try to focus on the speaker‘s words, rather than formulating your response to those words. Ask for clarification if something is unclear, but avoid constant interruptions. 2. Prepare before you communicate: Speed the time to understand the problem before you meet with others. If necessary, do some research to understand business domain jargon. 3. Someone should facilitate the activity: Every communication meeting should have a leader to keep the conversation moving in a productive direction, to mediate any conflict that does o...

Describe any four categories of software.

  Solution:- 1. System Software: System Software is a collection of programs written to serve other programs. Some system software (e.g.- compliers, editors, and file management utilities) processes complex, but determinate information structures. Other system applications (e.g.- operating system components, drivers, networking software, telecommunications processors) process largely indeterminate data. In either case, the systems software area is characterized by heavy interaction with computer hardware; heavy usage by multiple users; concurrent operation that requires scheduling, resource sharing, and sophisticated process management; complex data structures; and multiple external interfaces. 2. Application Software: Application Software consists of standalone programs that solve a specific business need. Applications in this area process business or technical data in a way that facilities business operations or management / technical decision-making. 3. Engineering / Scientific...

List types of testing and explain it in brief.

 Solution:- 1. Unit Testing It focuses on smallest unit of software design. In this we test an individual unit or group of inter related units. It is often done by programmer by using sample input and observing its corresponding outputs. 2. Integration Testing The objective is to take unit tested components and build a program structure that has been dictated by design.Integration testing is testing in which a group of components are combined to produce output. 3. Regression Testing Every time new module is added leads to changes in program. This type of testing make sure that whole component works properly even after adding components to the complete program. 4. Smoke Testing This test is done to make sure that software under testing is ready or stable for further testing. It is called smoke test as testing initial pass is done to check if it did not catch the fire or smoked in the initial switch on. 5. Alpha Testing This is a type of validation testing. It is a type of accept...

What are the limitations of manual testing?

 Solution:- Limitations Of Manual Testing: Manual testing is not reliable. Using this method test execution is not accurate all the time. To execute the test cases first time using manual testing will be very much useful. But it is not sure that it will catch the regression defects under frequently changing requirements. Manual testing will be useful when the test case only needs to run once or twice.  To execute the test cases every time tester requires the same amount of time.  Using manual testing, testing on different machine with different OS platform combination is not possible, concurrently. To execute such task different testers are required. It does not involve in programming task to fetch hidden information. Manual testing is slower than automation. Running tests manually can be very time consuming. Time consuming  Limited support for regression testing  Error prone testing  Impractical performanc...

Explain defect management process with diagram.

Image
  Solution:- Defect Management process must include the appraisal of a defect finding process, software development process and the actions initiated to close the defects and strengthen the product/process associated with development, so that defects are not repeated again and again. It typically includes correction, corrective action and preventive action. It includes, Defect Naming Defect Resolution Once the developer have acknowledged a valid defect , the resolution process starts:  To report on the status of individual defects  To provide tactical information and metrics to help project management, redesign of error prone modules.  To provide strategic information and metrics to senior management, defect trends, problem systems. Process to be improved to either prevents defects or minimizing their impact. To provide insight into the likelihood that target dates and cost estimates will be i. Defect Prevention -- Implementation of techniques, methodology and standa...

Describe Alpha and Beta Testing.

Image
  Solution:- i. Alpha testing takes place at the developer's site by the internal teams, before release to external customers. This testing is performed without the involvement of the development teams. Alpha Testing - In SDLC  The following diagram explains the fitment of Alpha testing in the software development life cycle. Beta Testing: i. Beta testing also known as user testing takes place at the end users site by the end users to validate the usability, functionality, compatibility, and reliability testing. ii. Beta testing adds value to the software development life cycle as it allows the "real" customer an opportunity to provide inputs into the design, functionality, and usability of a product. These inputs are not only critical to the success of the product but also an investment into future products when the gathered data is managed effectively. Beta Testing - In SDLC The following diagram explains the fitment of Beta testing in the software development life c...

Explain static and dynamic testing tools.

  Solution:- Benefits of using testing tools:   Save Time  Speed  Repeatability  Maintenance of the test suite  Reusable  Increase Coverage  Cost Reduction Test tools types are: 1. Static Testing tools: Generally used by developers as part of development and component testing process, here code is not executed or run bur the tool itself is executed and source code we are interestedin is the input data to the tool. These are extension of compiler technology, other than software code , static analysis can also be carried out on things like, static analysis of requirements or static analysis of websites the developer to understand the structure of the code and helpful to enforce coding standards .Static analysis tools for code can help Features / Characteristics of static analysis tools are:   To calculate metrics, Cyclomatic complexity or nesting levels.  To enforce coding standards  To analyze structures and depe...

What are metrics? Explain any one detail.

  Solution:- Metrics: Metrics are necessary to provide measurements of such qualities. Metrics can also be used to gauge the size and complexity of software and hence are employed in project management and cost estimation. Types of Metrics:  Process quality  Product quality  Objective Metrics  Subjective Metrics Process quality: Activities related to the production of software, tasks or milestones. 1. Process metrics are collected across all projects        and over long periods of time. 2. They are used for making strategic decisions. 3. The intent is to provide a set of process indicators       that lead to long-term software process                         improvement  4. The only way to know how/where to improve any         process is to:  Measure specific attributes of the process. Develop a set of meaningful metrics ...

Difference between Alpha testing and Beta testing.

solution:- Alpha testing Beta testing 1. performed at developer’s site. 1. performed at end user’s site. 2. performed in control environment in developers presence. 2. performed in uncontrolled environment in developers absence. 3. less probability of finding errors as it is driven by developers. 3. high probability of finding errors as it is used by end users. 4. It is done during implementation phase of software. 4. it is done at the pre-release of the software 5. it is not considered as live application of software. 5. it is considered as a live application of the software. 6. less time consuming as developer can make necessary changes in given time. 6. more time consuming as user has to report the bugs if any via appropriate channels. 7. alpha testing involves both white box and black box testing. 7. beta te...

Define software testing and role of testing.

  Solution:- Software testing: Software testing is defined as performing Verification and Validation of the Software Product for its correctness and accuracy of working. Software Testing is the process of executing a program with the intent of finding errors. A successful test is one that uncovers an as-yet-undiscovered error. Testing can show the presence of bugs but never their absence. Testing is a support function that helps developers look good by finding their mistakes before anyone else does. Role of testing: Finding defects which may get created by the   programmer whiled developingthe software. Gaining confidence in and providing information about the level of quality.  To prevent defects. To make sure that the end result meets the         business  and user requirements. To ensure that it satisfies the BRS that is Business      Requirement Specification and SRS that is System       Requiremen...