Monday, April 29, 2019

thumbnail

Differentiate between verification and validation

software testing:
A bug-free application is the main reason to implement the software testing. For the compatibility checking the software tester importance indeed. Customers have benefits when software tester comes across in a role to put himself in the state of test and surfing through any website on mobile phones or tablets. Developers responsibilities increase at the end to satisfy the customers by developing the responsive web application. A little bug can create a big problem that hackers can steal the private data and this can’t be tolerable.

Verification
Validation
1. Verification is a static practice of verifying documents, design, code and program.
1. Validation is a dynamic mechanism of validating and testing the actual product.
2. It does not involve executing the code.
2. It always involves executing the code.
3. It is human based checking of documents and files.
3. It is computer based execution of program.
4. Verification uses methods like inspections, reviews, walkthroughs, and Desk-checking etc.
4. Validation uses methods like black box (functional) testing, gray box testing, and white box (structural) testing etc.
5. Verification is to check whether the software conforms to specifications.
5. Validation is to check whether software meets the customer expectations and requirements.
6. It can catch errors that validation cannot catch. It is low level exercise.
6. It can catch errors that verification cannot catch. It is High Level Exercise.
7. Target is requirements specification, application and software architecture, high level, complete design, and database design etc.
7. Target is actual product-a unit, a module, a bent of integrated modules, and effective final product.
8. Verification is done by QA team to ensure that the software is as per the specifications in the SRS document.
8. Validation is carried out with the involvement of testing team.
9. It generally comes first-done before validation.
9. It generally follows after verification.



I hope this article is useful to you, plz follow the next volume for more information.

You can write to me at codingallrounders@gmail.com


please post your doubts in the comment box.  

thumbnail

Differentiate White box testing with Black box testing?




Black Box Testing:

White Box Testing:
  1.  Black box testing is the Software testing method which is used to test the software without knowing the internal structure of code or program.                             
  2.     This type of testing is carried out by testers.                                                                                                 
  3.   Implementation Knowledge is not required to carry out Black Box Testing.                                                                              
  4.  Programming Knowledge is not required to carry out Black Box Testing.                                                                 
  5.  Testing is applicable on higher levels of testing like System Testing, Acceptance testing.                                                            
  6.     Black box testing means functional test or external testing.                                                                      
  7.   In Black Box testing is primarily concentrate on the functionality of the system under test.                                                                                             
  8.    The main aim of this testing to check on what functionality is performing by the system under test.                                                         
  9.      Black Box testing can be started based on Requirement Specifications documents                                                       
  10.  The Functional testing, Behavior testing, Close box testing is carried out under Black Box testing, so there is no required of the programming knowledge. 

  1. White box testing is the software testing method in which internal structure is being known to tester who is going to test the software.               
  2. Generally, this type of testing is carried out by software developers.                  
  3.  Implementation Knowledge is required to carry out White Box Testing.                 
  4.   Programming Knowledge is required to carry out White Box Testing.      
  5.  Testing is applicable on lower level of testing like Unit Testing, Integration testing.                         
  6.  White box testing means structural test or interior testing.                
  7.     In White Box testing is primarily concentrate on the testing of program code of the system under test like code structure, branches, conditions, loops etc.       
  8.  The main aim of White Box testing to check on how System is performing.                        
  9.  White Box testing can be started based on Detail Design documents.                        
  10. The Structural testing, Logic testing, Path testing, Loop testing, Code coverage testing, Open box testing is carried out under White Box testing, so there is compulsory to know about programming knowledge


I hope this article is useful to you, plz follow the next volume for more information.

 please post your doubts in the comment box.  


You can write to me at codingallrounders@gmail.com


thumbnail

Explain disadvantages of file Database? notations of ER diagram attributes? three level schema architecture and Data Models?












I hope this article is useful to you, plz follow the next volume for more information.

You can write to me at codingallrounders@gmail.com


please post your doubts in the comment box. 


thumbnail

Software Engineering important questions ?

thumbnail

Illustrate how incremental model is employed in Spiral model?


Incremental Process Model

• Combines elements of linear and parallel process flows.

• It delivers a series of releases, called increments that provide progressively more functionality for the customer as each is delivered

• The first increment is often a core product.

• The plan addresses the modification of the core product to better meet the needs of the customer and the delivery of additional feature and functionality.

• It focuses on the delivery of an operational product with each increment.

• It is useful when staffing is unavailable for a complete implementation.

• Increments can be planned to manage technical risks.







Spiral model:

• Originally proposed by Barry Boehm.

• It couples the iterative nature of prototyping with the controlled and systematic aspects of water fall model.

• The process is represented as a spiral rather than as a sequence of activities with backtracking.

• Each loop in the spiral represents a phase in the process.

• No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.

• Risks are explicitly assessed and resolved throughout the process.

• It is a realistic approach to the development of large-scale systems and software.

• The software evolves as the process progresses, the developer and customer better understand and react at each evolutionary level.

• It uses prototyping as a risk reduction mechanism.

• It demands considerable risk assessment expertise and realises this expertise for success.





I hope this article is useful to you, plz follow the next volume for more information.

You can write to me at codingallrounders@gmail.com

please post your doubts in the comment box.
thumbnail

Write about Water-fall model and give the cons and pros of the model?





Water-fall model:


• Oldest software lifecycle model & best understood by upper management

• Used when requirements are well understood, and risk is low

• Workflow is in a linear fashion.

• Used often with well-defined adaptations or enhancements to current software

Disadvantages:

• Real projects rarely follow the sequential flow.

• Difficult for customers to state all requirements explicitly and up front

• Requires customer patience because a working version of the program doesn't occur until the final phase

• Doesn't support iteration, so changes can cause confusion and Leads to “blocking states”.

Advantages:

• Where requirements are fixed and are to proceed to completion in a linear manner.



I hope this article is useful to you, plz follow the next volume for more information.
                        
please post your doubts in the comment box.  



You can write to me at codingallrounders@gmail.com
thumbnail

Explain about XP programming Agile model ?



 The most widely used agile process, originally proposed by Kent Beck

XP Planning

• Begins with the creation of “user stories”

• Agile team assesses each story and assigns a cost

• Stories are grouped to for a deliverable increment

• A commitment is made on delivery date

• After the first increment “project velocity” is used to help define subsequent delivery dates for other increments

 XP Design

• Follows the KISS (Keep it Simple, Stupid) principle

• Encourage the use of CRC cards (Class Responsibility Collaboration)

• For difficult design problems, suggests the creation of “spike solutions”—a design prototype (A Working Model)

• Encourages “refactoring”—an iterative refinement of the internal program design

 XP Coding

• Recommends the construction of a unit test for a store before coding commences

• Encourages “pair programming”

 XP Testing

• All unit tests are executed daily

• “Acceptance tests” are defined by the customer and executed to assess customer visible functionality



Agile Model:

It has rapid and adaptive response to change.

Effective communication in structure and attitudes among all team members.

Drawing the customer into the team. Eliminate “us and them” attitude Planning in an uncertain world has its limits and plan must be flexible.

Eliminate all but the most essential work products and keep them lean.

Emphasize an incremental delivery strategy as opposed to intermediate products that gets working software to the customer as rapidly as feasible.







A well-designed agile process may “flatten” the cost of change curve by coupling incremental delivery with agile practices such as continuous unit testing and pair programming. Thus, team can accommodate changes late in the software project without dramatic cost and time impact. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.


Agility Principles:

1. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

2. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

3. Business people and developers must work together daily throughout the project.

4. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

5. The most efficient and effective method of conveying information to and within a development team is face–to–face conversation.

6. Working software is the primary measure of progress.

7. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

8. Continuous attention to technical excellence and good design enhances agility.

9. Simplicity – the art of maximizing the amount of work not done – is essential.

10.The best architectures, requirements, and designs emerge from self–organizing teams.

11. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 




I hope this article is useful to you, plz follow the next volume for more information.
                        
please post your doubts in the comment box.  



You can write to me at codingallrounders@gmail.com

thumbnail

Elaborate various software myths such as Management, Practitioner & Customers?


      Software myths Affect managers, customers and practitioners Are believable because they often have elements of truth, but Invariably lead to bad decisions, therefore Insist on reality as you navigate your way through software engineering.

Management Myths:

• “We already have a book of standards and procedures for building software. It does provide my people with everything they need to know

• “If my project is behind the schedule, I always can add more programmers to it and catch up.

• “If I decide to outsource the software project to a third party, I can just relax: Let them build it, and I will just pocket my profits …”

Customer Myths:

• “A general statement of objectives is sufficient to begin writing programs - we can fill in the details later …”

• “Project requirements continually change but this change can easily be accommodated because software is flexible …”

Practitioner Myths:

• Let’s start coding ASAP because once we write the program and get it to work, our job is done

• Until I get the program running, I have no way of assessing its quality

• The only deliverable work product for a successful project is the working program

Software engineering is baloney. It makes us create tons of paperwork, only to slow us down



I hope this article is useful to you, plz follow the next volume for more information.
                        
please post your doubts in the comment box.  



You can write to me at codingallrounders@gmail.com


Sunday, April 28, 2019

thumbnail

Database architecture and Data Independence. What is Data modeling - ER Model Notations ?














I hope this article is useful to you, plz follow the next volume for more information.

You can write to me at codingallrounders@gmail.com


please post your doubts in the comment box.  



thumbnail

ALM'S AND HOME ASSIGNMENTS


congratulations and welcome to codingallrounders

This is to inform you that all the alms and home assignments of FDBMS open elective will be uploaded in this blog soon.

for any details or answers to any questions comment at the bottom of this page.

1.FDBMS ALM-1

2.FDBMS HOME ASS-1 (soon)


Friday, January 11, 2019

thumbnail

How to Convert E-R model for Bank Data Base into Relational Model ?


To understand this concept you should have knowledge of the E-R Model and Relational Model. if you don't have an idea please go through volume-2 and volume-3

 E-R model:
                     Let us consider the bank database contains four entities Account, Branch, Customer, and loan. for each entity, there are different attributes. These entities are connected with a relationship set. to know more about relationship set go through volume-4



 E-R model of Bank Data Base



Relational Model: It is the tabular representation of the E-R Model. the relational model represents the Database as the collection of relation.when a relation taught as a table of values each row in the table representing the collection of related data values.

Conversion:

Domain: A domain is defined as the set of all unique values permitted for an attribute. (The value of a particular relation.)

Attribute: An Attribute describes the instances in the row of a database. (The value of the column.)

Tupple:  A single row of a table, which contains a single record for that relation is called a tuple. (The value of the Row.)

Relation: The term relation schema refers to a heading paired with a set of constraints defined in terms of that heading. (The value of the Table.)

The four relations are shown below










Monday, January 7, 2019

thumbnail

What are the Advantages of Data Base Management System over File System?


Welcome To Series Articles of DBMS(volume-6)


Advantages of Data Base Management System:

There are 7 major advantages they are:

1. Controlling the Redundancy.
2. Restricting unauthorized access.
3. Providing the Persistence storage of program data.
4. Providing the storage structure and search technique for efficient query processing.
5. Backup and Recovering.
6. Providing the multiplex interface.
7. Entering the integrity.

1. Controlling the Redundancy.
Redundancy is storing the same data multiple times leads to several problems.it is otherwise known as data duplicate for a particular database the value must be unique the job of database user is that to control the redundancy by using normalization technique.

2. Restricting unauthorized access.
When multiple users share a large database it is likely that most users will not be authorized to access all the information in the database, for example, The finance data is often considered as a confidential and only otherized person are allowed to access such data. The DBMS should provide security and authorized subsystem which the DBA user to create an account and to specify the account restriction. The DBMS should enforce these restrictions automatically.

3. Providing the Persistence storage of program data.
The database can be used to provide persistent storage of program object and data structure this is one of the main reason for the object-oriented database programming language typically have a complex data structure such as record types in c,c++ and java. the programmer having full authority to access the particular code from the programming database.

4. Providing the storage structure and search technique for efficient query processing.
The database system must provide the capability for efficiently executing queries and objects because the database is typically stored on disk. DBMS must provide specialize data structure and speed up the search for the desired record. the query process and optimized module of DBMS is responsible for choosing an efficient query execution plan for each query based on the existing storage structure.

5. Backup and Recovering.
A DBMS must provide the facilities for recovering from hardware and software failures the backup and recovery system of DBMS is responsible for recovery. for example, if the computer system fails in the middle of a transaction the recovery is responsible for make sure that the database is stored to the state it was in before the transaction started executing.

6. Providing the multiplex interface.
Many types of users with varying levels of tech knowledge use DBMS. It could provide a variety of user interface. these include the query language for the casual user, programming language interface for the application user, forms and command code for parametric user and memory return and natural interface for the standalone user.

7. Entering the integrity constraints.
Most of the database application has certain integrity constant that must hold for the data. DBMS should provide the capability for defining and enforcing these constraints.there are two constraints one is the primary key constraint or unique key and the other is referential integrity or integrity constraints or foreign key. 



I hope this article is useful to you, plz follow the next volume for more information.
                        
please post your doubts in the comment box.  


You can write to me at codingallrounders@gmail.com



thumbnail

Software Engineering Interview Questions and Answers.


Q. What is computer software?
A. Computer software is a complete package, which includes a software program, its documentation, and user guide on how to use the software.

Q. Can you differentiate computer software and a computer program?
A. A computer program is a piece of programming code which performs a well-defined task whereas software includes programming code, its documentation and user guide.

Q. What is software engineering?
A. Software engineering is an engineering branch associated with software system development.

Q. When you know to the programme, what is the need to learn software engineering concepts?
A. A person who knows how to build a wall may not be good at building an entire house. Likewise, a person who can write programs may not have knowledge of other concepts of Software Engineering. The software engineering concepts guide programmers on how to assess the requirements of the end user, design the algorithms before actual coding starts, create programs by coding, testing the code and its documentation.

Q. What is a software process or Software Development Life Cycle (SDLC)?
A. Software Development Life Cycle or software process is the systematic development of software by following every stage in the development process namely, Requirement Gathering, System Analysis, Design, Coding, Testing, Maintenance, and Documentation in that order.

Q. What are the SDLC models available?
A. There are several SDLC models available such as the Waterfall Model, Iterative Model, Spiral model, V-model and Big-bang Model etc.

Q. What are various phases of SDLC?
A. The generic phases of SDLC are Requirement Gathering, System Analysis, and Design, Coding, Testing and implementation. The phases depend upon the model we choose to develop software.

Q. Which SDLC model is the best?
A. SDLC Models are adopted as per requirements of the development process. It may very software-to-software to ensuring which model is suitable.
We can select the best SDLC model if the following answers are satisfied -
  • Is SDLC suitable for selected technology to implement the software?
  • Is SDLC appropriate for client’s requirements and priorities ?
  • Is the SDLC model suitable for the size and complexity of the software?
  • Is the SDLC model suitable for a type of projects and engineering we do?
  • Is the SDLC appropriate for the geographically co-located or dispersed developers?

Q. What is software project management?
A. Software project management is the process of managing all activities like time, cost and quality management involved in software development.

Q. Who is a software project manager?
A. A software project manager is a person who undertakes the responsibility of carrying out the software project.

Q. What does the software project manager do?
A. The software project manager is engaged in software management activities. He is responsible for project planning, monitoring the progress, communication among stakeholders, managing risks and resources, smooth execution of development and delivering the project within time, cost and quality constraints.

Q. What is software scope?
A. Software scope is a well-defined boundary, which encompasses all the activities that are done to develop and deliver the software product.
The software scope clearly defines all functionalities and artifacts to be delivered as a part of the software. The scope identifies what the product will do and what it will not do, what the end product will contain and what it will not contain.

Q. What is project estimation?
A. It is a process to estimate various aspects of the software product in order to calculate the cost of development in terms of efforts, time and resources. This estimation can be derived from past experience, by consulting experts or by using pre-defined formulas.

Q. How can we derive the size of the software product?
A. Size of the software product can be calculated using either of two methods -
  • Counting the lines of delivered code
  • Counting delivered function points

Q. What are function points?
A. Function points are the various features provided by the software product. It is considered as a unit of measurement for software size.

Q. What are software project estimation techniques available?
A. There are many estimation techniques available. The most widely used are -
  • Decomposition technique (Counting Lines of Code and Function Points)
  • Empirical technique (Putnam and COCOMO).

Q. What is the baseline?
A. The baseline is a measurement that defines the completeness of a phase. After all, activities associated with a particular phase are accomplished, the phase is complete and acts as a baseline for the next phase.

Q. What is Software configuration management?
A. Software Configuration management is a process of tracking and controlling the changes in software in terms of the requirements, design, functions, and development of the product.

Q. What is change control?
A. Change control is the 
function of configuration management, which ensures that all changes made to the software system are consistent and made as per organizational rules and regulations.

Q. How can you measure project execution?
A. We can measure project execution by means of Activity Monitoring, Status Reports, and Milestone Checklists.

Q. Mention some project management tools.
A. There are various project management tools used as per the requirements of software project and organization policies. They include Gantt Chart, PERT Chart, Resource Histogram, Critical Path Analysis, Status Reports, Milestone Checklists etc.

Q. What are software requirements?
A. Software requirements are a functional description of the proposed software system. Requirements are assumed to be the description of the target system, its functionalities, and features. Requirements convey the expectations of users from the system.

Q. What is feasibility study?
A. It is a measure to assess how practical and beneficial the software project development will be for an organization. The software analyzer conducts a thorough study to understand the economic, technical and operational feasibility of the project.
· Economic - Resource transportation the cost for training, cost of additional utilities and tools and overall estimation of costs and benefits of the project.
· Technical - Is it possible to develop this system? Assessing the suitability of machine(s) and operating system(s) on which software will execute, existing developers’ knowledge and skills, training, utilities or tools for the project.
· Operational - Can the organization adjust smoothly to the changes done as per the demand of project? Is the problem worth solving?

Q. How can you gather requirements?
A. Requirements can be gathered from users via interviews, surveys, task analysis, brainstorming, domain analysis, prototyping, studying existing usable version of the software, and by observation.

Q. What is SRS?
A. SRS or Software Requirement Specification is a document produced at the time of requirement gathering process. It can be also seen as a process of refining requirements and documenting them.

Q. What are functional requirements?
A. Functional requirements are functional features and specifications expected by users from the proposed software product.

Q. What are non-functional requirements?
A. Non-functional requirements are implicit and are related to security, performance, look and feel of user interface, interoperability, cost etc.

Q. What is the software measure?
A. Software Measures can be understood as a process of quantifying and symbolizing various attributes and aspects of software.

Q. What is the software metric?
A. Software Metrics provide measures for various aspects of software process and software product. They are divided into –
  • Requirement metrics: Length requirements, completeness
  • Product metrics: Lines of Code, Object-oriented metrics, design, and test metrics
  • Process metrics: Evaluate and track budget, schedule, human resource.

Q. What is modularization?
A. Modularization is a technique to divide a software system into multiple discrete modules, which are expected to carry out the task(s) independently.

Q. What is concurrency and how it is achieved in software?
A. Concurrency is the tendency of events or actions to happen simultaneously. In software, when two or more processes execute simultaneously, they are called concurrent processes.
Example
While you initiate print command and printing starts, you can open a new application.
Concurrency is implemented by splitting the software into multiple independent units of execution namely processes and threads and executing them in parallel.

Q. What is cohesion?
A. Cohesion is a measure that defines the degree of intra-dependability among the elements of the module.

Q. What is coupling?
A. Coupling is a measure that defines the level of inter-dependability among modules of a program.

Q. Mentions some software analysis & design tools?
A. These can be DFD (Data Flow Diagrams), Structured Charts, Structured English, Data Dictionary, HIPO (Hierarchical Input Process Output) diagrams, ER (Entity Relationship) Diagrams, and Decision Tables.

Q. What is level-0 DFD?
A. Highest abstraction level DFD is known as Level 0 DFD also called a context level DFD, which depicts the entire information system as one diagram concealing all the underlying details.

Q. What is the difference between structured English and Pseudo Code?
A. Structured English is native English language used to write the structure of a program module by using programming language keywords, whereas, Pseudo Code is more close to the programming language and uses native English language words or sentences to write parts of the code.

Q. What is data dictionary?
A. The data dictionary is referred to as meta-data. Meaning, it is a repository of data about data. The data dictionary is used to organize the names and their references used in the system such as objects and files along with their naming conventions.

Q. What is a structured design?
A. Structured design is a conceptualization of problem into several well-organized elements of the solution. It is the concern with the solution design and based on ‘divide and conquer’ strategy.

Q. What is the difference between function-oriented and object-oriented design?
A. The function-oriented design is comprised of many smaller sub-systems known as functions. Each function is capable of performing a significant task in the system. The object-oriented design works around the real world objects (entities), their classes (categories) and methods operating on objects (functions).

Q. Briefly define top-down and bottom-up design model.
A. Top-down model starts with a generalized view of system and decomposes it to more specific ones, whereas bottom-up model starts with most specific and basic components first and keeps composing the components to get higher level of abstraction.

Q. What is the basis of Halstead’s complexity measure?
A. Halstead’s complexity measure depends up on the actual implementation of the program and it considers tokens used in the program as a basis of measure.

Q. Mention the formula to calculate Cyclomatic complexity of a program?
A. Cyclomatic complexity uses graph theory’s formula: V(G) = e – n + 2

Q. What is functional programming?
A. Functional programming is style of programming language, which uses the concepts of mathematical function. It provides means of computation as mathematical functions, which produces results irrespective of program state.

Q. Differentiate validation and verification?
A. Validation checks if the product is made as per user requirements whereas verification checks if proper steps are followed to develop the product.
Validation confirms the right product and verification confirms if the product is built in a right way.

Q. What is black-box and white-box testing?
A. Black-box testing checks if the desired outputs are produced when valid input values are given. It does not verify the actual implementation of the program.
White-box testing not only checks for desired and valid output when valid input is provided but also it checks if the code is implemented correctly.
Criteria
Black Box Testing
White Box Testing
Knowledge of software program, design and structure essential
No
Yes
Knowledge of Software Implementation essential
No
Yes
Who conducts this test on software
Software Testing Employee
Software Developer
baseline reference for tester
Requirements specifications
Design and structure details

Q. Quality assurance vs. Quality Control?
A. Quality Assurance monitors to check if proper process is followed while software developing the software.
Quality Control deals with maintaining the quality of software product.

Q. What are various types of software maintenance?
A. Maintenance types are: corrective, adaptive, perfective and preventive.
  • Corrective
Removing errors spotted by users
  • Adaptive
tackling the changes in the hardware and software environment where the software works
  • Perfective maintenance
implementing changes in existing or new requirements of user
  • Preventive maintenance
taking appropriate measures to avoid future problems

Q. What is software re-engineering?
A. Software re-engineering is process to upgrade the technology on which the software is built without changing the functionality of the software. This is done in order to keep the software tuned with the latest technology.

Q. What are CASE tools?
A. CASE stands for Computer Aided Software Engineering. CASE tools are a set of automated software application programs, which are used to support, accelerate and smoothen the SDLC activities.



I hope this article is useful to you.
                        
please post your doubts in the comment box.  

You can write to me at codingallrounders@gmail.com


Powered by Blogger.