copyright © 2015 pearson education, inc. chapter 7: software engineering

33
Copyright © 2015 Pearson Education, Inc. Chapter 7: Chapter 7: Software Software Engineering Engineering

Upload: eric-preston

Post on 30-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Chapter 7:Chapter 7:Software Software

EngineeringEngineering

Page 2: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• 7.1 The Software Engineering Discipline• 7.2 The Software Life Cycle• 7.3 Software Engineering Methodologies• 7.4 Modularity• 7.5 Tools of the Trade• 7.6 Testing• 7.7 Documentation• 7.8 Software Ownership and Liability

Chapter 7: Software Engineering

7-2

Page 3: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Distinct from other engineering fields– Prefabricated components– Metrics

• Practitioners versus Theoreticians• Professional Organizations: ACM, IEEE,

etc.– Codes of professional ethics– Standards

The Software Engineering Discipline

7-3

Page 4: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Project planning

• Project management

• Documentation

• Prototyping and simulation

• Interface design

• Programming

Computer Aided Software Engineering (CASE) tools

7-4

Page 5: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.1 The software life cycle

7-5

Page 6: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.2 The development phase of the software life cycle

7-6

Page 7: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Requirements– Application oriented

• Specifications– Technically oriented

• Software requirements document

Analysis Stage

7-7

Page 8: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Methodologies and tools (discussed later)

• Human interface (psychology and ergonomics)

Design Stage

7-8

Page 9: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Create system from design– Write programs– Create data files– Develop databases

• Role of “software analyst” versus “programmer”

Implementation Stage

7-9

Page 10: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Validation testing– Confirm that system meets specifications

• Defect testing– Find bugs

Testing Stage

7-10

Page 11: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Waterfall Model

• Incremental Model– Prototyping (Evolutionary vs. Throwaway)

• Open-source Development

• Extreme Programming

Software Engineering Methodologies

7-11

Page 12: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Functions Imperative paradigm– Structure charts

• Objects Object-oriented paradigm– Collaboration diagrams

• Components Component architecture

Modularity

7-12

Page 13: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.3 A simple structure chart

7-13

Page 14: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.4 The structure of PlayerClass and its instances

7-14

Page 15: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.5 The interaction between objects resulting from PlayerA’s serve

7-15

Page 16: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.6 A structure chart including data coupling

7-16

Page 17: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Coupling – Control coupling– Data coupling

• Cohesion– Logical cohesion– Functional cohesion

Coupling versus Cohesion

7-17

Page 18: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.7 Logical and functional cohesion within an object

7-18

Page 19: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Data Flow Diagram

• Entity-Relationship Diagram– One-to-one relation– One-to-many relation– Many-to-many relation

• Data Dictionary

Tools of the Trade

7-19

Page 20: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.8 A simple dataflow diagram

7-20

Page 21: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.9 A simple use case diagram

7-21

Page 22: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.10 A simple class diagram

7-22

Page 23: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Use Case Diagram– Use cases– Actors

• Class Diagram

Unified Modeling Language

7-23

Page 24: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.11 One-to-one, one-to-many, and many-to-many relationships between entities of types X and Y

7-24

Page 25: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.12 A class diagram depicting generalizations

7-25

Page 26: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

Figure 7.13 A sequence diagram depicting a generic volley

7-26

Page 27: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• “Theatrical” experiment

• Class-responsibility-collaboration cards

Structured Walkthoughs

7-27

Page 28: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Well designed “templates” for solving recurring problems

• Examples:– Adapter pattern: Used to adapter a module’s interface

to current needs– Decorator pattern: Used to control the complexity

involved when many different combinations of the same activities are required

• Inspired by the work of Christopher Alexander in architecture

Design Patterns

7-28

Page 29: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Glass-box testing– Pareto principle– Basis path testing

• Black-box testing– Boundary value analysis– Redundancy testing– Beta testing

Software Testing Strategies

7-29

Page 30: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• User Documentation– Printed book for all customers– On-line help modules

• System Documentation– Source code– Design documents

• Technical Documentation– For installing, customizing, updating, etc.

Documentation

7-30

Page 31: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Copyright– Allow a product to be released while retaining

ownership of intellectual property– Asserted in all works:

• Specifications• Source code• Final product

Software Ownership

7-31

Page 32: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

• Software License– A legal agreement that grants the user certain

permissions without transferring ownership

• Patents– Must demonstrate that it is new, usable, and

not obvious to others with similar backgrounds– Process is expensive and time-consuming

Software Ownership (continued)

7-32

Page 33: Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering

Copyright © 2015 Pearson Education, Inc.

End End of of

ChapterChapter