Main idea is:
The software process takes the problem and create a solution.and that consist of the following:
If any of the above rules are skipped over, then the project/s will fail.
Software designing aims to developing software that is flexible, reusable, and maintainable.
User stories are just one of many techniques that can be used to express requirements for a software system. They are simple to use and can allow you to apply object-oriented thinking and discover objects and further requirements.
After the requirments have been setted the nexts is to create:
1. Recognize appropriate [components, connections and responsibiliteis]
2. outline the high level concepts of your final software product.
3. to express the conceptual design: we use a mockup software or hand draw sketches to visualize the requirments which will be called a Conceptual mockup.
4. benifit of Conceptual mockup: is ti clarify design desicion with clients by providing a simple way to illustrate how product will works.
CRC: Class, Responsibilities, Collaborators
CRC used to refine components that we detrimined it in requirments phase.
In the design phase
Design is such an important step in software development, and there have been many approaches developed over time to help make this process easier. The object- oriented approach is one of those aproches.
That lead us for the concepts in the problem and solution spaces as objects—objects are a notion that can be understood by both users and developers. and that called object-oriented thinking.
object oriented design consists of:
Technical design uses object-oriented design to further refine the details of the objects, including their attributes and behaviours, so it is clear enough for developers to implement as working software.
The Goals of Object orinted design: Refine Models of all the objects of the software.
simplify objects in the model and break them down into smaller parts.
Architecture is all about balancing competing concerns.
When design a software you have to tradeoff between some diffrent quality attributes such as:
The most important is balancing quality versus time to market
As a customer: we want to get things into market
As an enginneer: we want to ensure that the product mach all of the quality attributes.
But the reality is there's always a trade-off there.
The artichet should be able to establish the following:
The required quality should be verified through techniques like reviews and tests.
As well, certain qualities can be validated with feedback from end users.
You understand these qualities as competing ideals that must be balanced.
You will consider multiple perspectives and look for potential trade-offs.
Categories of the objects involves: