Software Modeling and Design
2008-04-22 22:26
232 查看
Course Objectives
Introduce the practical Software Engineering methods
widely used in IT industry
Present a well-defined roadmap—the Unified Process—so
that you can move in a step-by-step process from
requirements to code
Enforce the REAL skills of OOA/D using the UML notation.
Learning and applying Design Patterns in Object-Oriented
Design to accelerate your mastery of analysis and design.
Gain a deep understanding of analyzing and designing
software by going through case studies and examples—to
realistically illustrate the entire OOA/D process.
Explain how to design a layered architecture and relate the
graphical user interface layer to domain and technical
services layers.
8
Michael
Zheng
Course Objectives
Upon completion of the course, you will be able to:
Apply an iterative, use case-driven, architecture-centric
process to the development of a robust design model
Use the Unified Modeling Language (UML) to represent
the design model
Apply Object-Oriented (OO) concepts: abstraction,
encapsulation, inheritance, hierarchy, modularity, and
polymorphism to the development of a robust design
model
9
Michael
Zheng
Course Objectives (continued)
Upon completion of the course, you will be able to:
Describe the different views of software architecture,
key mechanisms that are defined in support of that
architecture, and the effect of the architecture on the
produced design
Define basic design considerations, including the use of
patterns
10
Michael
Zheng
Prerequisites
Knowledge and experience in an object-oriented
programming language such as Java, C++.
Knowledge of fundamental object technology concepts,
such as class, instance, interface, polymorphism,
encapsulation, interfaces, and inheritance.
Knowledge of UML notation
An exposure to object technology including, how to:
Read a use-case model
Add classes, objects, associations and how to create
simple interaction and class diagrams
Find classes and distribute class behavior
Distinguish between the UML Analysis class stereotypes:
boundary, control, and entity
11
Michael
Zheng
A brief Review of Software Engineering
The Sequential "Waterfall
lfaeWltr
" Lifecycle in contrast to
the iterative lifecycle of the UP, an old alternative
was the sequential, linear, or "waterfall" lifecycle.
In common usage, it defined steps similar to the
following:
1. Clarify, record, and commit to a set of complete and
frozen requirements.
2. Design a system based on these requirements.
3. Implement, based on the design.
It is a most used software engineering lifecycle
process
12
Michael
Zheng
Risk of Waterfall
In a waterfall lifecycle,
high risk issues such as
integration and load test
may be tackled late.
T im e
Potential
impact of
risks being
tackled
Requirements
Analysis D esign Implement Integrate &
System Test
13
Michael
Zheng
Problems with the Sequential Process
Wrong assumptions:
Requirements will be frozen
We can get the design right on paper before
proceeding
Sequential process breaks down when tackling
projects with a significant level of novelty,
unknowns, and risks.
14
Michael
Zheng
Basic Activities of Software Engineering 1/2
Defining the software development process to be used –
lifecycle
Managing the development project – Project
Management
Describing the intended software product - Requirements
and
Analyse
Designing the product - Design
Implementing the product - Implementation
Testing the parts of the product – Unit Testing
Integrating the parts and testing them as a whole –
Integration Testing
Maintaining the product – Maintenance
Principles of Visual Modeling
2
Objectives
Describe the importance of visual modeling
and the role of Model Driven Architecture.
Define the four principles of visual modeling.
Explain what the Unified Modeling
Language (UML) represents.
Define the type of process that best relates
to the UML.
3
Where Are We?
What is modeling?
Four principles of visual
modeling
The UML
Process and visual modeling
4
What Is a Model?
A model is a simplification of reality.
5
Why Model?
Modeling achieves four aims:
Helps you to visualize a system as you want it to be.
Permits you to specify the structure or behavior of a
system.
Gives you a template that guides you in constructing a
system.
Documents the decisions you have made.
You build models of complex systems because
you cannot comprehend such a system in its
entirety.
You build models to better understand the system
you are developing.
6
The Importance of Modeling
Paper Airplane Fighter Jet
Less Important More Important
7
Software Teams Often Do Not Model
Many software teams build applications
approaching the problem like they were building
paper airplanes
Start coding from project requirements
Work longer hours and create more code
Lacks any planned architecture
Doomed to failure
Modeling is a common thread to successful
projects
8
What is modeling?
Four principles of visual
modeling
The UML
Process and visual modeling
Where Are We?
9
Four Principles of Modeling
The model you create influences how the
problem is attacked.
Every model may be expressed at different
levels of precision.
The best models are connected to reality.
No single model is sufficient.
10
Process Model Design Model
Principle 1: The Choice of Model is Important
The models you create profoundly
influence how a problem is attacked
and how a solution is shaped.
In software, the models you choose
greatly affect your world view.
Each world view leads to a different
kind of system.
Deployment Model
11
Principle 2: Levels of Precision May Differ
Every model may be expressed at different
levels of precision.
The best kinds of models let you choose your
degree of detail, depending on:
• Who is viewing the model.
• Why they need to view it.
View for Customers View for Designers
12
Principle 3: The Best Models Are Connected to Reality
All models simplify reality.
A good model reflects potentially fatal
characteristics.
13
Principle 4: No Single Model Is Sufficient
No single model is sufficient. Every non-trivial
system is best approached through a small set of
nearly independent models.
Create models that can be built and studied separately,
but are still interrelated.
Process View
Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance, scalability, throughput
System integrators
System topology, delivery,
installation, communication
System engineering
Analysts/Designers
Structure
14
What is modeling?
Four principles of visual
modeling
The UML
Process and visual modeling
Where Are We?
15
What Is the UML?
The UML is a language for
• Visualizing
• Specifying
• Constructing
• Documenting
the artifacts of a software-intensive system.
16
Unified Modeling Language (UML)
Standard OOA&D modeling notation
Uses model-driven approach
Enables creation of graphical models of the
system requirements and system design
Components include
Class diagrams
Use Case diagrams
Sequence diagrams
State charts
…
The UML Is a Language for Visualizing
Communicating conceptual
models to others is prone to
error unless everyone involved
speaks the same language.
There are things about a
software system you can’t
understand unless you build
models.
An explicit model facilitates
communication.
20
The UML Is a Language for Specifying
The UML builds models that are precise,
unambiguous, and complete.
21
The UML Is a Language for Constructing
UML models can be directly connected to a
variety of programming languages.
Maps to Java, C++, Visual Basic, and so on
Tables in a RDBMS or persistent store in an
OODBMS
Permits forward engineering
Permits reverse engineering
What Type of Process Most Benefits the UML?
The UML is largely process independent. A
process fully benefits from the UML when
the process is:
Use-case driven
Architecture centric
Iterative and incremental
28
A Use-Case Driven Process
Use cases defined for a system are the
basis for the entire development process.
Benefits of use cases:
Concise, simple, and understandable by a wide
range of stakeholders.
Help synchronize the content of different
models.
Withdraw Money
Customer
Check Balance
29
An Architecture-Centric Process
A system’s architecture is used as a
primary artifact for conceptualizing,
constructing, managing, and evolving the
system under development.
Benefits:
Intellectual control over a project to manage its
complexity and to maintain system integrity.
Effective basis for large-scale reuse.
A basis for project management.
Assistance in component-based development.
30
An Iterative and Incremental Process
Critical risks are resolved before making
large investments.
Initial iterations enable early user feedback.
Testing and integration are continuous.
Objective milestones focus on the short
term.
Progress is measured by assessing
implementations.
Partial implementations can be deployed.
31
Iterative Development
Earliest iterations address greatest risks.
Each iteration produces an executable
release, an additional increment of the
system.
Each iteration includes integration and test.
T I M E
Iteration 1 Iteration 2 Iteration 3
32
Review
What is a model?
What are the viewpoints of MDA?
Describe each one.
What are the four principles of
modeling? Describe each one.
What is the UML? Describe each
of its four benefits.
What process characteristics best
fit the UML? Describe each
characteristic.
What is an iteration?
Introduce the practical Software Engineering methods
widely used in IT industry
Present a well-defined roadmap—the Unified Process—so
that you can move in a step-by-step process from
requirements to code
Enforce the REAL skills of OOA/D using the UML notation.
Learning and applying Design Patterns in Object-Oriented
Design to accelerate your mastery of analysis and design.
Gain a deep understanding of analyzing and designing
software by going through case studies and examples—to
realistically illustrate the entire OOA/D process.
Explain how to design a layered architecture and relate the
graphical user interface layer to domain and technical
services layers.
8
Michael
Zheng
Course Objectives
Upon completion of the course, you will be able to:
Apply an iterative, use case-driven, architecture-centric
process to the development of a robust design model
Use the Unified Modeling Language (UML) to represent
the design model
Apply Object-Oriented (OO) concepts: abstraction,
encapsulation, inheritance, hierarchy, modularity, and
polymorphism to the development of a robust design
model
9
Michael
Zheng
Course Objectives (continued)
Upon completion of the course, you will be able to:
Describe the different views of software architecture,
key mechanisms that are defined in support of that
architecture, and the effect of the architecture on the
produced design
Define basic design considerations, including the use of
patterns
10
Michael
Zheng
Prerequisites
Knowledge and experience in an object-oriented
programming language such as Java, C++.
Knowledge of fundamental object technology concepts,
such as class, instance, interface, polymorphism,
encapsulation, interfaces, and inheritance.
Knowledge of UML notation
An exposure to object technology including, how to:
Read a use-case model
Add classes, objects, associations and how to create
simple interaction and class diagrams
Find classes and distribute class behavior
Distinguish between the UML Analysis class stereotypes:
boundary, control, and entity
11
Michael
Zheng
A brief Review of Software Engineering
The Sequential "Waterfall
lfaeWltr
" Lifecycle in contrast to
the iterative lifecycle of the UP, an old alternative
was the sequential, linear, or "waterfall" lifecycle.
In common usage, it defined steps similar to the
following:
1. Clarify, record, and commit to a set of complete and
frozen requirements.
2. Design a system based on these requirements.
3. Implement, based on the design.
It is a most used software engineering lifecycle
process
12
Michael
Zheng
Risk of Waterfall
In a waterfall lifecycle,
high risk issues such as
integration and load test
may be tackled late.
T im e
Potential
impact of
risks being
tackled
Requirements
Analysis D esign Implement Integrate &
System Test
13
Michael
Zheng
Problems with the Sequential Process
Wrong assumptions:
Requirements will be frozen
We can get the design right on paper before
proceeding
Sequential process breaks down when tackling
projects with a significant level of novelty,
unknowns, and risks.
14
Michael
Zheng
Basic Activities of Software Engineering 1/2
Defining the software development process to be used –
lifecycle
Managing the development project – Project
Management
Describing the intended software product - Requirements
and
Analyse
Designing the product - Design
Implementing the product - Implementation
Testing the parts of the product – Unit Testing
Integrating the parts and testing them as a whole –
Integration Testing
Maintaining the product – Maintenance
Principles of Visual Modeling
2
Objectives
Describe the importance of visual modeling
and the role of Model Driven Architecture.
Define the four principles of visual modeling.
Explain what the Unified Modeling
Language (UML) represents.
Define the type of process that best relates
to the UML.
3
Where Are We?
What is modeling?
Four principles of visual
modeling
The UML
Process and visual modeling
4
What Is a Model?
A model is a simplification of reality.
5
Why Model?
Modeling achieves four aims:
Helps you to visualize a system as you want it to be.
Permits you to specify the structure or behavior of a
system.
Gives you a template that guides you in constructing a
system.
Documents the decisions you have made.
You build models of complex systems because
you cannot comprehend such a system in its
entirety.
You build models to better understand the system
you are developing.
6
The Importance of Modeling
Paper Airplane Fighter Jet
Less Important More Important
7
Software Teams Often Do Not Model
Many software teams build applications
approaching the problem like they were building
paper airplanes
Start coding from project requirements
Work longer hours and create more code
Lacks any planned architecture
Doomed to failure
Modeling is a common thread to successful
projects
8
What is modeling?
Four principles of visual
modeling
The UML
Process and visual modeling
Where Are We?
9
Four Principles of Modeling
The model you create influences how the
problem is attacked.
Every model may be expressed at different
levels of precision.
The best models are connected to reality.
No single model is sufficient.
10
Process Model Design Model
Principle 1: The Choice of Model is Important
The models you create profoundly
influence how a problem is attacked
and how a solution is shaped.
In software, the models you choose
greatly affect your world view.
Each world view leads to a different
kind of system.
Deployment Model
11
Principle 2: Levels of Precision May Differ
Every model may be expressed at different
levels of precision.
The best kinds of models let you choose your
degree of detail, depending on:
• Who is viewing the model.
• Why they need to view it.
View for Customers View for Designers
12
Principle 3: The Best Models Are Connected to Reality
All models simplify reality.
A good model reflects potentially fatal
characteristics.
13
Principle 4: No Single Model Is Sufficient
No single model is sufficient. Every non-trivial
system is best approached through a small set of
nearly independent models.
Create models that can be built and studied separately,
but are still interrelated.
Process View
Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance, scalability, throughput
System integrators
System topology, delivery,
installation, communication
System engineering
Analysts/Designers
Structure
14
What is modeling?
Four principles of visual
modeling
The UML
Process and visual modeling
Where Are We?
15
What Is the UML?
The UML is a language for
• Visualizing
• Specifying
• Constructing
• Documenting
the artifacts of a software-intensive system.
16
Unified Modeling Language (UML)
Standard OOA&D modeling notation
Uses model-driven approach
Enables creation of graphical models of the
system requirements and system design
Components include
Class diagrams
Use Case diagrams
Sequence diagrams
State charts
…
The UML Is a Language for Visualizing
Communicating conceptual
models to others is prone to
error unless everyone involved
speaks the same language.
There are things about a
software system you can’t
understand unless you build
models.
An explicit model facilitates
communication.
20
The UML Is a Language for Specifying
The UML builds models that are precise,
unambiguous, and complete.
21
The UML Is a Language for Constructing
UML models can be directly connected to a
variety of programming languages.
Maps to Java, C++, Visual Basic, and so on
Tables in a RDBMS or persistent store in an
OODBMS
Permits forward engineering
Permits reverse engineering
What Type of Process Most Benefits the UML?
The UML is largely process independent. A
process fully benefits from the UML when
the process is:
Use-case driven
Architecture centric
Iterative and incremental
28
A Use-Case Driven Process
Use cases defined for a system are the
basis for the entire development process.
Benefits of use cases:
Concise, simple, and understandable by a wide
range of stakeholders.
Help synchronize the content of different
models.
Withdraw Money
Customer
Check Balance
29
An Architecture-Centric Process
A system’s architecture is used as a
primary artifact for conceptualizing,
constructing, managing, and evolving the
system under development.
Benefits:
Intellectual control over a project to manage its
complexity and to maintain system integrity.
Effective basis for large-scale reuse.
A basis for project management.
Assistance in component-based development.
30
An Iterative and Incremental Process
Critical risks are resolved before making
large investments.
Initial iterations enable early user feedback.
Testing and integration are continuous.
Objective milestones focus on the short
term.
Progress is measured by assessing
implementations.
Partial implementations can be deployed.
31
Iterative Development
Earliest iterations address greatest risks.
Each iteration produces an executable
release, an additional increment of the
system.
Each iteration includes integration and test.
T I M E
Iteration 1 Iteration 2 Iteration 3
32
Review
What is a model?
What are the viewpoints of MDA?
Describe each one.
What are the four principles of
modeling? Describe each one.
What is the UML? Describe each
of its four benefits.
What process characteristics best
fit the UML? Describe each
characteristic.
What is an iteration?
相关文章推荐
- Software Engineering and the Art of Design
- Secure Computer and Network Systems: Modeling, Analysis and Design
- Toward a service-oriented analysis and design methodology for software product lines
- Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software
- Research Issues in Systems Analysis and Design, Databases and Software Development
- Design pattern and Software design interview questions for Programmers
- The Art of Software Architecture: Design Methods and Techniques
- J2EE and Beyond: Design, Develop, and Deploy World-Class Java Software
- 图书-Software specification and design
- Pattern-Oriented Analysis and Design: Composing Patterns to Design Software Systems
- Introduction to Java and Software Design: Swing Update
- Architectural Styles and the Design of Network-based Software Architectures
- Software design and testing
- 再论libmesh,options on engineering simulation software design and develop (现代工程仿真软件设计开发的一个考虑)
- Decision Modeling and Optimization in Game Design, Part 2: Optimization Basics and Unrolling a Simul
- Software Design Tools for Agile Teams, with UML, BPMN and More
- Software Engineering 3: Domains, Requirements, and Software Design (Texts in Theoretical Computer Science. An EATCS Series)
- Decision Modeling and Optimization in Game Design, Part 1: Introduction
- Agile software architecture design document style..( sketches and no UMLs)