Software Architecture and Design. INTRODUCTION Analysis (or requirements analysis) involves studying the problem to be solved. It identifies what the problem is without addressing how it will be solved.
Analysis (or requirements analysis) involves studying the problem to be solved. It identifies what the problem is without addressing how it will be solved.
Design is the creative process that transforms a problem into a solution. It identifies how the problem will be solved.
Test Case Design
Which ones do the users care about?
Any other property that you may want to add? easy to integrate or test?
This seems like a lot of topics that software designers must cover !!
So, there are specializations within the field of software design.
Design as an “Activity” (verb)
Software “Product” Design is the activity of specifying
- the nature and
of software products that satisfy the clients’
- needs and
subject to a certain set of constraints
What are the concepts behind “nature of” versus “composition of” ?
What about “needs” versus “desire” ?
Compare this with previous definition --- this is a better refinement
In this course we will be using both static and dynamic models of software
** ( a closer tie to what is specified in the product requirements )
** (a closer tie to the internal technical design )
(similarities and differences?)
marketing, business processes, applications
database and data structures, development
platforms, networking, operating
Test Case Design
organize: relating these
* * * Information/data needs to be folded in also * * *
Where is the analysis / innovation / creativity? ---- what do you think?
Note:There are cooking recipes! But most software designs are too large
and complex compared to food dishes; so there are no design “recipes” .
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!
For this assignment also think about what
Is a “well constructed” model or design
e.g. easy to understand
easy to implement