7 September 2012

SE - A Layered Technology

Quality, Process, Methods, and Tools



Software engineering is a layered technology. Most engineering approaches (including software engineering) must rest on an organizational commitment to quality. The bedrock that supports software engineering is a "quality focus" layer.
  1. Quality: A product should meet its specification. This is problematical for software systems. There is a tension between customer quality requirements (efficiency, reliability, etc.), developer quality requirements (maintainability, reusability, etc.), users (usability, efficiency, etc.), and etc. But note: 
    • Some quality requirements are difficult to specify in an unambiguous way.
    • Software specifications are usually incomplete and often inconsistent.
  2. Process: The foundation for software engineering is the process‘ layer. Software engineering process is the glue that holds the technology together and enables rational and timely development of computer software. The work products are produced, milestones are established, quality is ensured, and changes are properly managed. 
  3. Methods: Software engineering methods provides the technical how-to‘s for building software. Methods encompass a broad array of tasks that include the requirements analysis, design, program construction, testing, and support. 
  4. Tools: Software engineering tools provide automated or semi-automated supports for the process and the methods. When the tools are integrated so that the information created by one tool can be used by another, a system for the support of software development, called computer-aided software engineering (CASE). CASE combine software, hardware, and software engineering database.

3 September 2012

Few Definitions of Software Engineering

  1. Software Engineering is an engineering discipline which is concerned with all aspects of software production.
  2. Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the design, development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.
  3. In Software Engineering we study how to build and maintain software systems in a controlled, predictable way. A good software engineering should give control over Functionality, Quality and Resources.
  4. Software Engineering is a branch of computer science that creates practical, cost-effective solutions to computing and information processing problems, preferentially by applying scientific knowledge and developing software systems in the service of mankind.
 

2 September 2012

The week for Software Engineering





 Warm Greetings to All!!!



This week I will be posting a few known facts about "Software Engineering". This subject forms the base for all the software engineers and managers. Without the knowledge of this subject, I believe, it is difficult to be competitive in the IT industry.

More than just a post, let this be interactive. So, I hereby request to post comments for the topics that will be shared in the form of reviews, new information and so on.

--Rajiv