Tuesday, 1 July 2014

Functional independenceA module having high cohesion and low coupling is said to be functionally independent of other modules. By the term functional independence, we mean that a cohesive module performs a single task or function. A functionally independent module has minimal interaction with other modules.Need for functional independenceFunctional independence is a key to any good design due to...

Monday, 31 March 2014

CouplingCoupling between two modules is a measure of the degree of interdependence or interaction between the two modules. A module having high cohesion and low coupling is said to be functionally independent of other modules. If two modules interchange large amounts of data, then they are highly interdependent. The degree of coupling between two modules depends on their interface complexity.Types...
Cohesion Cohesion is a measure of functional strength of a module. A module having high cohesion and low coupling is said to be functionally independent of other modules. By the term functional independence, we mean that a cohesive module performs a single task or function. A functionally independent module has minimal interaction with other modules. Types of cohesion: coincidental cohesion logical...

Monday, 24 March 2014

Software design and its types

Software design deals with transforming the customer requirements, as described in the SRS document, into a form (a set of documents) that is suitable for implementation in a programming language. A good software design is seldom arrived by using a single step procedure but rather through several iterations through a series of steps. Design activities can be broadly classified into two important...

Sunday, 16 March 2014

Formal techniqueA formal technique is a mathematical method to specify a hardware and/or software system, verify whether a specification is realizable, verify that an implementation satisfies its specification, prove properties of a system without necessarily running the system, etc. The mathematical basis of a formal method is provided by the specification languag...
Decision table:A decision table is used to represent the complex processing logic in a tabular or a matrix form. The upper rows of the table specify the variables or conditions to be evaluated. The lower rows of the table specify the actions to be taken when the corresponding conditions are satisfied....
Decision tree : A decision tree gives a graphic view of the processing logic involved in decision making and the corresponding actions taken. The edges of a decision tree represent conditions and the leaf nodes represent the actions to be performed depending on the outcome of testing the condition. Example:...
    The important properties of a good SRS document are the         following:     There are six properties of good SRS document:       1.concise       2.structured       3.black- box view       4.conceptual integrity      ...

Saturday, 8 February 2014

Role of Software Architecture

What is architecture?  Generally speaking, architecture of a system provides a very high level view of the parts of the system and how they are related to form the whole system. That is, architecture partitions the system in logical parts such that each part can be comprehended independently, and then describes the system in terms of these parts and the relationship between these par...
There is a general view emerging that there is no unique architecture of a system. The definition that we have adopted (given above) also expresses this sentiment. Consequently, there is no one architecture drawing of the system. The situation is similar to that of civil construction, a discipline that is the original user of the concept of architecture and from where the concept of software architecture...
Parts of a SRS document     The important parts of SRS document are: ƒ       Functional requirements of the system         Non-functional requirements of the system         Goals of implementation Functional requirements:- ƒ     The functional requirements part discusses the functionalities...
Role of a system analystThe analyst starts requirements gathering and analysis activity by collecting all information from the customer which could be used to develop the requirements of the system. He then analyzes the collected information to obtain a clear and thorough understanding of the product to be developed,...

Friday, 7 February 2014

Comparison of different life-cycle models The classical waterfall model can be considered as the basic model and all other life cycle models as embellishments of this model. However, the classical waterfall model can not be used in practical development projec...

Tuesday, 4 February 2014

Spiral model The Spiral model of software development is shown in fig. 2.2. The diagrammatic representation of this model appears like a spiral with many loops. The exact number of loops in the spiral is not fixed. Each loop of the spiral represents a phase of the software process. For example, the innermost loop might be concerned with feasibility study. The next loop...
Prototype  A prototype is a toy implementation of the system. A prototype usually exhibits limited functional capabilities, low reliability, and inefficient performance compared to the actual software. A prototype is usually built using several shortcuts. The shortcuts might involve using inefficient, inaccurate,...
Phase-entry and phase-exit criteria of each phase At the starting of the feasibility study, project managers or team leaders try to understand what is the actual problem by visiting the client side. At the end of that phase they pick the best solution and determine whether the solution is feasible financially and technically.At the starting of requirements analysis and specification phase the required...
The classical waterfall model is an idealistic one since it assumes that no development error is ever committed by the engineers during any of the life cycle phases. However, in practical development environments,   the engineers do commit a large number of errors in almost every phase of the life cycle.  The source of the defects can be many:  oversight wrong assumpti...
 phase of the life cycle of waterfall model  feasibility study: -   The main aim of feasibility study is to determine whether it would be financially and technically feasible to develop the product.ƒ     At first project managers or team leaders try to have a rough understanding of what is required to be done by visiting the client side. They study different...

Monday, 3 February 2014

Different phases of the classical waterfall model The classical waterfall model is intuitively the most obvious way to develop software. Though the classical waterfall model is elegant and intuitively obvious, it is not a practical model in the sense that it can not be used in actual software development projects. Thus, this model can be considered to be a theoretical way of developing software....
Different software life cycle models Many life cycle models have been proposed so far. Each of them has some advantages as well as some disadvantages. A few important and commonly used life cycle models are as follows: ƒClassical Waterfall Model ƒIterative Waterfall Mo...
The need for a software life cycle model The development team must identify a suitable life cycle model for the particular project and then adhere to it. Without using of a particular life cycle model the development of a software product would not be in a systematic and disciplined manner.  When a software product is being developed by a team there must be a clear understanding among team...
Life cycle model A software life cycle model (also called process model) is a descriptive and diagrammatic representation of the software life cycle. A life cycle model represents all the activities required to make a software product transit through its life cycle phases. It also captures the order in which these activities are to be undertake...
 Difference between Exploratory style and  modern style of software development  An important difference is that the exploratory software development style is based on error correction while the software engineering principles are primarily based on error prevention. Inherent in the software engineering principles is the realization that it is much more cost-effective to prevent...
Evolution of software design techniques . During the 1950s, most programs were being written in assembly language. These programs were limited to about a few hundreds of lines of assembly code, i.e. were very small in size. Every programmer developed programs in his own individual style - based on his intuition. This type of programming was called Exploratory Programming. The next significant...
Important advantages of structured programming. Structured programs are easier to read and understand.  Structured programs are easier to mainta...
Important features of a structured program. A structured program uses three types of program constructs   selection,   sequence  and iteratio...
Difference between program and software product: Programs are developed by individuals for their personal use. They are therefore, small in size and have limited functionality but software products are extremely large. In case of a program, the programmer himself is the sole user but on the other hand...
Causes of  and solutions for software crisis Software engineering appears to be among the few options available to tackle the present software crisis. To explain the present software crisis in simple words, consider the following. The expenses that organizations all around the world are incurring on software purchases compared to those on hardware purchases have been showing a worrying trend...
Scope and necessity:-   Software engineering is an engineering approach for software development. we can alternatively view it as a systematic collection of past experience. The experience is arranged in the form of methodologies and guidelines. A small can be written without using software engineering principles. But if one  wants to develop a large software product, then software engineering...