1. Detailed design
: the process of refining and expanding the software architecture of a system or a component
- designers go deep into each component to define its internal structure and behavioural capabilities
- most of the problem-solving activities occur
- serves as the gatekeeper for ensuring that the system's specification and design are sufficiently complete before construction begins
http://softwareengineering.stackexchange.com/questions/19592/what-is-detailed-design-what-are-the-advantage-disadvantages-using-it
2. Main tasks in detailed design
1) Understanding the architecture and requirements
2) Creating detailed designs
- the focus is placed on the following
* Interface Design: internal interface design / external interface design
* Graphical User Interface design
* Internal Component Design
* Data Design
3) Evaluating detailed designs
- Technical Reviews: focus on the important aspects of your design; how your design helps meet requirements
4) Documenting detailed designs: the software design description (SDD)
5) Monitoring and controlling implementation
3. Object-oriented Design
- In heavyweight, the entire design is completed before coding/implementation begins
- In lightweight, an outline design is made before coding, but the details are completed as part of the coding process
4. UML
( http://melancholy8914.blogspot.co.uk/2017/01/architectural-design.html )
- Models used mainly for requirements: Use Case diagram
- Models used mainly for systems architecture: Component diagram / Deployment diagram
- Models used mainly for detailed design: Class diagram / Object diagram
- Models for interactive aspects of systems: Interactive diagram / Sequence diagrams / Statechart diagram / Activity diagram
5. Design Process
- effects: Development Time, Software Quality and Ease of Maintenance
1) Finding Classes & Developing Class Diagrams: Don't be too disorganised. Don't be too rigid either.
2) Deciding which Classes to Use
- Identify a set of candidate classes that represent the system design
- Modify the set of classes: Increase cohesion within classes, and lower coupling between classes
3) Identifying Classes
4) Identifying associations and attributes
5) Identifying generalisations and interfaces
6. Class Responsibility Collaboration (CRC) Card
: one card is for each candidate class
- Class Responsibility: based on Services it provides and Data it keeps
- Walkthroughs & Refining the design: All collaborations should match with CRC Cards
http://agilemodeling.com/artifacts/crcModel.htm
댓글 없음:
댓글 쓰기