6d26b51fde72e20436f9bdf00db552fc.ppt
- Количество слайдов: 51
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 2
Software Engineering Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 3
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 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 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 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 7
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 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 9
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 highly experienced software personnel Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 11
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. • 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 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
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 18
Huge Systems Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 19
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 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 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 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 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 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 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 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: • 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 Source code Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 29
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. (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
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 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, 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 38
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 • 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 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 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
Note the complexity Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 44
Software Evolution Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 45
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, 2009, 2014, 2015 47
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 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 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) standard ISO 9001. • United Kingdom MOD 0055. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015 51


