==chap7==
Software design: is a creative activity in which you identify software components and their relationships, based on a customer's requirements.
Implementation: is the process of realizing the design as a program.
COTS : 商用現成系統
Object-oriented design using the UML
>> 有很多不同的model參與其中 需要大量的開發和維護 對於不同團隊開發的大型系統,設計模型是重要的溝通橋樑。這個方法並不適合小型系統
>> 過程
Define the context and modes of use of the system;
Design the system architecture;
Identify the principal system objects;
Develop design models;
Specify object interfaces.
System context and interactions
>> A system context is a structural model (e.g., a class diagram)
>> An interaction model is a dynamic model (e.g., a use case diagram)
Architectural design
Design models
>> Structural models: static structure
>>>> subsystem models
dynamic models
>> dynamic interaction
>>>> sequence models
>>>> state machine models
Reuse
>> The abstraction level: don't reuse software directly but use knowledge of successful abstractions in the software design.
>> The object level: directly reuse objects from a library rather than writing the code yourself.
>> The component level: components (collections of objects and object classes) are reused in application systems.
>> The system level: entire application systems are reused.
cost: time / buying / integrating / configuring
Configuration management
>> version management
>> system integration
>> problem tracking
>> release management
development platform tool包含:
>> compiler
>> debug system
>> 圖形化編輯工具
>> 測試工具
>> 管理工具