Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Software Engineering: Second Edition

Similar presentations


Presentation on theme: "Introduction to Software Engineering: Second Edition"— Presentation transcript:

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

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

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

4 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

5 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

6 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

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

8 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

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

10 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

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

12 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

13 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

14 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

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

16 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

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

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

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

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

21 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

22 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

23 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

24 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

25 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

26 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

27 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

28 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

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

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

31 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
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

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

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

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

35 Copyright Ronald J. Leach, 1997, 2009, 2014, 2015
The spiral model 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 The spiral model, one quadrant
Copyright Ronald J. Leach, 1997, 2009, 2014, 2015

40 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

41 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

42 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

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

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

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

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

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

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

49 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 2167A. Copyright Ronald J. Leach, 1997, 2009, 2014, 2015

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

51 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


Download ppt "Introduction to Software Engineering: Second Edition"

Similar presentations


Ads by Google