Скачать презентацию Introduction to Software Engineering Second Edition Ronald J Скачать презентацию Introduction to Software Engineering Second Edition Ronald J

6d26b51fde72e20436f9bdf00db552fc.ppt

  • Количество слайдов: 51

Introduction to Software Engineering: Second Edition Ronald J. Leach Copyright Ronald J. Leach, 1997, Introduction to Software Engineering: Second Edition Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 1

Chapter 1: Introduction Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 Chapter 1: Introduction Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 2

Software Engineering Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 3 Software Engineering Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 3

What is Software Engineering? • The application of engineering techniques to develop and maintain What is Software Engineering? • The application of engineering techniques to develop and maintain software that runs properly and is constructed in an efficient manner. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 4

Software • • • Is changing rapidly Rarely runs only on unconnected computers Can Software • • • Is changing rapidly Rarely runs only on unconnected computers Can run on smartphones (and others) Is ubiquitous Is often cloud-based Often has security issues Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 5

Software Engineering • Is changing rapidly • Is rarely done by single individuals except Software Engineering • Is changing rapidly • Is rarely done by single individuals except for small projects • Uses existing software components and systems through APIs, IDEs, and more • Is rarely understood in detail by any one individual • Teams are almost always necessary Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 6

Goals of Software Engineering Efficiency Usability Portability Reusability Interoperability Reliability Modifiability Testability Maintainability Correctness Goals of Software Engineering Efficiency Usability Portability Reusability Interoperability Reliability Modifiability Testability Maintainability Correctness Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 7

Typical Software Engineering Tasks Analysis Documentation Requirements Maintenance Design Quality Assurance Coding Training Testing Typical Software Engineering Tasks Analysis Documentation Requirements Maintenance Design Quality Assurance Coding Training Testing and Integration Resource Estimation Project Management Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 8

Software Life Cycle • • Analysis Requirements Design Coding Testing and Integration Delivery Maintenance Software Life Cycle • • Analysis Requirements Design Coding Testing and Integration Delivery Maintenance Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 9

Models of Software Development • • The classical waterfall model The rapid prototyping model Models of Software Development • • The classical waterfall model The rapid prototyping model The spiral model The market-driven model An open source development model The agile development model … Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 10

Models of software development can be: • • Sequential Iterative Concurrent Appropriate only for Models of software development can be: • • Sequential Iterative Concurrent Appropriate only for highly experienced software personnel Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 11

Software Engineering is Engineering! • • • Measurement is important Time, effort, cost of Software Engineering is Engineering! • • • Measurement is important Time, effort, cost of development Quality, usability of software Acceptance by users: reasons why, why not Use of measurements and assessments to improve processes, products Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 12

Which Metrics to Use? The GQM paradigm of Basili and Rombach is useful. • Which Metrics to Use? The GQM paradigm of Basili and Rombach is useful. • Goals: What do we wish to achieve? • Questions: What questions must we answer to determine if goals are met? • Metrics: What metrics must be collected to answer the questions? Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 13

What do all models of software development have in common? • They use both What do all models of software development have in common? • They use both current and older technologies as appropriate • They reuse the largest appropriate components that have as much of the necessary functionality as possible, to improve development efficiency • Evaluation of the process used • Deliverables ! Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 14

Components and Reuse Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 15 Components and Reuse Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 15

What is a Component? • Components are the basic elements of reuse. • The What is a Component? • Components are the basic elements of reuse. • The terms component and module are often used interchangeably • A component may be source code, but often includes many other items. • A component is a software artifact that has distinct boundaries and that fits into a system. • But what is a “system”? Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 16

Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 17 Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 17

Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 18 Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 18

Huge Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 19 Huge Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 19

Global Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 20 Global Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 20

The ultimate goal • Allow software engineers to treat software components as building blocks, The ultimate goal • Allow software engineers to treat software components as building blocks, the same way that mechanical and electrical engineers do. • MEs and EEs can specify what a component is supposed to do, then find one that meets the specifications. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 21

The ultimate goal, cont. Mechanical engineers can • determine the correct spring or fastener The ultimate goal, cont. Mechanical engineers can • determine the correct spring or fastener for an application by looking up the desired properties in a reference book or manual. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 22

The ultimate goal, cont. • Electrical engineers can determine the correct resistor or capacitor The ultimate goal, cont. • Electrical engineers can determine the correct resistor or capacitor for an application by looking up the desired properties in a reference book or manual. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 23

The ultimate goal, cont. • In both engineering fields: • The cost of the The ultimate goal, cont. • In both engineering fields: • The cost of the desired object is easily obtained • There are no surprises as long as the component meets the manufacturer’s quality standards. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 24

Software components • In software engineering, the situation is quite different. • The cost Software components • In software engineering, the situation is quite different. • The cost to purchase an existing, desired component may be easy to obtain. • However, the total cost of ownership is very difficult to determine. • There may be many surprises when trying to deploy the component as part of a software system. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 25

Software components, cont. • Unlike the situation in electrical and mechanical engineering, it is Software components, cont. • Unlike the situation in electrical and mechanical engineering, it is difficult to tell if the software component meets the quality standards of the company or organization that intends to use the component. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 26

Remember the ultimate goal • Allow software engineers to treat software components as building Remember the ultimate goal • Allow software engineers to treat software components as building blocks, to do what a component is supposed to do to one that meets the specifications. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 27

What is software reuse? The process of developing software using software components that: • What is software reuse? The process of developing software using software components that: • have well-defined standard interfaces • are carefully tested • have a well-defined functionality • have precisely defined performance. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 28

What can be reused? • • Algorithms Architectures Patterns Complete applications Data Requirements Designs What can be reused? • • Algorithms Architectures Patterns Complete applications Data Requirements Designs Source code Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 29

What can be reused? • • Source code Test plans and test cases Documentation What can be reused? • • Source code Test plans and test cases Documentation Integration plans Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 30

What else can be reused? • The most extreme case is reusing entire systems. What else can be reused? • The most extreme case is reusing entire systems. (This is common in web-based software. ) • COTS (Commercial, Off-The-Shelf) software products are often considered to be components when they are used to help comprise a system. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 31

Software Life Cycles Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 32 Software Life Cycles Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 32

The classical waterfall model Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 33 The classical waterfall model Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 33

The rapid prototyping model Initial specifica tions Develop prototype Create new specifications Test and The rapid prototyping model Initial specifica tions Develop prototype Create new specifications Test and integrate prototype Evaluate prototype System Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 34

The spiral model Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 35 The spiral model Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 35

The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 36 The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 36

The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 37 The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 37

The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 38 The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 38

The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 39 The spiral model, one quadrant Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 39

Open Source Development • Requires deep knowledge of what is available open source • Open Source Development • Requires deep knowledge of what is available open source • Many software products in repositories are not in completely stable form Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 40

Market-driven development • Requires great imagination to determine worthwhile projects • Highly risky way Market-driven development • Requires great imagination to determine worthwhile projects • Highly risky way to run a career, at least at the beginning Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 41

Agile Software Development Process • Completed versions, more sturdy that prototypes, are delivered as Agile Software Development Process • Completed versions, more sturdy that prototypes, are delivered as often as weekly • Fulfilling highest priority requirements is often done first Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 42

A CASE tool Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 43 A CASE tool Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 43

Note the complexity Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 44 Note the complexity Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 44

Software Evolution Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 45 Software Evolution Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 45

Software Evolves • • Applications software Operating systems Databases APIs IDEs COTS products Interacting Software Evolves • • Applications software Operating systems Databases APIs IDEs COTS products Interacting software components Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 46

The software conundrum • • Buy? Build? Reuse? Reengineer? Copyright Ronald J. Leach, 1997, The software conundrum • • Buy? Build? Reuse? Reengineer? Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 47

Commonly Used Standards Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 48 Commonly Used Standards Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 48

Primarily U. S. Standards • The Capability Maturity Model (CMM) from the Software Engineering Primarily U. S. Standards • The Capability Maturity Model (CMM) from the Software Engineering Institute (SEI) • The CMM model has been superseded by the Capability Maturity Model Integration CMMI. • The Process Improvement Paradigm (PIP) • NASA Goddard Space Flight Center. • Department of Defense standard MIL-STD 2167 A. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 49

Primarily U. S. Standards • Department of Defense standard MIL-STD 1574 A. • Department Primarily U. S. Standards • Department of Defense standard MIL-STD 1574 A. • Department of Defense standard MIL-STD 882 C. • Electronic Industries Association (EIA) SEB-6 -A. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 50

Primarily International Standards • The European ESPRIT project. • The International Standards Organization (ISO) Primarily International Standards • The European ESPRIT project. • The International Standards Organization (ISO) standard ISO 9001. • United Kingdom MOD 0055. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 51