Topic 1
Topic 1
Introduction
1. Communication
The Mars Climate Orbiter missed making its connection with Mars. The £125M probe
was lost forever because of a miscommunication between teams of developers.
One was using metric measurements...
... And the other was using imperial
2. Analysis
The first step in building a system is to understand what that system should be.
- This is surprisingly difficult.
Those who commission a system may not have a clear idea of what they want.
– If they do have a clear idea, they may not be aware of limitations.
There is also a conflict of intention.
- Users tell you what they want
- You often have to tell them what they need
Analysis usually begins from something such as a problem statement.
- A two or three page document which explains what users want.
- Or rather, what they think they want.
You as an analyst then have to turn that problem statement into something
more useful.
- Through interviews, investigation of existing systems and resolution of
ambiguity.
4. Paper Prototyping
5. Design
7. Implementation
When developing personal projects, all three of these usually get bundled up
into one process
– Writing a program.
For large, real world systems, that doesn’t scale up.
Real world projects are usually too big for one person to develop.
Real world problem domains are usually too complex for one person to
understand.
We manage this complexity through a progression from analysis to design to
implementation.
While design is mindful of technical constraints, it does not mandate an
implementation strategy.
In implementation we must make choices between sensible courses of
implementation.
– We need to decide on algorithms, appropriate design patterns, and other
elements.
The design may define implementation requirements.
– This part of the system must be as fast as possible to avoid a
bottleneck.
Analysis Design & Implementation Topic - 1 Page 4
KMD Institute
In implementation, we decide how we do that.
8. Why?
10. OOAD
12. Inheritance
13. Encapsulation
In this module, we will use encapsulation as a term that also covers data
hiding.
Objects are a package that contains data and the methods of acting on that
data.
– In order to ensure that we can protect the data, we use access modifiers
to restrict access to the contents.
Bundling data and attributes together is known as encapsulation.
– Preventing access is known as data hiding.
14. Polymorphism
15. Conclusion
The software crisis was a major problem in the beginning days of software
development.
– And software engineering was born to resolve it.
Analysis is the process of understanding a project domain and defining a
project scope
Design is the process of taking an analysis and turning it into a concrete model
for implementation.
Implementation is the process of taking a design and selecting between
implementation strategies.
There is a high degree of overlap between these states.
16. Terminology