Professional Documents
Culture Documents
Requirements
Design
Code-Implementation
Test Case Design
Testing
Builds
Rel.
Maintenance
Easy to code
Easy to maintain (Extensible)
Any other property that you may want to add? -- easy to integrate or test
--- secure ---?
This seems like a lot of topics that software designers must cover !!
So, there are specializations within the field of software design.
Modeling
Constructing a model entity to represent the real
entity of interest through:
Associating : parts of the model to the parts of the real
entity
Associating: the relationships among parts of the model to
the relationships among parts of the entity of interest.
2 aspects of Abstraction
A) Problem/Solution Simplification:
concentrating on only the key property
(For example): In drawing a figure, we choose to first focus on
shape of the figure (e.g. circle, oval, rectangle, diamond, etc.)
before worrying about the details ( color, the line width,
solid/dotted line, etc.) ---- based on past experiences?
Modeling
In doing so:
There may be parts in the model that do not match the original entity
There may be relationships in the model that do not match that in the
original entity
Part B
Part A
Thing-X that
modeling
Needs
modeling
Part D
Part C
Part F
Interactions:
Identify and Specify Component relations (for OO classes ----inheritance, aggregation, etc.)
Identify and Specify Component dependencies/interactions
(interfaces, joint responsibilities, sequences of interactions,
etc.)
easy to understand
easy to implement
etc.
Advantages of Modeling
Allows us to understand the problem or
requirements better (model of the problem)
Allows us to create an initial rough design
Model of problem develops
Model of solution
Dynamic model:
Represents what happens during the execution of
the software.
In this course we will be using both static and dynamic models of software
Software Design
product designer
Requirements
engineering designer
Design
product designer
Code-Implementation
Test Case Design
Testing
Builds
Rel.
Maintenance
(product and
engineering
redesign)
More importantly, the mental activities that perform the design (analysis/innovation), I
believe, is not easily explainable or understood ---- thus it would be hard to teach it!