You are on page 1of 16

Software Engineering

Why Software Engineering?


As technology advanced, so did the need to build bigger and ever more complex programs. Software development reached a point where it had to be developed by teams. There had to be: - requirements, plans, detailed designs, actual building, testing, development of efficient, intuitive user interfaces, and integration into larger systems of computers, machines, and people.

The discipline to develop software in this manner is known as software engineering, a complex process that itself requires many sub-processes.

What is Software Engineering?


The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

What is Software Engineering?


Software engineering is also defined as the field of computer science that deals with the building of software systems which are so large or so complex that they are built by a team or teams of engineers.

What is Software Engineering?


Usually these software systems exist in multiple versions and are used for many years. During their life-time, they undergo many changesto fix defects, to enhance existing features, to add new features, to remove old features or to be adapted to run in the new environment.

Why a structured approach to the software development process?

Increased dependence of many organizations on their computer systems Crises in previous developments; for example: * increasing costs of software development * dissatisfaction of users and management with the quality and suitability of software * increasing length and complexity of the software.

Why a structured approach to the software development process?

Requirements for standard interfaces, both to users and other software. Need for tighter control and management of process (visibility of the process, risk management)

Importance of the need for the involvement of end users and management.

Attributes of a well-engineered software product


The attributes of a software product are the characteristics displayed by the product, once it is installed and put in use. They are not the services provided by the product. Rather, they are concerned with the products dynamic behavior and the use made of the product.

Attributes of a well-engineered software product


maintainability dependability efficiency usability portability availability of appropriate documentation

Attributes of a well-engineered maintainability


It should be possible to evolve software to meet the changing needs of the customer.

Attributes of a well-engineered dependability


Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure.

Attributes of a well-engineered efficiency


Software should not make wasteful use of system resources such as memory and processor cycle.

Attributes of a well-engineered usability


Software should have an appropriate user interface and documentation

Attributes of a well-engineered portability


This refers to the ability to reuse the existing code instead of creating new code when moving software from one environment to another.
Software portability may be achieved on three different levels: Installed program files may be transferred to another computer.

The program may be reinstalled (from the distribution files) on another computer.
The source files may be compiled for another computer.

Attributes of a well-engineered
availability of appropriate documentation
Computer Software that is accompanied with written text on software documentation or source code documentation. It either explains how it operates or how to use it . Types of documentation include:
Requirements - Statements that identify attributes, capabilities, characteristics, or qualities of a system. This is the foundation for what shall be or has been implemented. Architecture/Design - Overview of software. Includes relations to an environment and construction principles to be used in design of software components. Technical - Documentation of code, algorithms, interfaces, and APIs. End User - Manuals for the end-user, system administrators and support staff. Marketing - How to market the product and analysis of the market demand.

Attributes of a well-engineered
availability of appropriate documentation

Types of documentation include:


Requirements - Statements that identify attributes, capabilities, characteristics, or qualities of a system. This is the foundation for what shall be or has been implemented.

Technical - Documentation of code, algorithms, interfaces, and APIs. API Applications Programming Interface End User - Manuals for the end-user, system administrators and support staff. Marketing - How to market the product and analysis of the market
demand.

You might also like