What is Software Engineering?

tagcloudsoftwareengineering4

What is Software Engineering? Video

The engineering field has taken on many new disciplines as our scientific knowledge has grown. The latest discipline is software engineering. According to the Institute of Electrical and Electronics Engineers (IEEE), software engineering means applying the principles of engineering to the software development field. Software engineering differs from other branches of engineering in that professionals are building an intangible structure and not a tangible one. It is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures. The outcome of software engineering is an efficient and reliable software product.

When software projects require engineering, the process begins long before the product is designed – and it continues long afterward. It begins with a thorough study of the software requirements. Some requirements involve the functions the program needs to carry out. The program may, for example, need to verify that a user is authorized to access it. Other requirements involve constraints, for example, systems already in place.

The next stage is software design. This involves creating algorithms, or instructions for the computer. The actual coding process may be completed by software engineers, who have comprehensive training, or by programmers who are versed only in coding.

software-engineer-job-description

 


Software Development Life Processes

Is releated to Software Development Life Cycle which is is a process used by software industry to design, develop and test high quality softwares. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.

LCP

 

Stages of a software development process:

1 – PLANNING AND REQUIREMENT ANALYSIS

It is performed by the senior members of the team with inputs from the customer, the sales department, market surveys and domain experts in the industry. This information is then used to plan the basic project approach and to conduct product feasibility study in the economical, operational, and technical areas.

2 – DEFINING REQUIREMENTS

Next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts.

3 – DESIGNING THE PRODUCT ARCHITECTURE

SRS is the reference for product architects to come out with the best architecture for the product to be developed. Based on the requirements specified in SRS, usually more than one design approach for the product architecture is proposed and documented in a DDS – Design Document Specification.

4 – BUILDING OR DEVELOPING THE PRODUCT

The programming code is generated as per DDS during this stage. If the design is performed in a detailed and organized manner, code generation can be accomplished without much hassle.

5 – TESTING THE PRODUCT

This stage refers to the testing only stage of the product where products defects are reported, tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.

6 – DEPLOYMENT IN THE MARKET AND MAINTENANCE

The product may first be released in a limited segment and tested in the real business environment

software-development-life-cycle-6-6381
iterative2
spiral
vmodel
Continue reading "Software Development Life Processes"

Agile Scrum Methodology – First part

Scrum is a lightweight agile project management framework with broad applicability for managing and controlling iterative and incremental projects of all types.
With “Scrum” methodology, the “Product owner” works closely with the team to identify and prioritize system functionality in form of a “Product Backlog”.

Scrum is a sub-group of agile:
Agile is a set of values and principles that describe a group’s day-to-day interactions and activities. Agile itself is not prescriptive or specific.
The Scrum methodology follows the values and principles of agile, but includes further definitions and specifications, especially regarding certain software development practices.

Organizations that have adopted agile Scrum have experienced:

Higher productivity
Better-quality products

Reduced time to market
Improved stakeholder satisfaction
Better team dynamics
Happier employees

To get started with agile Scrum, it is not uncommon for an individual Scrum team to use simple Scrum tools like a whiteboard, sticky notes, or a spreadsheet to manage the product backlog and the progress of the sprint backlog items in each sprint.

 

To be continued:

https://carlosrueda.wordpress.com/2016/08/26/scrum-framework-in-software-engineering/