Tuesday, 23 June 2009

SOFTWARE ENGENEERING

This topic was presented by
Nelson Shoo and
Christine Obed.

Introduction.
Software engineering Is the systematic approach to the design, construction, development and maintenance of computer programs.

Programming languages started to appear and spread in the early 1950’s, the languages such as Fortran, Algon and Cobol were the first language to be released
In 1968-1970 the birth of software engineering emerged, this was the effect of NATO software engineering conference.
Since then until present there was major improvement of software engineering.

Why we need software engineering.
In order to overcome the crisis and the demand of the present generation.
To improve the development of software that is producing high quality, cheaper, maintainable and deliver them at time.

Types of software engineering.
There are about four types of software engineering process.
Retail software.
It is the type that sold off the shelves of retail stores.
OEM software
This refers to software sold in bulk to resellers, designed to be bundled with hardware. Eg Microsoft.
Shareware.
Is the software that can be downloaded from the internet but after a several period of time the customer have to purchase.
Freeware.
This is another type of software which is downloaded from the internet for free but for person use, while commercial use it requires a paid license.

Software development falls under the following mode.
Software requirement analysis, System analysis and design, Code generation, Testing, and Maintenance.
Software engineering tools.
The process of developing software needs some tools that supports the process.
Engineering software .
These are computer aided tools which provides automated support of development process for example computer code. These tools are referred as CASE(Computer Aided Software Engineering) .
Methodologies of Software Engineering.
Object oriented Programming (OOP).
Is the computer program that used data structure to design application and computer program.
Rapid Application development(RAD)
It refers to a type of software development life cycle which uses minimal planning in favor of rapid prototyping.
Scrum. (all at once ) Is the type of methodology where different people with experience work together so as to manage complex work, such as new product development.
Team software process.
A defined operation process frame work that is designed to help teams of managers and engineers to organize and produce large-scale software projects.

Challenges of software engineering.
The technology of developing software is confined with the following challenges;
The ongoing change of technology gives designers a hard time in implementing the needed software in the society.
Rising of complexity of requirements from the users and their expectation, this also have a great effect in the process of development of software which can satisfy the need of all people.
Failure to implement the expected software; this may be a result of poor requirements from the customer.

Conclusion.
The topic have great impact in our professional because it familiarize us with the important process involved in the development of software. To understand the needs of the customer is important thing. Programming is all about software engineering and a good programmer is not the one who know how to write code but the one end up with a good result intended by the people.

No comments: