Module 3 - Software Modeling
Module 3 - Software Modeling
FUNDAMENTALS OF
SOFTWARE
ENGINEERING
Module 3: Software Modeling
Learning Objectives
• Software Design
• Software Design Notation
• Software Design Concept
• Software Design Strategy/Approaches
• Two Approaches for Analysis & Design
• Data Flow Diagram (DFD) created using Structured Analysis Technique
• Structure Charts - Invocation / Call
• OOAD methods Three major steps
4
How do We Choose What to Model?
• Architects and other stakeholders must make critical
decisions:
1. What architectural decisions and concepts should be
modeled,
2. At what level of detail, and
3. With how much rigor or formality
– These are cost/benefit decisions
• The benefits of creating and maintaining an architectural
model must exceed the cost of doing so
5
Stakeholder-Driven Modeling
• Stakeholders identify
aspects of the system they
are concerned about
• Stakeholders decide the
relative importance of these
concerns
• Modeling depth should
roughly mirror the relative
importance of concerns
7
Software Architecture: Foundations, Theory, and Practice ; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
What do We Model? (cont’d)
• Elements of the architectural style
• Inclusion of specific basic elements (e.g., components, connectors, interfaces)
• Component, connector, and interface types
• Constraints on interactions
• Behavioral constraints
• Concurrency constraints
• …
8
What do We Model? (cont’d)
• Static and Dynamic Aspects
• Static aspects of a system do not change as a system
runs
• e.g., topologies, assignment of components/connectors to
hosts, …
• Dynamic aspects do change as a system runs
• e.g., state of individual components or connectors, state of a
data flow through a system, …
9
What do We Model? (cont’d)
• Functional and non-functional aspects of a system
• Functional
• “The system prints medical records”
• Non-functional
• “The system prints medical records quickly and confidentially.”
• Architectural models tend to be functional
• It is often important to capture non-functional decisions
• Even if they cannot be automatically or deterministically interpreted or
analyzed
10
Important Characteristics of Models
• Ambiguity
• A model is ambiguous if it is open to more than one interpretation
• Accuracy and Precision
• Different, but often conflated concepts
• A model is accurate if it is correct, conforms to fact, or deviates from correctness within
acceptable limits
• A model is precise if it is sharply exact or delimited
11
Software Design Components
• Principle
• Criteria (this lecture)
• Techniques (this lecture)
• Communicational
• Procedural
• Temporal
• Logical
• Coincidental
• Low
• Generate invoice
• Get and edit input data.
• A module will be cohesive if most of the methods defined in a class use most of the data
members most of the time.
• If we find different subsets of data within the same module being manipulated by separate
groups of functions then the module is not cohesive and should be broken down as shown
below.
i. Extensibility:- Extendibility is the ease of adapting software products to changes of
specification.
ii. Extensibility:- For small programs change is usually not a difficult issue; but as software
grows bigger, it becomes harder and harder to adapt. A large software system often looks
to its maintainers as a giant house of cards in which pulling out any one element might
cause the whole structure to collapse
• It represents that control module can select any of the sub module on
the basis of some condition.
• An object can be defined as a data field that has unique attributes and
behavior.
• OOP focuses on the objects that developers want to manipulate
rather than the logic required to manipulate them.
• This approach to programming is well-suited for programs that are
large, complex and actively updated or maintained.
• The main aim of Object Oriented Design (OOD) is to improve the
quality and productivity of system analysis and design by making it
more usable.
i. Classes
ii. Objects
iii. Methods
iv. Attributes