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 parts
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 has been borrowed.
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 required from the system.
Role of a system analyst

The 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 projects

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 with

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 data is collected. After that requirement specification is carried out. Finally,


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 assumptions

 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 input data to the system and output data to be produced by the system.

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. But all other life cycle models are essentially derived from the classical waterfall model.

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 Model

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 members about when and what to do. Otherwise it would lead to chaos and project failure.

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 undertaken.

 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 errors from occurring than to correct them as and when they are detected.

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 development which occurred during early 1960s in the area computer programming was the high-level language programming.

Important advantages of structured programming.


  • Structured programs are easier to read and understand.
  •  Structured programs are easier to maintain.

Important features of a structured program.


A structured program uses three types of program constructs 
 selection, 
 sequence
 and iteration.

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 over the years .Organizations are spending larger and larger portions of their budget on software.

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 principles   are indispensable to achieve a good quality software cost effectively. These can be elaborated with the help of a building construction analogy