1
SOFTWARE ENGINEERING
UNIT-1
1. The Nature of Software
Defining Software
Software Application Domains
Legacy Software
2. The Unique Nature of WebApps
3. Software Engineering
4. The Software Process
5. Software Engineering Practice
The Essence of Practice
General Principles
6. Software Myths
7. A Generic Process Model
Defining a Framework Activity
Identifying a Task Set
Process Patterns
8. Process Assessment and Improvement
9. Prescriptive Process Models
9.1The Waterfall Model
9.2Incremental Process Models
9.3Evolutionary Process Models
9.4Concurrent Models
9.5A Final Word on Evolutionary Processes
10. Specialized Process Models
Component-Based Development
The Formal Methods Model
Aspect-Oriented Software Development
11. The Unified Process
A Brief History
Phases of the Unified Process
12. Personal and Team Process Models
Personal Software Process (PSP)
Team Software Process (TSP)
13. Process Technology
14. Product and Process
www.jntufastupdates.com
, 2
1. The Nature of Software
Today, software takes on a dual role. It is a product, and at the same time, the
vehicle for delivering a product.
As a product, it delivers the computing potential embodied by computer hardware
or more broadly, by a network of computers that are accessible by local hardware.
Whether it resides within a mobile phone or operates inside a mainframe computer,
software is an information transformer—producing, managing, acquiring, modifying,
displaying, or transmitting information that can be as simple as a single bit or as
complex as a multimedia presentation derived from data acquired from dozens of
independent sources.
As the vehicle used to deliver the product, software acts as the basis for the control
of the computer (operating systems), the communication of information (networks), and
the creation and control of other programs (software tools and environments).
Software delivers the most important product of our time—information. It transforms
personal data (e.g., an individual’s financial transactions) so that the data can be more
useful in a local context.
Software manages business information to enhance competitiveness;
Software provides a gateway to worldwide information networks (e.g., the Internet).
Software provides the means for acquiring information in all of its forms.
Software role has undergone significant change over the last half-century.
Software industry has become a dominant factor industrialized world.
Engineering Discipline:
• Engineering is a disciplined approach with some organized steps in a managed
way to construction, operation, and maintenance of software.
• Engineering of a product goes through a series of stages, i.e., planning,
analysis and specification, design, construction, testing, documentation, and
deployment.
• The disciplined approach may lead to better results.
• The general stages for engineering the software include feasibility study and
preliminary investigation, requirement analysis and specification, design, coding,
testing, deployment, operation, and maintenance.
www.jntufastupdates.com
, 3
Software Crisis:
• Software crisis, the symptoms of the problem of engineering the software, began to
enforce the practitioners to look into more disciplined software engineering
approaches for software development.
• The software industry has progressed from the desktop PC to network-based
computing to service-oriented computing nowadays.
• The development of programs and software has become complex with
increasing requirements of users, technological advancements, and computer
awareness among people.
• Software crisis symptoms
• complexity,
• hardware versus software cost,
• Lateness and costliness,
• poor quality,
• unmanageable nature,
• immaturity,
• lack of planning and management practices,
• Change, maintenance and migration,
• etc.
What is Software Engineering?
• The solution to these software crises is to introduce systematic software
engineering practices for systematic software development, maintenance,
operation, retirement, planning, and management of software.
• The systematic means the methodological and pragmatic way of development,
operation and maintenance of software.
• Systematic development of software helps to understand problems and satisfy the
client needs.
www.jntufastupdates.com
, 4
• Development means the construction of software through a series of activities, i.e.,
analysis, design, coding, testing, and deployment.
• Maintenance is required due to the existence of errors and faults, modification of
existing features, addition of new features, and technological advancements.
• Operational software must be correct, efficient, understandable, and usable for work
at the client site.
• IEEE defines
• The systematic approach to the development, operation,
maintenance, and retirement of software.
•
• Defining Software
Software is:
(1) instructions (computer programs) that when executed provide desired features,
function, and performance;
(2) data structures that enable the programs to adequately manipulate information, and
(3) descriptive information in both hard copy and virtual forms that describes the
operation and use of the programs.
Software characteristics
• Software has logical properties rather than physical.
• Software is mobile to change.
• Software is produced in an engineering manner rather than in classical sense.
• Software becomes obsolete but does not wear out or die.
• Software has a certain operating environment, end user, and customer.
• Software development is a labor-intensive task
Software is a logical rather than a physical system element. Therefore, software has
characteristics that are considerably different than those of hardware:
1. Software is developed or engineered; it is not manufactured in the classical sense.
Although some similarities exist between software development and hardware
manufacturing, the two activities are fundamentally different.
In both 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 activities are dependent on people, but the relationship between people applied
and work accomplished is entirely different.
Both activities require the construction of a “product,” but the approaches are
different. Software costs are concentrated in engineering. This means that software
projects cannot be managed as if they were manufacturing projects.
www.jntufastupdates.com
SOFTWARE ENGINEERING
UNIT-1
1. The Nature of Software
Defining Software
Software Application Domains
Legacy Software
2. The Unique Nature of WebApps
3. Software Engineering
4. The Software Process
5. Software Engineering Practice
The Essence of Practice
General Principles
6. Software Myths
7. A Generic Process Model
Defining a Framework Activity
Identifying a Task Set
Process Patterns
8. Process Assessment and Improvement
9. Prescriptive Process Models
9.1The Waterfall Model
9.2Incremental Process Models
9.3Evolutionary Process Models
9.4Concurrent Models
9.5A Final Word on Evolutionary Processes
10. Specialized Process Models
Component-Based Development
The Formal Methods Model
Aspect-Oriented Software Development
11. The Unified Process
A Brief History
Phases of the Unified Process
12. Personal and Team Process Models
Personal Software Process (PSP)
Team Software Process (TSP)
13. Process Technology
14. Product and Process
www.jntufastupdates.com
, 2
1. The Nature of Software
Today, software takes on a dual role. It is a product, and at the same time, the
vehicle for delivering a product.
As a product, it delivers the computing potential embodied by computer hardware
or more broadly, by a network of computers that are accessible by local hardware.
Whether it resides within a mobile phone or operates inside a mainframe computer,
software is an information transformer—producing, managing, acquiring, modifying,
displaying, or transmitting information that can be as simple as a single bit or as
complex as a multimedia presentation derived from data acquired from dozens of
independent sources.
As the vehicle used to deliver the product, software acts as the basis for the control
of the computer (operating systems), the communication of information (networks), and
the creation and control of other programs (software tools and environments).
Software delivers the most important product of our time—information. It transforms
personal data (e.g., an individual’s financial transactions) so that the data can be more
useful in a local context.
Software manages business information to enhance competitiveness;
Software provides a gateway to worldwide information networks (e.g., the Internet).
Software provides the means for acquiring information in all of its forms.
Software role has undergone significant change over the last half-century.
Software industry has become a dominant factor industrialized world.
Engineering Discipline:
• Engineering is a disciplined approach with some organized steps in a managed
way to construction, operation, and maintenance of software.
• Engineering of a product goes through a series of stages, i.e., planning,
analysis and specification, design, construction, testing, documentation, and
deployment.
• The disciplined approach may lead to better results.
• The general stages for engineering the software include feasibility study and
preliminary investigation, requirement analysis and specification, design, coding,
testing, deployment, operation, and maintenance.
www.jntufastupdates.com
, 3
Software Crisis:
• Software crisis, the symptoms of the problem of engineering the software, began to
enforce the practitioners to look into more disciplined software engineering
approaches for software development.
• The software industry has progressed from the desktop PC to network-based
computing to service-oriented computing nowadays.
• The development of programs and software has become complex with
increasing requirements of users, technological advancements, and computer
awareness among people.
• Software crisis symptoms
• complexity,
• hardware versus software cost,
• Lateness and costliness,
• poor quality,
• unmanageable nature,
• immaturity,
• lack of planning and management practices,
• Change, maintenance and migration,
• etc.
What is Software Engineering?
• The solution to these software crises is to introduce systematic software
engineering practices for systematic software development, maintenance,
operation, retirement, planning, and management of software.
• The systematic means the methodological and pragmatic way of development,
operation and maintenance of software.
• Systematic development of software helps to understand problems and satisfy the
client needs.
www.jntufastupdates.com
, 4
• Development means the construction of software through a series of activities, i.e.,
analysis, design, coding, testing, and deployment.
• Maintenance is required due to the existence of errors and faults, modification of
existing features, addition of new features, and technological advancements.
• Operational software must be correct, efficient, understandable, and usable for work
at the client site.
• IEEE defines
• The systematic approach to the development, operation,
maintenance, and retirement of software.
•
• Defining Software
Software is:
(1) instructions (computer programs) that when executed provide desired features,
function, and performance;
(2) data structures that enable the programs to adequately manipulate information, and
(3) descriptive information in both hard copy and virtual forms that describes the
operation and use of the programs.
Software characteristics
• Software has logical properties rather than physical.
• Software is mobile to change.
• Software is produced in an engineering manner rather than in classical sense.
• Software becomes obsolete but does not wear out or die.
• Software has a certain operating environment, end user, and customer.
• Software development is a labor-intensive task
Software is a logical rather than a physical system element. Therefore, software has
characteristics that are considerably different than those of hardware:
1. Software is developed or engineered; it is not manufactured in the classical sense.
Although some similarities exist between software development and hardware
manufacturing, the two activities are fundamentally different.
In both 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 activities are dependent on people, but the relationship between people applied
and work accomplished is entirely different.
Both activities require the construction of a “product,” but the approaches are
different. Software costs are concentrated in engineering. This means that software
projects cannot be managed as if they were manufacturing projects.
www.jntufastupdates.com