18
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Chapter 1 Software and Software Software and Software Engineering Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

Embed Size (px)

Citation preview

Page 1: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 1

Chapter 1Chapter 1Software and Software Software and Software

EngineeringEngineering

Page 2: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 2

Overview Overview Software is designed and built by software Software is designed and built by software

engineers. engineers.

Software is used by virtually everyone in society. Software is used by virtually everyone in society.

Software engineers have a moral obligation to build Software engineers have a moral obligation to build reliable software that does no harm to other people. reliable software that does no harm to other people.

Software engineers tend to be concerned with the Software engineers tend to be concerned with the technical elegance of their software products. technical elegance of their software products.

Software users are only concerned with whether or Software users are only concerned with whether or not software products meet their expectations and not software products meet their expectations and make their tasks easier to complete. make their tasks easier to complete.

Page 3: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 3

Important Questions for Software Important Questions for Software Engineers Engineers

Why does it take so long to get software Why does it take so long to get software finished? finished?

Why are development costs so high? Why are development costs so high? Why can't we find all errors before we give the Why can't we find all errors before we give the

software to our customers? software to our customers? Why do we continue to have difficulty in Why do we continue to have difficulty in

measuring progress as software is being measuring progress as software is being developed?developed?

Page 4: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 4

Student activityStudent activity

What makes software so important? What makes software so important? list the ways that software impacts your life. list the ways that software impacts your life.

List five non-computer related businesses where List five non-computer related businesses where software has a significant, if ‘behind the scenes’ software has a significant, if ‘behind the scenes’ impact. impact.

Page 5: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 5

Software’s Dual RoleSoftware’s Dual Role

Software is a productSoftware is a product Delivers computing potentialDelivers computing potential Produces, manages, acquires, modifies, displays, or Produces, manages, acquires, modifies, displays, or

transmits informationtransmits information Modern software is developed by teams of software Modern software is developed by teams of software

specialists specialists Software is a vehicle for delivering a productSoftware is a vehicle for delivering a product

Supports or directly provides system functionalitySupports or directly provides system functionality Controls other programs (e.g., an operating system)Controls other programs (e.g., an operating system) Effects communications (e.g., networking software)Effects communications (e.g., networking software) Helps build other software (e.g., software tools)Helps build other software (e.g., software tools)

Page 6: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 6

What is What is Software?Software?

Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...

Page 7: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 7

What is What is Software?Software?

software is engineeredsoftware is engineered software doesn’t wear out , but it software doesn’t wear out , but it

does deteriorate. does deteriorate. software is complexsoftware is complex Currently, most software is still Currently, most software is still

custom-built.custom-built.

Page 8: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 8

Wear vs. Wear vs. DeteriorationDeterioration

idealized curve

change

actual curve

Failurerate

Time

increased failurerate due to side effects

Page 9: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 9

Software deteriorationSoftware deterioration

The chief reason for software deterioration is The chief reason for software deterioration is that many changes are made to a software that many changes are made to a software product over its lifetime. As changes are made, product over its lifetime. As changes are made, defects may be inadvertently introduced to other defects may be inadvertently introduced to other portions of the software that interact with the portions of the software that interact with the portion that was changed.portion that was changed.

Page 10: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 10

Software Software ApplicationsApplications system softwaresystem software

application softwareapplication software engineering/scientific software engineering/scientific software embedded software embedded software product-line softwareproduct-line software WebApps (Web applications)WebApps (Web applications) Artificial intelligence softwareArtificial intelligence software

Page 11: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 11

Software—New CategoriesSoftware—New Categories Ubiquitous computing Ubiquitous computing

Creating software to allow machines of all sizes to communicate with Creating software to allow machines of all sizes to communicate with each other across fast networks — wireless networkseach other across fast networks — wireless networks

Netsourcing Netsourcing Architecting simple and sophisticated applications that benefit Architecting simple and sophisticated applications that benefit

targeted end-user markets worldwide — the Web as a computing targeted end-user markets worldwide — the Web as a computing engineengine

Open Source Open Source Distributing source code for computing applications so customers Distributing source code for computing applications so customers

can make local modifications easily and reliablycan make local modifications easily and reliably New economy New economy

Building applications that facilitate mass communication and mass Building applications that facilitate mass communication and mass product distribution using evolving conceptsproduct distribution using evolving concepts

Also … (see Chapter 32)Also … (see Chapter 32) Data miningData mining Grid computingGrid computing Cognitive machinesCognitive machines Software for nanotechnologiesSoftware for nanotechnologies

Page 12: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 12

Legacy software Legacy software

Many programs still provide a valuable business Many programs still provide a valuable business benefit, even though they are one or even two benefit, even though they are one or even two decades old. decades old.

Software systems need to be continually updated Software systems need to be continually updated if they are to remain useful to their customers if they are to remain useful to their customers

These programs must be maintained and this These programs must be maintained and this creates problems because their design is often creates problems because their design is often not amenable to change.not amenable to change.

Page 13: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 13

Legacy SoftwareLegacy Software

software must be software must be adaptedadapted to meet the needs to meet the needs of new computing environments or of new computing environments or technology.technology.

software must be software must be enhancedenhanced to implement to implement new business requirements.new business requirements.

software must be software must be extended to make it extended to make it interoperableinteroperable with other more modern with other more modern systems or databases.systems or databases.

software must be software must be re-architectedre-architected to make it to make it viable within a network environmentviable within a network environment.

Why must it change?

Page 14: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 14

Software EvolutionSoftware Evolution

Process by which programs change shape, adapt to the Process by which programs change shape, adapt to the marketplace, and inherit characteristics from preexisting marketplace, and inherit characteristics from preexisting programs programs

The Law of Continuing Change (1974):The Law of Continuing Change (1974): E-type systems must be E-type systems must be continually adapted else they become progressively less continually adapted else they become progressively less satisfactory.satisfactory.

The Law of Increasing Complexity (1974):The Law of Increasing Complexity (1974): As an E-type system As an E-type system evolves its complexity increases unless work is done to evolves its complexity increases unless work is done to maintain or reduce it.maintain or reduce it.

The Law of Self Regulation (1974):The Law of Self Regulation (1974): The E-type system The E-type system evolution process is self-regulating with distribution of product evolution process is self-regulating with distribution of product and process measures close to normal.and process measures close to normal.

The Law of Conservation of Organizational Stability (1980):The Law of Conservation of Organizational Stability (1980): The average effective global activity rate in an evolving E-type The average effective global activity rate in an evolving E-type system is invariant over product lifetime.system is invariant over product lifetime.

Page 15: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 15

Software Evolution (cont)Software Evolution (cont) The Law of Conservation of Familiarity (1980):The Law of Conservation of Familiarity (1980): As an E-type As an E-type

system evolves all associated with it, developers, sales personnel, system evolves all associated with it, developers, sales personnel, users, for example, must maintain mastery of its content and users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. behavior to achieve satisfactory evolution.

The Law of Continuing Growth (1980):The Law of Continuing Growth (1980): The functional content of The functional content of E-type systems must be continually increased to maintain user E-type systems must be continually increased to maintain user satisfaction over their lifetime.satisfaction over their lifetime.

The Law of Declining Quality (1996):The Law of Declining Quality (1996): The quality of E-type The quality of E-type systems will appear to be declining unless they are rigorously systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes.maintained and adapted to operational environment changes.

The Feedback System Law (1996):The Feedback System Law (1996): E-type evolution processes E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement and must be treated as such to achieve significant improvement over any reasonable base.over any reasonable base.

Source: Lehman, M., et al, “Metrics and Laws of Software Evolution—The Nineties View,” Proceedings of the 4th International Software Metrics Symposium (METRICS '97), IEEE, 1997, can be downloaded from: http://www.ece.utexas.edu/~perry/work/papers/feast1.pdf

Page 16: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 16

Software MythsSoftware Myths

Affect managers, customers (and other non-Affect managers, customers (and other non-technical stakeholders) and practitionerstechnical stakeholders) and practitioners

Are believable because they often have elements Are believable because they often have elements of truth, of truth,

but …but … Invariably lead to bad decisions, Invariably lead to bad decisions,

therefore …therefore … Insist on reality as you navigate your way Insist on reality as you navigate your way

through software engineeringthrough software engineering

Page 17: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 17

Software Myths- examplesSoftware Myths- examples

We already have a book that’s full of standards We already have a book that’s full of standards and procedures for building software. Won’t that and procedures for building software. Won’t that provide my people with everything they need to provide my people with everything they need to know?know?

If we get behind schedule, we can add more If we get behind schedule, we can add more programmers and catch up?programmers and catch up?

A general statement of objectives is sufficient to A general statement of objectives is sufficient to begin writing programs- we can fill the details begin writing programs- we can fill the details later.later.

Page 18: SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering

SWE311_Ch01 (071) Software & Software Engineering Slide 18

Software Creation Software Creation Almost every software project is precipitated by Almost every software project is precipitated by

a business need (e.g., correct a system defect, a business need (e.g., correct a system defect, adapt system to changing environment, extend adapt system to changing environment, extend existing system, create new system) existing system, create new system)

Many times an engineering effort will only Many times an engineering effort will only succeed if the software created for the project succeed if the software created for the project succeeds succeeds

The market will only accept a product that has The market will only accept a product that has the software embedded when it meets the the software embedded when it meets the customer's stated or unstated needscustomer's stated or unstated needs