0% found this document useful (0 votes)
16 views35 pages

Chapt 7

This chapter discusses key topics in software engineering including the software life cycle, methodologies like waterfall and agile development, modularity through objects and components, tools for design like UML, testing strategies, documentation, and issues of ownership and liability. It provides an overview of the software engineering discipline and processes.

Uploaded by

Edon Berisha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views35 pages

Chapt 7

This chapter discusses key topics in software engineering including the software life cycle, methodologies like waterfall and agile development, modularity through objects and components, tools for design like UML, testing strategies, documentation, and issues of ownership and liability. It provides an overview of the software engineering discipline and processes.

Uploaded by

Edon Berisha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Chapter 7:

Software
Engineering
Chapter 7: Software Engineering

• 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

7-2
The Software Engineering
Discipline
• Distinct from other engineering fields
– Prefabricated components
– Metrics
• Practitioners versus Theoreticians
• Professional Organizations: ACM, IEEE,
etc.
– Codes of professional ethics
– Standards

7-3
Computer Aided Software
Engineering (CASE) tools
• Project planning
• Project management
• Documentation
• Prototyping and simulation
• Interface design
• Programming

7-4
Figure 7.1 The software life cycle

Copyright © 2015 Pearson Education, Inc. 7-5


Figure 7.2 The development phase of
the software life cycle

7-6
Analysis Stage

• Requirements
– Application oriented
• Specifications
– Technically oriented
• Software requirements document

7-7
Design Stage

• Methodologies and tools (discussed later)


• Human interface (psychology and
ergonomics)

Copyright © 2015 Pearson Education, Inc. 7-8


Implementation Stage

• Create system from design


– Write programs
– Create data files
– Develop databases
• Role of “software analyst” versus
“programmer”

7-9
Testing Stage

• Validation testing
– Confirm that system meets specifications
• Defect testing
– Find bugs

7-10
Software Engineering
Methodologies
• Waterfall Model
• Incremental Model
– Prototyping (Evolutionary vs. Throwaway)
• Open-source Development
• Extreme Programming

7-11
Modularity

• Functions − Imperative paradigm


– Structure charts
• Objects − Object-oriented paradigm
– Collaboration diagrams
• Components − Component architecture

7-12
Figure 7.3 A simple structure chart

7-13
Figure 7.4 The structure of
PlayerClass and its instances

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

7-15
Figure 7.6 A structure chart
including data coupling

7-16
Coupling versus Cohesion

• Coupling
– Control coupling
– Data coupling
• Cohesion
– Logical cohesion
– Functional cohesion

7-17
Figure 7.7 Logical and functional
cohesion within an object

Copyright © 2015 Pearson Education, Inc. 7-18


Tools of the Trade

• Data Flow Diagram


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

7-19
Figure 7.8 A simple dataflow diagram

7-20
Figure 7.9 A simple use case diagram

7-21
Figure 7.10 A simple class diagram

7-22
Unified Modeling Language

• Use Case Diagram


– Use cases
– Actors
• Class Diagram

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

7-24
Figure 7.12 A class diagram
depicting generalizations

7-25
Figure 7.13 A sequence diagram
depicting a generic volley

7-26
Structured Walkthoughs

• “Theatrical” experiment
• Class-responsibility-collaboration cards

7-27
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
• Inspired by the work of Christopher Alexander in
architecture

7-28
Quality Assurance

• Software Malfunctions
• Cost overruns
• Missed deadlines

0-29
Software Testing Strategies

• Glass-box testing
– Pareto principle
– Basis path testing
• Black-box testing
– Boundary value analysis
– Redundancy testing
– Beta testing

7-30
Documentation

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

7-31
The Human-Machine Interface

• Software system will interact with its


environment
• Communicating with humans
• Software system as an abstract tool
• Minimize communication errors between the
system and human users
• System’s interface makes a stronger impression

0-32
Software Ownership

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

7-33
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

7-34
End
of
Chapter

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy