Software Engineering - Introduction to Software Engineering Terms

Software Engineering - Introduction to Software Engineering Terms, Software Engineering Notes, Notes on Software Engineering, Software Engineering - Introduction to Software Engineering Terms

Before going through software engineering it's better to discuss about what is software?. Without knowing about software it's bit difficult to know about software engineering.

What is Software? 

In simple meaning software that cannot seen or touchable. Software that helps to interact with the any kind of machine, that helps to operate machine or computer. 

Software is related with computer program. which is the collection of set of program is called software. The program is the collection of instructions.

Software Engineering

Software is not just a program but it is associated with documentation and configuration data that is needed to make these programs operate. Software is the collection of different kind of programs or configuration files. 

There are different kind of software products

Generic products

These kind of software products are generally produced for general used. Means anyone can use these software products. The software development company develop software product and sell for all the general peoples.

Customized or Bespoke

This is also known as tailored software. These kind of software are develops on the  basis of some specific requirements. Customized or Bespoke software are only developed by the customers order. These kind of software products are not for general peoples use. 

What is Software Engineering? 

Software engineering is an engineering discipline whose focuses is the cost effective development of high-quality software systems. Software is abstract and intangible. It is not constrained by materials, or governed by Physical laws or by manufacturing process. 

Software engineering is first proposed in 1968 due to software failure and software crisis. It's is based on component or hardware requirement. 

Software engineer is the person who handles all the aspects of software engineering. Without software engineer there is impossible to develop or impossible to create any system. 

Mostly software engineering is concerned with the practical problems not with the theoretical solutions. It concerned about the producing of the software. Where as computer science is concerned about the all the theoretical knowledge like history and all about computers.  

System engineering is all about the component based development or development of system overall design and architecture of the system and integrating the different parts to create the finished system.

Advantages of Using Software Engineering

  • Improve quality of software.
  • Improve requirement specification. 
  • Improve cost and schedules.
  • Better use of automated tools and techniques.
  • Improve reliability.
  • Improve productivity

Why Software Engineering?

Software engineering is most important while developing a software. This helps in the economies of all the development of software. There are lots of systems are controlled by software. Software engineering is concerned with the theories, methods and tools for professional software development. 

Software Process

Software process are the set of activities which are used to produce a complete software product. 
There are different kind of software process model 

Software specification : In this model customer can specify all the requirement about the software.
Software development : Software engineer or developer will develop the system. 
Software validation : Software validation is the one of the essential part of software development process. Requirement should be validate.
Software evolution : It is where software released and developer will take feedback's from customer and adopt their changes and requirements

Software Process Model

Software process models are one of the simplified model of software process here in software process model there are various methods to develop software. 
Workflow model : This is all about the sequence of activities with their inputs and outputs.
Data/activity model : This represents process of set of activities. It defines how input works and how output works.
Role/action model : This tells about the role of the peoples in the development process. 

Major development process models are given
  1. Waterfall model
  2. Iterative model (Prototype) 
  3. Component-based software engineering (CBSE)

Software Costs

The distribution of cost across the different activities in software process depends on process used an the type of software that is being developed. 

The software cost often dominates system cost. The cost of the software on a PC are often greater than the hardware cost. 

Software cost has to be maintained while developing the software. If that exceeds then the cost of software product also exceeds. Roughly 60% of costs are development cost and 40% costs are testing costs. 

The cost of software is depends on the complexity of the software. If software is complex then cost will go high and software is low range or not complex the cost will not rise much. 

Challenges Facing Software Engineering

Trust Challenge : If customer provides requirements to software developer. Then software developer should develop the trust-able software for customer. Means old and valuable systems must be maintained and updated. 

Heterogeneity :  Software should be different from previous, there may the use of distributed system 
Software engineer should have to develop dependable software and flexible software that may be written in different programming languages.

Delivery : After the development of the software or finished software should be delivered in time. Do not take must time to develop software complete the project on schedule. This is the most complex task for developer. 

Characteristics of Good Software

Software should have these good attributes, without these it is impossible to trust any software. 
Maintainable : Software should be written in easy and understandable language. If customer wants any change that should be changeable. 

Dependable: It means software should have some characteristics like, reliable, safe , dependable. Software should not cause any physical and economic damage. 

Usability : Software must be usable, developer should deliver software with its documentation. Without the help of documentation general users cannot use software 

Efficiency :  Software should not make waste of time and waste of use. It requires responsiveness, processing time and memory utilization. 

You May Also Like...

Socialize with Us