Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.