UNIT I Introduction to Software Engineering and Software Requirements
Introduction - Definition-Characteristics of Software Engineers ,Systems Developer, Application Developer -Program
and Software Product -SDLC-Process Models: Waterfall Model, RAD Model, Spiral Model, V-mode, lncremental
Model, Agile Model, Iterative Model, Big-Bang Model, Prototype Model-Unified Process -Project Management- Tools-
Gantt Chart- PERT Chart.
1. INTRODUCTION TO SOFTWARE ENGINEERING
Software:
Software is:
Instructions (computer programs) that when executed provide desired features,
function, and performance;
Data structures that enable the programs to adequately manipulate information, and
Descriptive information in both hard copy and virtual forms that describes the
operation and use of the programs.
Simply, it is a program and other operating information used by a computer to perform some task.
Examples: Picasa, Windows media player, web browsers and word processors.
Software is more than just a program code. Software is considered to be collection of
executableprogramming code, associated libraries and documentations.
Characteristics of Software:
A software product can be judged by what it offers and how well it can be used.
Well-engineered and crafted software is expected to have the following characteristics:
Operational Transitional Maintenance
This tells us how well This aspect is important when the This aspect briefs about how well a
software works in software is moved from one software has the capabilities to
operations. platform to another: maintain itself in the ever-changing
environment
It can be measured on: It can be measured on: It can be measured on:
Usability Portability Modularity
Efficiency Interoperability Maintainability
Correctness Reusability Flexibility
Functionality Adaptability Scalability
Dependability
Security
Safety
Software has characteristics that are considerably different than those of hardware:
Software is developed or engineered; it is not manufactured in the classical sense.
Although some similarities exist between software development and hardware
manufacture, the two activities are fundamentally different.
In both the activities, high quality is achieved through good design, but the
manufacturing phase for hardware can introduce quality problems that are nonexistent (or
easily corrected) for software.
Both the activities are dependent on people, but the relationship between people is
totally varying. These two activities require the construction of a "product" but the
approaches are different.
, Software costs are concentrated in engineering which means that software projects
cannot be managed as if they were manufacturing.
Software doesn’t “wear out.”
The following figure 1.1 shows the relationship between failure rate and time.
Consider the failure rate as a function of time for hardware. The relationship is called the
bathtub curve, indicates that hardware exhibits relatively high failure rates early in its life,
defects are corrected and the failure rate drops to a steady-state level for some period of
time.
Figure 1.1 Figure 1.2
Though defects can be corrected and rectified as time passes the failure rate rises
again as hardware components suffer from the cumulative effects of dust, vibration, abuse,
temperature extremes, and many other environmental maladies. Stated simply, the hardware
begins to wear out.
But software does not wear out. But, deteriorate!
During its life, software will undergo change. As changes are made, it is likely that
errors will be introduced, causing the failure rate curve to spike as shown in the “actual
curve” (Figure 1.2). Before the curve can return to the original 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.
Although the industry is moving toward component-based construction, most software
continues to be custom built.
A software component should be designed and implemented so that it can be reused
in many different programs.
Modern reusable components encapsulate both data and the processing that is
applied to the data, enabling the software engineer to create new applications from reusable
parts
Software Products:
They are two types
1. Generic products
2. Customized products
Generic Product Customized Product
They are developed by an organization and sold They are developed by an organization for specific
to an open market(public). Customer.
Ex: Whatsapp, Windows movie maker. Ex: Library management system for specific college
, Software Application Domains:
1. System Software: It is a collection of programs written to service other
programs.
Example: compilers, editors, and file management utilities
2. Application software: These are stand-alone programs that solve a
specific business need.Example: point-of-sale transaction processing, real-
time manufacturing process control.
3. Engineering/scientific software: Applications range from astronomy to
volcanology, from automotive stress analysis to space shuttle orbital
dynamics, and from molecular biology to automated manufacturing.
4. Embedded software: These reside within a product or system and are
used to implement and control features and functions for the end user and
for the system itself.
Example: key pad control for a microwave oven.
5. Product-line software: These are designed to provide a specific capability
for use by many different customers
Example: e.g., word processing, spreadsheets, computer graphics,
multimedia, entertainment, database management, and personal and
business financial applications
6. Web applications: It is called as “WebApps,” .This network-centric
software category spans a wide array of applications. In their simplest
form, WebApps can be little more than a set of linked hypertext files that
present information using text and limited graphics.
7. Artificial intelligence software: This makes use of non-numerical
algorithms to solve complex problems that are not Susceptible to
computationor straightforward analysis.
Example: Robotics, expert systems, pattern recognition (image and voice),
artificial neural networks, theorem proving, and game playing.
Legacy software:
Legacy software systems are those that have been continually modified to
meet changes in business requirements and computing platforms.
Advantages:
The software must be adapted to meet the needs of new computing
environments or technology.
The software must be enhanced to implement new
businessrequirements.
The software must be extended to make it interoperable with other
moremodern systems or databases.
The software must be re-architected to make it viable within a
networkenvironment.
Disadvantages:
For large organizations, these legacy software are costly to maintain
and risky to evolve.
Legacy systems sometimes have inextensible designs, convoluted
code, poor or nonexistent documentation, test cases and results that
were never achieved.
Introduction - Definition-Characteristics of Software Engineers ,Systems Developer, Application Developer -Program
and Software Product -SDLC-Process Models: Waterfall Model, RAD Model, Spiral Model, V-mode, lncremental
Model, Agile Model, Iterative Model, Big-Bang Model, Prototype Model-Unified Process -Project Management- Tools-
Gantt Chart- PERT Chart.
1. INTRODUCTION TO SOFTWARE ENGINEERING
Software:
Software is:
Instructions (computer programs) that when executed provide desired features,
function, and performance;
Data structures that enable the programs to adequately manipulate information, and
Descriptive information in both hard copy and virtual forms that describes the
operation and use of the programs.
Simply, it is a program and other operating information used by a computer to perform some task.
Examples: Picasa, Windows media player, web browsers and word processors.
Software is more than just a program code. Software is considered to be collection of
executableprogramming code, associated libraries and documentations.
Characteristics of Software:
A software product can be judged by what it offers and how well it can be used.
Well-engineered and crafted software is expected to have the following characteristics:
Operational Transitional Maintenance
This tells us how well This aspect is important when the This aspect briefs about how well a
software works in software is moved from one software has the capabilities to
operations. platform to another: maintain itself in the ever-changing
environment
It can be measured on: It can be measured on: It can be measured on:
Usability Portability Modularity
Efficiency Interoperability Maintainability
Correctness Reusability Flexibility
Functionality Adaptability Scalability
Dependability
Security
Safety
Software has characteristics that are considerably different than those of hardware:
Software is developed or engineered; it is not manufactured in the classical sense.
Although some similarities exist between software development and hardware
manufacture, the two activities are fundamentally different.
In both the activities, high quality is achieved through good design, but the
manufacturing phase for hardware can introduce quality problems that are nonexistent (or
easily corrected) for software.
Both the activities are dependent on people, but the relationship between people is
totally varying. These two activities require the construction of a "product" but the
approaches are different.
, Software costs are concentrated in engineering which means that software projects
cannot be managed as if they were manufacturing.
Software doesn’t “wear out.”
The following figure 1.1 shows the relationship between failure rate and time.
Consider the failure rate as a function of time for hardware. The relationship is called the
bathtub curve, indicates that hardware exhibits relatively high failure rates early in its life,
defects are corrected and the failure rate drops to a steady-state level for some period of
time.
Figure 1.1 Figure 1.2
Though defects can be corrected and rectified as time passes the failure rate rises
again as hardware components suffer from the cumulative effects of dust, vibration, abuse,
temperature extremes, and many other environmental maladies. Stated simply, the hardware
begins to wear out.
But software does not wear out. But, deteriorate!
During its life, software will undergo change. As changes are made, it is likely that
errors will be introduced, causing the failure rate curve to spike as shown in the “actual
curve” (Figure 1.2). Before the curve can return to the original 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.
Although the industry is moving toward component-based construction, most software
continues to be custom built.
A software component should be designed and implemented so that it can be reused
in many different programs.
Modern reusable components encapsulate both data and the processing that is
applied to the data, enabling the software engineer to create new applications from reusable
parts
Software Products:
They are two types
1. Generic products
2. Customized products
Generic Product Customized Product
They are developed by an organization and sold They are developed by an organization for specific
to an open market(public). Customer.
Ex: Whatsapp, Windows movie maker. Ex: Library management system for specific college
, Software Application Domains:
1. System Software: It is a collection of programs written to service other
programs.
Example: compilers, editors, and file management utilities
2. Application software: These are stand-alone programs that solve a
specific business need.Example: point-of-sale transaction processing, real-
time manufacturing process control.
3. Engineering/scientific software: Applications range from astronomy to
volcanology, from automotive stress analysis to space shuttle orbital
dynamics, and from molecular biology to automated manufacturing.
4. Embedded software: These reside within a product or system and are
used to implement and control features and functions for the end user and
for the system itself.
Example: key pad control for a microwave oven.
5. Product-line software: These are designed to provide a specific capability
for use by many different customers
Example: e.g., word processing, spreadsheets, computer graphics,
multimedia, entertainment, database management, and personal and
business financial applications
6. Web applications: It is called as “WebApps,” .This network-centric
software category spans a wide array of applications. In their simplest
form, WebApps can be little more than a set of linked hypertext files that
present information using text and limited graphics.
7. Artificial intelligence software: This makes use of non-numerical
algorithms to solve complex problems that are not Susceptible to
computationor straightforward analysis.
Example: Robotics, expert systems, pattern recognition (image and voice),
artificial neural networks, theorem proving, and game playing.
Legacy software:
Legacy software systems are those that have been continually modified to
meet changes in business requirements and computing platforms.
Advantages:
The software must be adapted to meet the needs of new computing
environments or technology.
The software must be enhanced to implement new
businessrequirements.
The software must be extended to make it interoperable with other
moremodern systems or databases.
The software must be re-architected to make it viable within a
networkenvironment.
Disadvantages:
For large organizations, these legacy software are costly to maintain
and risky to evolve.
Legacy systems sometimes have inextensible designs, convoluted
code, poor or nonexistent documentation, test cases and results that
were never achieved.