본 포스트는 개인 스터디 용으로 작성된 Ian Sommerville의 Software Engineering, 8/E의 요약본입니다.1. Object-oriented development
- Object-oriented analysis, design and programming are related but distincted.
- OOA is concerned with developing an object model of the application domain.
- OOD is cencerned with developing an object-oriented system model to implement requirements
- OOP is cencerned with realising an OOD using an OO programming language
2. Characteristics of OOD
- Objects are abstractions of real-world or system entities and manage themselves
- indenpendent with each other, encapsulate state, communicate by message passing
3. Objects and object classes
- Objects are entities in a S/W system which represent instances of real-world and system entities
- Object classes are templates for objects
4. UML
- An integration of notations which describe object oriented analysis and designs
- De facto standard for object oriented modelling
5. Object communication
- Conceptually, objects communicate by message passing
- In practice, messages are often implemented by procedure calls(procedure name and parameter list)
6. Generalisation and inheritance
- Classes may be arranged in a class hierarchy where one class (a super-class) is a generalisation of one or more other classes (sub-classes)
- A sub-class inherits the attributes and operations from its super class and may add new methods or atributes of its own
- Advantages : Inheritance classify entities, make reuse mechanism at both the design & the programming level, and provide organisational knowledge about domains and systems.
7. An object-oriented design process : Structured design processes
- involve developing a number of differnet system models
- require a lot of effort for development and maintenance of these models
- For small systems, this may not be cost-effiective
- However, for large systems developed by different groups design models are an essential communication mechanism
8. Process stages
1) Define system context and model of system use : A static model that describes other systems in the environment, a dynamic model that describes how the system interacts with its environment(Use Case used)
2) Design the system architecture : e.g. layered architecture(several layered sub-system composition). There should normally be no more than 7 entities in an architectural model
3) Identify the principal system objects:
- Grammatical approach (based on natural lagnuage)
- idenfitying concrete things in the application domain
- Behavioural approach (what participates in what behaviour)
- Scenario-based analysis (objects in scenario)
4) Develop design models
- Static model : show relationships between object classes
- Dynamic model : show relationships between objects
- e.g. sub-system model, sequence model, state machine model(statechart), use-case models, aggregation, generalisation model, etc.
5) Object interface specification
- Object interfaces have to be specified so that the object and other components can be designed in parallel
- UML uses class diagram
반응형
'as 소프트웨어엔지니어 > Software Engineering' 카테고리의 다른 글
V&V : Verification and validation 2/3 - Inspection (0) | 2008.04.05 |
---|---|
V&V : Verification and validation 1/3 (2) | 2008.04.05 |
Design : Application Architectures (0) | 2008.03.31 |
Design : Distributed Systems Architectures 3/3 (0) | 2008.03.30 |
Design : Distributed Systems Architectures 2/3 (3) | 2008.03.29 |
댓글을 달아 주세요