Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 7: Software Engineering

Similar presentations


Presentation on theme: "Chapter 7: Software Engineering"— Presentation transcript:

1 Chapter 7: Software Engineering
Computer Science: An Overview Twelfth Edition

2 Chapter 7: Software Engineering
The Software Engineering Discipline The Software Life Cycle Software Engineering Methodologies Modularity Tools of the Trade Testing Documentation Software Ownership and Liability

3 Software engineering is the branch of computer science that seeks principles to guide the development of large, complex software systems.

4 The Software Engineering Discipline
Distinct from other engineering fields Prefabricated components Metrics (Lines of code, LOC) Practitioners versus Theoreticians Professional Organizations: ACM, IEEE, etc. Codes of professional ethics Standards, IEEE, ISO. COTS: Commercial off-the-shelf

5 Computer Aided Software Engineering (CASE) tools
Project planning Project management Documentation Prototyping and simulation Interface design Programming

6 The software life cycle

7 The development phase of the software life cycle. Waterfall model

8 Analysis Stage Requirements Specifications
Application oriented Specifications Technically oriented Software requirements document

9 Design Stage Methodologies and tools
Human interface (psychology and ergonomics)

10 Implementation Stage Create system from design
Write programs Create data files Develop databases Role of “software analyst” versus “programmer”

11 Testing Stage Verification and Validation
Validation testing Confirm that system meets specifications Defect testing Find bugs

12 Software Engineering Methodologies
Waterfall Model Incremental Model Prototyping (Evolutionary vs. Throwaway) Open-source Development Extreme Programming

13 12 Practices of extreme programming (reading assignment)
The Planning Game Small Releases Metaphor (terminology) Simple Design Testing Refactoring Pair Programming Collective Ownership Continuous Integration 40-Hour Workweek On-site Customer Coding Standards

14 Modularity Functions  Imperative paradigm
Structure charts Objects  Object-oriented paradigm Collaboration diagrams Components  Component architecture

15 A simple structure chart

16 The structure of PlayerClass and its instances

17 The interaction between objects resulting from PlayerA’s serve

18 A structure chart including data coupling

19 Coupling versus Cohesion
Coupling (decrease this) Control coupling Data coupling Cohesion (increase this) Logical cohesion Functional cohesion

20 Logical and functional cohesion within an object

21 Here…

22 Tools of the Trade Data Flow Diagram Entity-Relationship Diagram
One-to-one relation One-to-many relation Many-to-many relation Data Dictionary

23 A simple dataflow diagram

24 A simple use case diagram

25 A simple class diagram

26 Unified Modeling Language (UML)
Use Case Diagram Use cases Actors Class Diagram

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

28 A class diagram depicting generalizations (Inheritance)

29 Class diagram

30 Sequence diagram Dashed oval : collaboration , rectangular : instances of any type of classifier, including classes, objects, or interfaces

31 Structured Walkthoughs
“Theatrical” experiment Class-responsibility-collaboration cards (CRC)

32 Design Patterns 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

33 Software Testing Strategies
White-box testing Pareto principle Basis path testing Black-box testing Boundary value analysis Redundancy testing Beta testing

34 Documentation User Documentation System Documentation
Printed book for all customers On-line help modules System Documentation Source code Design documents Technical Documentation For installing, customizing, updating, etc.

35 Software Ownership Copyright
Allow a product to be released while retaining ownership of intellectual property Asserted in all works: Specifications Source code Final product

36 Software Ownership (continued)
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


Download ppt "Chapter 7: Software Engineering"

Similar presentations


Ads by Google