About this course Software Modeling and Design

basesprocketData Management

Oct 31, 2013 (3 years and 11 months ago)

255 views

1


Michael

Zheng

About this course


Software Modeling
and Design

Spring 2007

Michael Zheng

Associate Professor

Software School

Yunnan University

2


Michael

Zheng

My Background


Education


Master in Software Engineering/Metallurgy and Materials,
Bachelor in Computer and Information Science, Bachelor in
Metal Processing


6 Years work experience in IBM Australia


Work involved:


Developing middleware applications using C++/Corba/MQ,
Web applications using Websphere/VAJ.


PM
-

Manage 5 major applications (as Project Manager) for
Telstra.


Cutover manager


IT Consultant, Architect


Certifications


IBM advanced Websphere (RAD) certificate, IBM MQ Series,
Rational Rose, IBM Advanced JAVA using Visual Age Java,
Rational OOAD, Advanced C++


IBM Louts Domino


IBM
DB2

fundamental and admin, IBM Project Management

3


Michael

Zheng

My Contact



Mobile: 13987629933



Email:
zhengqian@hotmail.com
;
MichaelZheng@edu.ynu.cn



4


Michael

Zheng

Textbook


Applying UML and Patterns (An Introduction to
Object
-
Oriented Analysis and Design)



5


Michael

Zheng

Foundation

Modeling


Language

Unified


Process

Team

-

Based


Development

6


Michael

Zheng

Topics and Skills will be covered in this course

7


Michael

Zheng

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

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



15


Michael

Zheng

The Four

P

s


of Software Engineering

People

(by whom it is done)

Process

(the manner

in which it is done)

Project

(the doing of it)

Product

(the application artifacts)

*

16


Michael

Zheng

Process


Development sequence
:


Waterfall


Iterative






Process frameworks:


Personal Software Process


Team Software Process


Capability Maturity Model (for organizations)


Standards:



Institute of Electrical and Electronic Engineers


International Standards Organization


Set of activities carried out to produce an application

17


Michael

Zheng



Set of activities carried out to produce an application










Object Orientation
: very useful paradigm



Unified Modeling Language
: design notation



Legacy systems:

common starting point



enhancement or usage of existing system

Project

people

flow of work

18


Michael

Zheng


Product
--

the application and associated
artifacts, including:



Requirements


explain what product is meant to be




Software architecture (High Level
Design)


Garland and Shaw's classification



Detailed design



Implementation


emphasize standards employ selected
formal methods.



Test artifacts

Design

model

Softwar Requirements
Specification

Artifacts

Product

Source &

object code

19


Michael

Zheng

Application must satisfy predetermined standards.

Methods to attain quality goals:



Inspection (Peer Review)


Team
-
oriented process for ensuring quality


Applied to all stages of the process.



Formal methods


Mathematical techniques to convince ourselves and peers that
our programs do what they are meant to do applied selectively


Testing



at the unit (component) level


Unit Testing


at the whole application level


System Integration Testing, User
Accept Testing




Project Management techniques


predict costs and schedule


control artifacts (versions, scope etc.)


Quality

20


Michael

Zheng

we will learn how to produce the following products in this course

Discipline

Artifact

Business Modeling


Requirements



Domain/Analysis Model

Use
-
Case Model

Vision

Supplementary Specification



Glossary

Design

SW Architecture Document

Data Model

Design Model

Implementation


Architecture


Implementation Model

Architecture Analysis and Design

Deployment

Deployment Model

21


Michael

Zheng

A Big Picture of what we will learn about OOAD