Professional Documents
Culture Documents
Chapter: Introduction To Software Engineering
Chapter: Introduction To Software Engineering
Software Engineering
Contents..
• Evolving Role of Software
• Hardware vs. Software
• Software characteristics
Evolving Role of Software
Today software takes on a dual role:
1.Software is a product
• Transforms information - produces, manages, acquires, modifies, displays, or transmits
information
• Delivers computing potential of hardware and networks
2.Software is a vehicle for delivering a product
• Controls other programs (operating system)
• Effects communications (networking software)
• Helps build other software (software tools & environments)
What is Software ?
Software can define as:
Instruction – executed provide desire features, function & performance.
Software products may be developed for a particular customer or may be developed for a general market.
Software products may be
Generic - developed to be sold to a range of different customers e.g. PC software such as Excel or Word.
Examples – embedded control systems, air traffic control software, traffic monitoring systems.
Without using software engineering principles it would be difficult to
develop large programs
In industry it is usually needed to develop large programs to accommodate
multiple functions. A problem with developing such large commercial
programs is that the complexity and difficulty levels of the programs increase
exponentially with their sizes.
•Large software - It is easier to build a wall than to a house or building, likewise, as the size of software
become large engineering has to step to give it a scientific process.
•Scalability- If the software process were not based on scientific and engineering concepts, it would be
easier to re-create new software than to scale an existing one.
•Cost- As hardware industry has shown its skills and huge manufacturing has lower down the price of
computer and electronic hardware. But the cost of software remains high if proper process is not adapted.
•Dynamic Nature- The always growing and adapting nature of software hugely depends upon the
environment in which the user works. If the nature of software is always changing, new enhancements
need to be done in the existing one. This is where software engineering plays a good role.
•
•Quality Management- Better process of software development provides better and quality software
product.
2 Characteristics of Good Software
A software product can be judged by what it offers and how well it can be used. This software
must satisfy on the following grounds:
•Operational
•Transitional
•Maintenance
Operational
This tells us how well software works in operations. It can be measured on:
•Budget
•Usability
•Efficiency
•Correctness
•Functionality
•Dependability
•Security
•Safety
Transitional
This aspect is important when the software is moved from one platform to
another:
•Portability
•Interoperability
•Reusability
•Adaptability
Maintenance
This aspect briefs about how well a software has the capabilities to maintain
itself in the ever-changing environment:
•Modularity
•Maintainability
•Flexibility
•Scalability
• Three parties are involved in software engineering:
• Client: The client is the individual who wants a product to be built (developed).
• User: The user is the person or persons on whose behalf the client has
commissioned the product and who will utilize the software.
• Types of software:
• Commercial off-the-shelf (COTS) software: It has multiple copies and the copies are sold at
much lower prices to a large number of buyers. It is developed for “the market”.
• Open-source software: It is developed and maintained by a team of volunteers and may be
downloaded and used free of charge by anyone.
SCOPE OF SOFTWARE ENGINEERING:
The scope of software engineering is extremely broad. In general, five aspects are involved:
• Historical Aspects
• Economic Aspects
• Maintenance Aspects
• Requirements, Analysis, and Design Aspects
• Team Development Aspects
Historical aspects:
● A NATO study group in 1967 coined the term software engineering
• Building software is similar to other engineering tasks
● Software engineering should use the philosophies and paradigms of established
engineering disciplines to solve the software crisis
•Despite many success stories, a large proportion of softwareproducts still are being
• Delivered late
• Over budget
• With residual faults.
Solution: A software engineer has to acquire a broad range of skills, both technical and
managerial. These skills have to be applied to: Programming; and Every step of software
production, from requirements to post_delivery maintenance.
Economic Aspects:
• Before the curve can return to the originally steady state failure rate,
another change is requested causing the curve to spike again Slowly
the minimum failure rate level begins to rise the software is
deteriorating due to change.
Failure curve for Hardware
Failure curve for Software