您的位置:首页 > 其它

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?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息