You are on page 1of 10

Chapter 1

Software and
Software Engineering
Source:
Roger S. Pressman
Software Engineering: Practitioner's Approach 7th Edition
McGraw-Hill International Edition, 2010

Discussion

Provide a number of examples (both positive and


negative) that indicate the impact of software in our
society!
Is software does not wear out, why does it
deteriorate?
Why are large number of legacy software systems
written more than 10 years ago still being used
today?
Why is it important to understand the customer's
problem before creating a software solution?
Roger S. Pressman, Software Engineering:
A Practitioner's Approach, McGraw-Hill,
2010

Definitions of Software

Instructions (computer programs) that when


executed provide desired features, function,
and performance
Data structures that enable the programs to
adequately manipulate information
Descriptive information in both hard copy and
virtual forms that describes the operation and
use of the programs
Roger S. Pressman, Software Engineering:
A Practitioner's Approach, McGraw-Hill,
2010

Legacy Software

Legacy software systems were developed


decades ago and have been continually
modified to meet changes in business
requirements and computing platforms.
The proliferation of such system is causing
headache for large organizations who find them
costly to maintain and risky to evolve (Dayani
Fard)

Roger S. Pressman, Software Engineering:


A Practitioner's Approach, McGraw-Hill,
2010

WebApps

WebApps have evolved into sophisticated


computing tools that not only provide standalone function to the end user, but also have
been integrated with corporate databases and
business application

Roger S. Pressman, Software Engineering:


A Practitioner's Approach, McGraw-Hill,
2010

Attributes of WebApps

Network
intensiveness

Data driven

Content sensitive

Concurrency

Continuous evolution

Unpredictable load

Immediacy

Performance

Security

Availability

Aesthetics

Roger S. Pressman, Software Engineering:


A Practitioner's Approach, McGraw-Hill,
2010

Realities About Software

When a new application is to be built, many voices must be heard

The complexity of new computer-based systems and products


demands careful attention to the interactions of all system
elements

Design becomes a pivotal activity

If the software fails, people and major enterprises can experience


anything from minor inconvenience to catastrophic failures

An effort should be made to understand the problem before a software


solution is eveloped

Software should exhibit high quality

As its user base and time in use increase, demands for adaptation
and enhancement will also grow

Software should be maintainable

Roger S. Pressman, Software Engineering:


A Practitioner's Approach, McGraw-Hill,
2010

Software Engineering
Definitions
1.The application of systematic, diciplined,
quantifiable approach to the development,
operation, and maintenance of software; that is,
the application of engineering to software
2.The study of approaches as in (1)

Roger S. Pressman, Software Engineering:


A Practitioner's Approach, McGraw-Hill,
2010

The Essence Of Problem Solving (George Polya)

Understand the problem

Plan a solution

Modeling and software design

Carry out the plan

Communication and analysis

Code generation

Examine the result

Testing and quality assurance


Roger S. Pressman, Software Engineering:
A Practitioner's Approach, McGraw-Hill,
2010

Generic Process Framework

Communication

Planning

To better understand software requirements and the design that will achieve
those requirements

Construction

Defines the software engineering work by describing the technical task to be


conducted

Modeling

Understand stakeholders' objectives for the project and gather requirements

Combines code generation and the testing

Deployment

The software is delivered to the customer


Roger S. Pressman, Software Engineering:
A Practitioner's Approach, McGraw-Hill,
2010

You might also like