2017년 1월 28일 토요일

Detailed Design

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

댓글 없음:

댓글 쓰기