Relationship of Software Engineering

Big Image

Software engineering is not a standalone field -it works in tandem with several other disciplines, two of which are outline here:

Management science – Managing Software engineering projects draws heavily from Management Science and from Project Management in particular. Two aspects of project management are of interest to every Software Project Manager- these are :

1. Technical Management :- This includes issues like project estimation, project scheduling, human resource planning, and task assignment, project monitoring and tracking.

2. Personal Management :– This includes issues like hiring right kind of people, trainee persons on the project, motivating teams and assigning tasks to right kind of people.

Systems Engineering -It is a field concerned with studying complex systems. Software systems are sometimes components of larger systems. For instance, flight control software on an airplane is a part of a larger, more complicated system. It will therefore, become important for a software engineer who is writing software for such a component of a system to study the complexities of the system at large.

Role of a Software Engineer

In today’s IT world there is a need for a new type of engineer, who understands both the fundamental concepts of computing, as imparted by computer science, as well as the skill and ability to apply these concepts to the creation of useful, cost-effective software System.

Apart from being a good programmer, a software engineer must be familiar with various design approaches, be able to translate user requirements into specifications, as well as able to interact with the users on various areas of an application.

During interaction with the user, a software engineer must be able to the users’ choice with regard to the tradeoffs that are likely to be faced with each model. A software engineer should also possess good communicational and interpersonal skills. It is important for him to be able to work efficiently with team members.

Therefore a software engineer should be able to move with equal ease through the different stages of a project- such as determination of system requirements, detailed coding levels, implementation and signoff. Beside his technical capabilities he is also expected to sharpen his managerial skills so that he can participate in the project in a wholesome manner.

But, this should not give the impression that a software engineer on the project is a ‘jack of trades’. So where are the specialists? Of course, there are specialists on a project- analysts for conducting analysis, design specialists for designing a system, but every member should have an all round perspective of the project.

Defining a Software Engineer

“A Software Engineer is a person who applies software engineering principles to the process of software development”.

As Software Engineering is applicable to all the phases of software development, a software engineer can be an analyst, a designer, a programmer, tester or a project manager.

Problems related to Software Development

A good Software Engineer should always remember the pitfalls encountered in project development process and deal with the problems efficiently. The major problems related to the software development process are listed below :

1. Multiplicity of paradigms :- which is better suited to a problem?

2. Improper understanding of user requirements.

3. Use of improper programming practices :- little or no documentation, minimal structured techniques in use etc.

4. Implementation issues treated as a last minute activities, giving rise to a host of implementation related problems, improper/inadequate hardware, improper user training etc.

5. Software quality assurance treated as a programmer’s job, done at the 11th hour, no procedures for the same, no reviews and no test plans.

6. Software project management performed by people ill-equipped with the knowledge to do so, practiced only to the extent of estimating project duration in order to give the user a project end date, estimates rely on “gut-feel” and is “off-the-cuff”.

7. Maintenance of software not thought of and provided for in the early stages of the project-treated as an after thought and as and when need arises activity.

8. Use of integrated CASE packages largely non-existent- use of some very basic CASE tool depending on the liking of the developers.

9. Using development technologies, which may be unsuitable to the nature of the problem-since OO technology is fashionable and “in”, one would like to use it because experience on a OO project is good to have.

Client Login

User ID
Password
 
Our offshore clients may login for review the status of the work, place another order , cash settlements etc.

Related Readings:

ImageWhy  Outsourcing to India ?
With the process of Business Outsourcing being proved an effective method over the time, it was evident that CLAVE LAND learns and moves with the racing market.

Accommodating specifically cost controlled budget on a comparative study, accompanied by highly skilled professionals working with cultural ethos, India has always been with the reputation as being the forerunner in Outsourced services.

CLAVE LAND maintains an Offshore software Development Company (ODC) in India essentially to provide budget software development outsourcing services to its clients.
 

ImageOffshore Software Development Approach
Keeping in mind the needs of our clients, CLAVE LAND's software outsourcing approach in India was initiated by facilitating services, extending the resources in a country developing rapidly in the IT sector.
With the contemporary best of software professionals, web designers, conceptualists and skilled software developers available in hand, CLAVE LAND's Offshore Outsourcing decision has been justified over the period of time.

ImageQuality Assurance
Quality is an ever-extending goal - the better you are, the better you need to be.

Outsourced software quality assurance is the best bet to assure the performance of any software without sacrificing on deadlines and resource utilization. Design and development usually get a lot of attention while putting software together. What usually gets sacrificed due to a rush to market is quality.

The improvement quality process is infinite, and marked only by milestones, never by completion! We recognize that, to fulfill our goal of self-evident quality, we need to constantly improve our deliverables to match the increasing expectations of our customers. With standardization being the key to all growth - we review all software development processes periodically and enhance them regularly to move towards standardization.
CLAVE LAND 's periodic quality training sessions of coding standards, best coding practice, documentation standards and quality assurance to enhance the performance of all employees.