Software Engineer, Your next Programming Instructor.

"Here I share myself."
Showing posts with label SQA. Show all posts
Showing posts with label SQA. Show all posts

Friday, 13 November 2020

Sequential Cohesion in Software Engineering - Types of Cohesion

Communicational Cohesion in Software Engineering Urdu/ Hindi

Types of Cohesion - Procedural Cohesion in Software Engineering Urdu/Hindi

Sunday, 28 June 2020

What is Scrum? What is a Scrum Master? The Role and Responsibilities


What is scrum?
Scrum is a framework which fall under the Agile framework. It is use to manage the complex software development and it is usually consists on the team of 3 to 9 persons. Scrum uses iterative manner of development. As scrum belongs to Agile so it provide frequent deliveries. 
Some basic point of attraction in scrum are:
  1. It is a lightweight framework
  2. It urge you to work in the form of a team
  3. It is self organizing type of framework
Roles in Scrum
There are three general role in the Scrum
  1. Product Owner
  2. Scrum Master
  3. Team
Product Owner: He is the person who want you to develop a software. Product Owner can be an individual or a group of people but all in all no matter how much people we count them as an entity product owner.

The Team: Because in Scrum framework wo work in a team that is why team is consider as a role in the scrum in which every is performing his duties.

Scrum Master: He is the most responsible person and do lots of work in the scrum frame work. The Scrum master is the facilitator who facilitate the team in every sense. It is his duty to facilitate the team and to product owner.
The facilities the scrum master provide are his responsibilities actually in the Scrum team.

Three Important Question a scrum master may ask to team on daily basis:
  1. What did you do yesterday?
  2. What will you do today?
  3. Are there any kind of obstacles your way?
Don't get confuse:
Just because scrum master is facilitating team asking them questions doesn't means at all that a scrum master is the name of a project leader or the project manager in the scrum environment. 
Keep it very clear project leader and scrum master are the different persons.

Just like you will have a programmer in the team and the person with good programing skill will be a programmer same for the software designer and some for the software Architect same thing is for the scrum master. scrum master is also a person who have expertise in scrum framework and have experience in a scrum framework. He work as a couch in the team and tell the other team member how to keep themselves in the scrum framework and also perform his responsibilities.

Responsibilities of the Scrum Master: 
Scrum master Facilitate the Scrum Team:
  • He is responsible for improving the interaction between the team as this thing improve the productivity level.
  • He is responsible to arrange the team meeting and planning session according to the schedule of every team member.
  • He is responsible for clearing the obstacles from the way of the scrum team or from the way of the project on which scrum team is working.
  • He is responsible for ensuring the good relationship between the team and the product owner. These good relationships are the key to achieving quality in the product.
  • He is also responsible for protecting the team for any kind of distraction.
  • These all things we have just seen are the services which are for the scrum team from the scrum master.
Scrum Master Facilitates the Product owner:
  • Helps product owner in the technical way so he can convey his product requirement to the scrum team.
  • Facilitate and arrange the meeting session if the product owner want to have some meeting.
  • Help the product owner in back log management (this is the most important task.)
  • Back log management is process in which the product owner add adjust modify the items he want in product.
Challenges for scrum master:
All the things looks like fun and easy and you will be thinking I can do that what so difficult?
But there are lots of challenges a scrum master face on his way.

Dealing with change: May be the customer suddenly demand a change in the product when it is not possible.
May be the customer ask for what is not possible for team to implement.
All these things and dealing with these things is not a piece of cake.

Misunderstandings: When people are working in the team, and the project are of kind in which your focus is urgent and frequent deliveries in iterative manner.

In this condition there is always room of misunderstandings in the team members or in between the team members and the product owner. These things directly affect the quality of the product, relationship between the people and reputation of the scrum team in the organization keep an eye and keeping things in smooth way is challenge for the scrum master to fulfil.


Video Lecture on the Topic

Friday, 26 June 2020

Software Architecture and Architecture styles in Software Engineering

To understand the concept of Software Architecture you should have knowledge and concept of what is Architecture.
When you here this word, At the most simplistic level, you think about the overall shape of the physical structure. The word Architecture put the image of building into your mind most of the time but not simple building the most beautiful and well engineered building.

Why this happen?
Why this happen? Because just making a building is not the goal of arch Making a building by keeping all technical aspects in mind and dealing with them is the goal of architecture.

It is the way in which the building fits into its environment and meshes with other buildings in its vicinity.

It is the degree to which the building meets its stated purpose and satisfies the needs of its owner.

The architecture is not the operational thing.
Rather, it is a representation that enables you to:
  1. analyze the effectiveness of the design in meeting.
  2. consider architectural alternatives at a stage when making design changes is still relatively easy.
  3. reduce the risks associated with the construction.
The concept of Software Architecture:
I hope now you would have the basic mind set about what is the Architecture. Its time to move towards the concept of software architecture.

Architecture serves as a blueprint for a system . It provides an abstraction to manage the system complexity.

It defines a structured solution to meet all the technical and operational requirements, while optimizing the common quality attributes like performance and security.

IEEE defines architectural design as “the process of defining a collection of hardware  and software components and their interfaces to establish the framework for the development of a computer system.”

Software Architecture Styles:
Data centered architectures : A data store (e.g., a file or database) resides at the center of this
architecture and is accessed frequently by other components that update, add, delete, or otherwise modify data within the store. Existing components can be changed, and new client components
added to the architecture without concern about other clients. Client components independently execute processes.


Data flow architectures: This architecture is applied when input data are to be transformed
through a series of computational or manipulative components into output data. A pipe and filter pattern has a set of components, called filters ,connected by pipes that transmit data from one component to the next.
Call and return architectures: This architectural style enables you to achieve a program structure that
is relatively easy to modify and scale. two arch. styles are relative to this call and return architecture style.

Main program/subprogram architectures . This classic program structure decomposes function into a control hierarchy where a “main” program invokes a number of program components that in turn may invoke still other components.

Remote procedure call architectures . The components of a main program/subprogram architecture are distributed across multiple computers on a network.

Object oriented architectures The components of a system encapsulate data and the operations that must be applied to manipulate the data. Communication and coordination between components are accomplished via message passing.

Layered architectures: A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set. At the outer layer, components service user interface operations.At the inner layer, components perform operating system interfacing. Intermediate layers provide utility services and application software functions.




Why the architecture is important?
The answer to this question would be clear to you till know but still let me tell you some key points which will summed up why the software architecture is important.

Three key reasons that software architecture is important:

  1. Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer based system.
  2. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity.
  3. Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together”.

Video Lecture in Hindi Urdu For the above notes.


Tuesday, 5 November 2019

CMM Model in Software Engineering in Urdu/Hindi


 

CMM Model in Software engineering is a famous model but students feel difficulty in understanding it. I hope this video will help in understanding cmm in software engineering in hindi / urdu languages.

Software quality assurance tutorial in Urdu / Hindi

ETVX model in software engineering



Little presentation covering complete working of ETVX model in Software engineering with a daily life example in Urdu / Hindi language. Recommended to watch for software Engineering Students.

Define ETVX What is ETVX model? ETVX model Introduced by? ETVX model in Software Engineering


Cyclomatic Complexity in Software Engineering


Urdu and Hindi speaking people after watching this 11min video on cyclomatic complexity topic you will stop searching about it on internet this is a complete guide. Providing Answer to following questions: What is cyclomatic complexity? what is the formula to measure cyclomatic complexity? Example Program for cyclomatic complexity cyclomatic complexity is a simple easy to understand concept but some time people explain it using difficult examples which make it hard to understand this simple concept. After watching this video still you have any question please ask in comment section.


Top 5 must perform SQA activities


There are lots of activities to perform in SQA in software engineering but these are top 5 which you should perform in every project to make the quality of the software assure 100% The video presentation is providing top 5 must perform sqa activities in software engineering. watch it , listen it, like, subscribe us and give your reviews about the video in comments.


Inspection in Software Engineering


Brief: This is just a short video to tell you what is inspection in software Engineering, not covering any details in this video.

Quality Assurance VS Quality Control | Software Engineering


✅ Note: Don't forget to listen the daily life example in the last 3 minutes of the video. ✔ Brief: This video tutorial will help you to identify the border line between the Software Quality Control and Software Quality Assurance and make your concepts clear about what is the difference between Software quality control and Software quality assurance. - What is the Difference between SQA and SQC? - What is the Software Quality Assurance? -What is the Software Quality Control? #SoftwareEngineering #SQAvsSQC #SQA

Coupling and Its level in Software Engineering


✅Brief: This is the detail video about the coupling in Software engineering and its types in software engineering, Basically known as levels of coupling in software engineering. 📋This video will clear you concept on the following things: 👇 ✔️ What is coupling? ✔️What are the level of coupling in software Engineering? ✔️What is common coupling? ✔️What is Content Coupling? ✔️what is Control coupling? ✔️What is stamp coupling? ✔️What is Data coupling? 📌Here is the link to short video on the topic of coupling and cohesion: https://youtu.be/VAXFwDE5DAg

Cohesion and Its Level in Software Engineering


✅Brief: This video will explain you in detail the cohesion in software engineering and level of cohesion in software engineering. 📋This video will clear you concept on the following things: 👇 ✔️What is cohesion in Software Engineering? ✔️What are the levels of cohesion in software engineering? ✔️What is coincidental cohesion? ✔️What is temporal cohesion? ✔️What is the sequential cohesion? ✔️What is the logical cohesion? ✔️What is the functional cohesion? ✔️What is the procedural cohesion? 📌Link to detail video on Coupling and its types/Levels. https://youtu.be/qVR6ShVPObc 📌Short video about the coupling and cohesion Link: https://youtu.be/VAXFwDE5DAg

Configuration Management in Software Engineering


✅Brief: This video will explain you in detail about what is software configuration management in software engineering and it will also describe about the activities in the software configuration management. 🚩 Lots of books are describing this topic in very good manners but sometimes you need a person to tell you how things works so it will solve this problem and video will help you in understanding. 📋This video will clear you concept on the following things: 👇 ✔️What are software configuration management activities? ✔️ What is Configuration management? ✔️What is Change management? ✔️What is version control? ✔️What is system build? ✔️What is release management? 📢I am sure listening to these video lectures will help you alot in clearing this topic.

📌Link to version control Detail Video: https://youtu.be/AkIIHrd9RDI

What is Software defect? | categories of Software defects | SQA Perspective | Software Engineering


✅Brief: This video will explain in detail about what are the categories of Software Defects from the Software Quality assurance Perspective. 🚩 Lots of books are describing this topic in very good manners but sometimes you need a person to tell you how things work so it will solve this problem and video will help you in understanding. 📋This video will clear you concept on the following things: 👇 ✔️ What Software Defect? ✔️What is Error of commission? ✔️What is Error of omission? ✔️What is error of clarity? ✔️What is error of speed or capacity? I am sure listening to these video lectures will help you a lot in clearing this topic.

Tuesday, 29 October 2019

Basics to Assure Software Quality


Assure Software Quality:

 Summary :
–What is Software Quality?
-Definition of Quality by ISO 8402-198 standers
-What is Software Quality Assurance?
-Quality Software Definitions by IEEE
-Quality key aspects which should be focused while developing a software

Software quality has to be our aim and part of our way of developing software system.
Lots of Programmers, Developers are providing software in the market everyone is claiming we are providing the best products do they really mean it? Do we get really good product every time? Answer is no not every time some time we got the poor quality software products which lagging our system and drains the maximum resources hang the system and lots of other problems. But why? When the say we are providing the best software why these all problem we face?
This is because
1st They are not providing the level of quality what they are promising to provide.
2nd No one software can be 100% perfect
 Why it is important to provide Software Quality Assurance?
Now the time is changing. People are much aware of IT now. People understand the traps and the only way to survive now is assure the quality of software if you promising it and it is also good to make your place in the market full of competitor.
How we can assure the quality of software?
Now to assure the quality of software one have to understand first what is actually the quality software is.
Quality : ISO 8402-1986 standard defines quality as “the totality of features and characteristics of a product or service that bears its ability to satisfy stated or implied needs.
 Quality Software : The quality software which is reasonably bug or defects free software delivered on the time under the budget constrains. it is maintainable & meet the customer requirements the way it is supposed to be.

Definition by IEEE
The degree to which a system, component, or process meets specified requirements.
The degree to which a system, component, or process meets customer or user needs or expectations.
Now getting deep into the definition of Software quality will provide the ways to assure the quality of software.
So, In the first line of definition we used a word reasonably this because as I told you earlier we can’t make the software 100% perfect but try our best to achieve the reasonable perfection. Software development is not limited to a task but it is the collection and series of tasks which we follow to deliver the product that is why improvement in only one phase or two is not enough to make the software good one have to make the changing and improvement on every phase so you can achieve your goal.
Let me tell you Lots of Developers do not focus on requirement engineering may be because the product for which client is asking they have developed lots of time for other clients they have all requirements so there is no need to get into requirement engineering process again similarly lots of people do not consider the design and documentation of software an important part of the software and try to achieve the all goals on the programming level yes this is true you can achieve some level of efficiency by using efficient algorithms and programming approaches but the fault following you from the requirement engineering, design or documentation phase will remain there as you are programming on the base of design and requirements so how you can overcome the problem of base in last stage of building(Programming) you have to make the best base so you can develop a good product on that base.
Note: Some People assume that software testing is the Software quality assurance no not at all software quality assurance is a  big field on the other hand software testing is the process in which you only test the final products you have you can fix the minor level issue there not the major design and requirement level engineering mistakes there.
Now when it is clear that is is important to focus on Software quality assurance from very basic to final level we should keep in mind some key aspects of quality and we should try our level best to achieve those in the development may be they can help you in delivering quality product.
The Key aspects are:
  • Meet Requirements
  • Good Looking
  • Reliable
  • Maintainable
  • Rapid repair for defects
  • Good customer support
  • Value for Money
Meet Requirements : As I mention a lot earlier requirements is an important point you have to collect them from customer carefully and should full fill them. If you are developed product is good looking working fine and speedy but not able to do properly what your customer want it is totally useless so your product should meet the requirements of customer.
Good Looking : If you think your product is delivering all functionalities what a customer want and that is enough may be the customer will not demand it that software should be good looking but it is your job to make it good looking and attractive functionalities are inside the software but look is the first impression make the first impression good customer should feel I pay for something real.
Reliable : Your product should be reliable it should perform functionalities same after one year as it was providing on the first day. If it is changing its behavior from time to time losing your data or important information your software is not reliable make it reliable by sorting out these problems.
Maintainable :  Your product is good providing all functionality with pretty cool look believe me now one will buy it if you tell them “If once it will get out of order it is not possible to maintain it so use it carefully” yes people use products carefully for as they pay for it but if it is non maintainable people are not going to buy it make it easy to maintainable.
Rapid repair of defects :  When the software start working in real environment face problems like bugs and many more defects also this is not a problem as I told you no one software is perfect. The actual problem start when the defect arises in the software and we can not repair them rapidly because in some cases it may lead organizations to the lose of millions and billions.
For Example :  A software on report whose responsibility is to verify the Passport and Visa stop working due to a defects. If we will not provide the rapid repair for the defect may be the airport authorities will cancel their international flights as they can not allow anyone to go some other country without verification.
Good customer support : In some sense good customer support is like resolving their issues on time and make them happy as i mention in the previous point but the good customer support is also involve the way of dealing your client and make them feel special for you so they can trust on you and can avail your services latter on when ever it is needed.
Value for Money : What ever product you are providing to customer the customer is paying you for it. Make him feel he paid for the right thing by providing Good looking interface,Good Service & Proper requirement meeting product.