Sunday, 3 June 2012

Scope of Software Engineering

In continuation to my previous post, here I am going to write about Aspects, Scope and Design pattern of Software Engineering.

The scope of software engineering is extremely broad but in general, following five aspects are involved.

*      Historical Aspects
The term Software Engineering, first coined by NATO study group in 1967, building software is similar to other engineering tasks. To solve the software crisis, Software engineering should use the philosophies and paradigms of established engineering disciplines.

*      Economic Aspects
Feasibility study of new techniques should be done in terms of economics. If new techniques are not economically viable then it may lead towards the software failure due to Over Budget.

The computer scientist investigates several ways to produce software, some good and some bad, but the software engineer is interested in only those techniques that make sound economic sense.

For e.g.: If a new coding method is 10% faster than the currently used method. Should it be used?

Now in this scenario most of the peoples would go with the answer “Yes, of course”;

But in terms of Software Engineering answer would be “What would be the cost of implementation?”

*      Maintenance Aspects
Maintenance is described within the context of the software life cycle.
                                                              i.      Requirement phase
                                                            ii.      Specification phase
                                                          iii.      Planning Phase
                                                           iv.      Design Phase
                                                             v.      Implementation Phase
                                                           vi.      Integration Phase
                                                         vii.      Maintenance Phase
                                                       viii.      Retirement

More details about these phases would be share in upcoming posts.

*      Requirement, Analysis and Design Aspects
Under this aspect two commonly used design paradigms are given below:
a)      Structured Design paradigm
This design model is further divided into 2 different types
a) Action (Function) oriented, OR
b) Data Oriented

b)     Object Oriented Design paradigm
Both data and actions are of equal importance. System is collection of interacting Objects.

*      Team Development Aspects
Large software products are developed by large software teams. And members have different responsibilities like requirements, design, implementation, and testing. Activities betweens the teams have to be well organized for efficiency.

I hope this article will help others to understand the scope of Software Engineering and what other aspects are to be considering in Scope of SE.