Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering."— Presentation transcript:

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

2 SWE311_Ch01 (071) Software & Software Engineering Slide 2 Overview Software is designed and built by software engineers. Software is designed and built by software 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 reliable software that does no harm to other people. Software engineers have a moral obligation to build reliable software that does no harm to other people. Software engineers tend to be concerned with the technical elegance of their software products. Software engineers tend to be concerned with the technical elegance of their software products. Software users are only concerned with whether or not software products meet their expectations and make their tasks easier to complete. Software users are only concerned with whether or not software products meet their expectations and make their tasks easier to complete.

3 SWE311_Ch01 (071) Software & Software Engineering Slide 3 Important Questions for Software Engineers Why does it take so long to get software finished? Why does it take so long to get software finished? Why are development costs so high? Why are development costs so high? Why can't we find all errors before we give the software to our customers? Why can't we find all errors before we give the software to our customers? Why do we continue to have difficulty in measuring progress as software is being developed? Why do we continue to have difficulty in measuring progress as software is being developed?

4 SWE311_Ch01 (071) Software & Software Engineering Slide 4 Student 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 software has a significant, if ‘behind the scenes’ impact. List five non-computer related businesses where software has a significant, if ‘behind the scenes’ impact.

5 SWE311_Ch01 (071) Software & Software Engineering Slide 5 Software’s Dual Role Software is a product Software is a product Delivers computing potential Delivers computing potential Produces, manages, acquires, modifies, displays, or transmits information Produces, manages, acquires, modifies, displays, or transmits information Modern software is developed by teams of software specialists Modern software is developed by teams of software specialists Software is a vehicle for delivering a product Software is a vehicle for delivering a product Supports or directly provides system functionality Supports 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)

6 SWE311_Ch01 (071) Software & Software Engineering Slide 6 What is Software? Software is a set of items or objects that form a “configuration” that includes programs documents data...

7 SWE311_Ch01 (071) Software & Software Engineering Slide 7 What is Software? software is engineered software is engineered software doesn’t wear out, but it does deteriorate. software doesn’t wear out, but it does deteriorate. software is complex software is complex Currently, most software is still custom- built. Currently, most software is still custom- built.

8 SWE311_Ch01 (071) Software & Software Engineering Slide 8 Wear vs. Deterioration

9 SWE311_Ch01 (071) Software & Software Engineering Slide 9 Software deterioration The chief reason for software deterioration is that many changes are made to a software product over its lifetime. As changes are made, defects may be inadvertently introduced to other portions of the software that interact with the portion that was changed. The chief reason for software deterioration is that many changes are made to a software product over its lifetime. As changes are made, defects may be inadvertently introduced to other portions of the software that interact with the portion that was changed.

10 SWE311_Ch01 (071) Software & Software Engineering Slide 10 Software Applications system software system software application software application software engineering/scientific software engineering/scientific software embedded software embedded software product-line software product-line software WebApps (Web applications) WebApps (Web applications) Artificial intelligence software Artificial intelligence software

11 SWE311_Ch01 (071) Software & Software Engineering Slide 11 Software—New Categories Ubiquitous computing Ubiquitous computing Creating software to allow machines of all sizes to communicate with each other across fast networks — wireless networks Creating software to allow machines of all sizes to communicate with each other across fast networks — wireless networks Netsourcing Netsourcing Architecting simple and sophisticated applications that benefit targeted end-user markets worldwide — the Web as a computing engine Architecting simple and sophisticated applications that benefit targeted end-user markets worldwide — the Web as a computing engine Open Source Open Source Distributing source code for computing applications so customers can make local modifications easily and reliably Distributing source code for computing applications so customers can make local modifications easily and reliably New economy New economy Building applications that facilitate mass communication and mass product distribution using evolving concepts Building applications that facilitate mass communication and mass product distribution using evolving concepts Also … (see Chapter 32) Also … (see Chapter 32) Data mining Data mining Grid computing Grid computing Cognitive machines Cognitive machines Software for nanotechnologies Software for nanotechnologies

12 SWE311_Ch01 (071) Software & Software Engineering Slide 12 Legacy software Many programs still provide a valuable business benefit, even though they are one or even two decades old. Many programs still provide a valuable business benefit, even though they are one or even two decades old. Software systems need to be continually updated if they are to remain useful to their customers Software systems need to be continually updated if they are to remain useful to their customers These programs must be maintained and this creates problems because their design is often not amenable to change. These programs must be maintained and this creates problems because their design is often not amenable to change.

13 SWE311_Ch01 (071) Software & Software Engineering Slide 13 Legacy Software software must be adapted to meet the needs of new computing environments or technology. software must be adapted to meet the needs of new computing environments or technology. software must be enhanced to implement new business requirements. software must be enhanced to implement new business requirements. software must be extended to make it interoperable with other more modern systems or databases. software must be extended to make it interoperable with other more modern systems or databases. software must be re-architected to make it viable within a network environment software must be re-architected to make it viable within a network environment. Why must it change?

14 SWE311_Ch01 (071) Software & Software Engineering Slide 14 Software Evolution  Process by which programs change shape, adapt to the marketplace, and inherit characteristics from preexisting programs The Law of Continuing Change (1974): E-type systems must be continually adapted else they become progressively less satisfactory. The Law of Continuing Change (1974): E-type systems must be continually adapted else they become progressively less satisfactory. The Law of Increasing Complexity (1974): As an E-type system evolves its complexity increases unless work is done to maintain or reduce it. The Law of Increasing Complexity (1974): As an E-type system evolves its complexity increases unless work is done to maintain or reduce it. The Law of Self Regulation (1974): The E-type system evolution process is self-regulating with distribution of product and process measures close to normal. The Law of Self Regulation (1974): The E-type system evolution process is self-regulating with distribution of product and process measures close to normal. The Law of Conservation of Organizational Stability (1980): The average effective global activity rate in an evolving E-type system is invariant over product lifetime. The Law of Conservation of Organizational Stability (1980): The average effective global activity rate in an evolving E-type system is invariant over product lifetime.

15 SWE311_Ch01 (071) Software & Software Engineering Slide 15 Software Evolution (cont) The Law of Conservation of Familiarity (1980): As an E-type system evolves all associated with it, developers, sales personnel, users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. The Law of Conservation of Familiarity (1980): As an E-type system evolves all associated with it, developers, sales personnel, users, for example, must maintain mastery of its content and behavior to achieve satisfactory evolution. The Law of Continuing Growth (1980): The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime. The Law of Continuing Growth (1980): The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime. The Law of Declining Quality (1996): The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes. The Law of Declining Quality (1996): The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes. The Feedback System Law (1996): E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base. The Feedback System Law (1996): E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement 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.pdfhttp://www.ece.utexas.edu/~perry/work/papers/feast1.pdf

16 SWE311_Ch01 (071) Software & Software Engineering Slide 16 Software Myths Affect managers, customers (and other non-technical stakeholders) and practitioners Are believable because they often have elements of truth, Are believable because they often have elements of truth, but … Invariably lead to bad decisions, Invariably lead to bad decisions, therefore … Insist on reality as you navigate your way through software engineering Insist on reality as you navigate your way through software engineering

17 SWE311_Ch01 (071) Software & Software Engineering Slide 17 Software Myths- examples We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know? We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know? If we get behind schedule, we can add more programmers and catch up? If we get behind schedule, we can add more programmers and catch up? A general statement of objectives is sufficient to begin writing programs- we can fill the details later. A general statement of objectives is sufficient to begin writing programs- we can fill the details later.

18 SWE311_Ch01 (071) Software & Software Engineering Slide 18 Software Creation Almost every software project is precipitated by a business need (e.g., correct a system defect, adapt system to changing environment, extend existing system, create new system) Almost every software project is precipitated by a business need (e.g., correct a system defect, adapt system to changing environment, extend existing system, create new system) Many times an engineering effort will only succeed if the software created for the project succeeds Many times an engineering effort will only succeed if the software created for the project succeeds The market will only accept a product that has the software embedded when it meets the customer's stated or unstated needs The market will only accept a product that has the software embedded when it meets the customer's stated or unstated needs


Download ppt "SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering."

Similar presentations


Ads by Google