6μ₯. μꡬμ¬ν κ°λ
what-analysis(problem)
how-design(solution)
[ μꡬ곡ν : Requirements Engineering (RE) ]
RE Tasks
- Understanding what the customer wants
- Analyzing needs
- Assessing feasibility (νλΉμ± νκ°)
- Negotiation a reasonable approach (ν©λ¦¬μ μ κ·Όλ°©μ νμ)
- Specifying the problem unambiguously (λ¬Έμ λ₯Ό λͺ ννκ² μ§μ )
- Validating the specification (μ¬μ μ ν¨μ± κ²μ¬)
- Managing the requirements (μꡬμ¬ν κ²μ¦κ΄λ¦¬)
RE Process (7 Tasks) β οΈ
- Inception (μ°©μ)
- Elicitation (μΆμΆ)
- Elaboration (μμΈ)
- Negotiation (νμ)
- Specification (λͺ μΈ)
- Validation (κ²μ¦)
- Management (κ΄λ¦¬)
1. Inception - μ°©μ
A set of context free question
→ Better understanding of the problem
→ Effectiveness of communication activity
2. Elicitation - μΆμΆ
λͺ©ν, μꡬμ¬νμ λΆν©νλμ§, μ¬μ©λ² λ±μ λ¬Όμ΄λ΄.
Difficulties of Elicitation
Problems of Scope : κ²½κ³κ° λΆλͺ νν λ
Problems of Understanding : λκ° νμνμ§ μ΄λλ€μ΄ νμ€νκ² λͺ¨λ₯Ό λ
Problems of Volatility (λ³λμ±/νλ°μ±) : μꡬ λ³κ²½
3. Elaboration - μμΈ(μ κ·ν)
μ κ·ννλ λμ μ 보(λ°μ΄ν°)κ° νμ₯ λ° μ μ λ¨
analysis modeling action - Data(Information), Function, Behavior
π‘ Requirement analysisμ λν μ€λͺ
- information, function, behavior
- basis for SW design
- means to assess quality
(not : focus on why, not how → νλ¦Ό. howμ μ§μ€ν΄μΌν¨)
4. Negotiation - νμ
reconcile the conflicts
κ° μ£Όμ₯ λ° κ°λ±μ μ‘°μ νκ³ , κ° μꡬμ¬νμ μν₯μ νκ°
μ΄ν΄κ΄κ³ μλ³ λ° win-win condition μ°ΎκΈ°
5. Specification - λͺ μΈ(ꡬ체ν)
Standard template
Consistent, understandable (λ Όλ¦¬μ μΌλ‘ μΌκ΄μ±μκ³ , μ΄ν΄κ°λ₯νλλ‘)
6. Validation - κ²μ¦
Quality, standards established
μ λ§€ν¨ μμ΄ μλ²½νκ²
μꡬμ¬νμ΄ μ νμ μ΄κ³ λͺ ννμ§?
μꡬμ¬ν λͺ¨λΈμ΄ μμ€ν μ μ 보, κΈ°λ₯, νλμ μ μ ν λ°μνκ³ μλκ°?
7. Management - κ΄λ¦¬
νλ‘μ νΈ μ§ν μ μΈμ λ μ§ μꡬμ¬ν λ° λ³κ²½μ¬νμ μλ³ν μ μκ² κ΄λ¦¬
[ μμ€ν λΆμκ°μ μ격 ]
- μΆμμ , λ Όλ¦¬μ κ°λ ν λ₯λ ₯
- μ 맀νκ±°λ λͺ¨μλ κ²λ€λ‘λΆν° μ νν μ¬μ€μ μ΄λμ΄ λΌ λ₯λ ₯
- κ³ κ°μ νκ²½μ μ΄ν΄ν λ₯λ ₯
- HW, SW μμλ₯Ό κ³ κ°μ νκ²½μ μ μ©μν¬ λ₯λ ₯
- λν λ₯λ ₯, To see the forest for the tree
-
< Requirements Analysis > : μꡬμ¬ν λΆμ
- Specification of operation characteristics, interface, constraints
- Allows the SW engineer to elaborate on basic requirements established during earlier requirement engineering tasks and build models that depict user scenarios, function activities, problem classes and their relationships, system and class behavior, and the flow of data as it is transformed.
- Provides the SW designer with information, function, and behavior for architectural, interface, and component-level design
- Provides the developer and customer with the means to assess quality
- Focus is on "What" not "how"
- μλ νΉμ±, μΈν°νμ΄μ€, μ μ½ μ‘°κ±΄μ ꡬ체ν.
- SW μμ§λμ΄λ μ΄μ μꡬμ¬ν μμ§λμ΄λ§ μμ μ€μ μ립λ κΈ°λ³Έ μꡬμ¬νμ μμΈν μ€λͺ νκ³ μ¬μ©μ μλ리μ€, κΈ°λ₯ νλ, λ¬Έμ ν΄λμ€ λ° λ¬Έμ ν΄λμ€μ κ΄κ³, μμ€ν λ° ν΄λμ€ λμ, λ³νλλ λ°μ΄ν° νλ¦μ μ€λͺ νλ λͺ¨λΈμ ꡬμΆ.
- SW μ€κ³μ(λμμ΄λ)μκ² μν€ν μ², μΈν°νμ΄μ€ λ° κ΅¬μ±μμ μμ€ μ€κ³λ₯Ό μν μ 보, κΈ°λ₯ λ° λμμ μ 곡.
- κ°λ°μμ κ³ κ°μκ² νμ§μ νκ°ν μ μλ μλ¨μ μ 곡.
- "μ΄λ»κ²"κ° μλλΌ **"무μ"**μ μ΄μ μ λ§μΆ€.
Overall objectives and philosophy : μ λ°μ μΈ λͺ©νμ μ² ν
- To describe what the customer requires : κ³ κ°μ΄ μꡬνλ κ²μ μ€λͺ
- To establish a basic for the creation of a software design : SW λμμΈ μμ±μ μν κΈ°μ΄ ν립
- To define a set of requirements that can be validated once the software is built. : SWκ΅¬μΆ ν κ²μ¦ν μ μλ μꡬμ¬ν μ μ
< Analysis Modeling Rules > : λΆμ λͺ¨λΈλ§ κ·μΉ
- The model should focus on requirements that are visible within the problem or business domain. The level of abstraction should be relatively high.
- Each element of the analysis model should add to an overall understanding of SW requirements and provied insight into the information, function and behavior of the system.
- Delay consideration of infrastructure and other non-functional models until design.
- Minimize coupling throughout the system.
- Be sure that the analysis model provides value to all stakeholders.
- Keep the model as simple as it can be.
- λͺ¨λΈμ λ¬Έμ λλ λΉμ¦λμ€ μμ λ΄μμ λ³Ό μ μλ μꡬμ¬νμ μ΄μ μ λ§μΆ°μΌ ν©λλ€. μΆμνμ μμ€μ μλμ μΌλ‘ λμμΌ νλ€.
- λΆμ λͺ¨λΈμ κ° μμλ SW μꡬ μ¬νμ λν μ λ°μ μΈ μ΄ν΄μ μμ€ν μ μ 보, κΈ°λ₯ λ° λμμ λν ν΅μ°°λ ₯μ μ 곡ν΄μΌ ν©λλ€.
- μΈνλΌ λ° κΈ°ν λΉκΈ°λ₯ λͺ¨λΈμ λν κ³ λ €λ₯Ό μ€κ³ μκΉμ§ μ°κΈ°ν©λλ€.
- μμ€ν μ 체μμ 컀νλ§μ μ΅μνν©λλ€.
- λΆμ λͺ¨λΈμ΄ λͺ¨λ μ΄ν΄κ΄κ³μμκ² κ°μΉλ₯Ό μ 곡νλμ§ νμΈνμμμ€.
- λͺ¨λΈμ κ°λ₯ν ν λ¨μνκ² μ μ§νμΈμ.
< Domain Analysis > : λλ©μΈ λΆμ
“SW λλ©μΈ λΆμ”
→ νΉμ μ ν리μΌμ΄μ λλ©μΈμ κ³΅ν΅ μꡬμ¬νμ λΆμνλ κ², μΌλ°μ μΌλ‘ ν΄λΉ μ ν리μΌμ΄μ λλ©μΈ λ΄μ μ¬λ¬ νλ‘μ νΈμμ μ¬μ¬μ©νκΈ° μν κ²
“κ°μ²΄ μ§ν₯ λλ©μΈ λΆμ”
→ κ³΅ν΅ κ°μ²΄, ν΄λμ€, νμ μ΄μ λΈλ¦¬ λ° νλ μμν¬ μΈ‘λ©΄μμ νΉμ μμ© νλ‘κ·Έλ¨ λλ©μΈ λ΄μμ 곡ν΅μ μ΄κ³ μ¬μ¬μ© κ°λ₯ν κΈ°λ₯μ λΆμνλ κ²
< Requirement Modeling approaches > : μꡬμ¬ν λͺ¨λΈλ§ λΆμλ²
- Structured analysis : ꡬ쑰ν λΆμ
- Data and the processes that transform the data as separate entities. : λ°μ΄ν° & λ°μ΄ν°λ₯Ό κ°λ³ μν°ν°λ‘ λ³ννλ νλ‘μΈμ€
- Data object are modeled in a way that defines their attributes and relationships. : λ°μ΄ν° κ°μ²΄λ μμ±κ³Ό κ΄κ³λ₯Ό μ μνλ λ°©μμΌλ‘ λͺ¨λΈλ§
- Processes that manipulate data objects are modeled in a manner that shows how they transform data as data objects flow through the system.
- : νλ‘μΈμ€λ μμ€ν μ ν΅κ³Όν λ κ°μ²΄κ° λ°μ΄ν°λ‘ μ΄λ»κ² λ³ννλμ§ λ³΄μ¬μ£Όλ λ°©μμΌλ‘ λͺ¨λΈλ§
- 2. Object-oriented analysis : κ°μ²΄μ§ν₯ λΆμ
- Focus on the definition of classes and the manner in which they collaborate with one another to effect customer requirement.
- : ν΄λμ€μ μ μμ ν΄λμ€κ° κ³ κ° μꡬμ¬νμ μν₯μ λ―ΈμΉκΈ° μν΄ νλ ₯νλ λ°©μμ μ΄μ .
- UML and the Unified Process(UP)
OOA(Object-oriented analysis) is to define all classes that are relevant to the problem to be solved : λ¬Έμ μ κ΄λ ¨λ λͺ¨λ ν΄λμ€λ₯Ό μ μν¨
- Basic user requirements must be communicated between the customer and the software engineer : κ³ κ°κ³Ό μννΈμ¨μ΄ μμ§λμ΄ κ°μ κΈ°λ³Έμ μΈ μ¬μ©μ μꡬ μ¬νμ μ λ¬
- Classes must be identified : ν΄λμ€λ μλ³λμ΄μΌν¨
- A class hierarchy is defined : ν΄λμ€ κ³μΈ΅ μ μ
- Object-to-object relationships : κ°μ²΄ μ¬μ΄μ κ΄κ³
- Object behavior must be modeled : κ°μ²΄ λμμ λͺ¨λΈλ§λμ΄μΌν¨
- Tasks 1 through 5 are reapplied iteratively until the model is complete. : λͺ¨λΈμ΄ μλ£λ λκΉμ§ λ°λ³΅
1. Scenario-based Modeling
(1) Use-cases λ μμ€ν μΈλΆμ μ‘΄μ¬νλ κ²κ³Ό μμ€ν μ΄ μνν΄μΌ νλ κ²μ μ μνλ λ° λμμ΄ λλ€.
- μ΄ν΄κ΄κ³μμ μμ²μ μλ΅νλ μμ€ν μ λμ νΉμ μ΅μ’ μ¬μ©μκ° μμ€ν κ³Ό μνΈμμ©νλ λ°©μμ λν μ¬λ‘λ₯Ό 보μ¬μ€
(2) UML : Activity Diagram μ νΉμ μλλ¦¬μ€ λ΄μμ μνΈμμ©μ κ·Έλν½ ννμ μ 곡νμ¬ Use-caseλ₯Ό 보μνλ€.
(3) UML : Swinlane Diagram μ Activity Diagramμ μ μ©ν λ³νμ΄λ©° λͺ¨λΈλ¬κ° μ¬μ© μ¬λ‘μ μν΄ μ€λͺ λ νλμ νλ¦μ νννλ λμμ νλ μ¬κ°νμ μν΄ μ€λͺ λ νλμ λν΄ μ΄λ€ λΆμ ν΄λμ€λ νμμκ° μ± μμ΄ μλμ§λ₯Ό νμν μ μλ€.
2. Class-based Modeling
ν΄λμ€κ°μ κ΄κ³ : aggregate(ν©κ³/λΆλͺ¨&μμ), multiplicity(μ°κ΄), dependencies(μ’ μ/ν΄λΌμ΄μΈνΈ&μλ²), package
Identifying analysis classes : λΆμ ν΄λμ€ μλ³
Specifying attributes : μμ± μ§μ
Defining operations : μμ μ μ
Modeling CRC (Class-Responsibility-Collaborator) : ν΄λμ€ μ± μ 곡λμμ μ(CRC) λͺ¨λΈλ§
< Class >
object-oriented thinking begins with the definition of a class, often defined as:
- template : 견본
- generalized description : μΌλ°μ μΈ μ€λͺ
- blueprint, describing a collection of similar items : μ²μ¬μ§(μ μ¬ν νλͺ©λ€μ λͺ¨μ)
a meta-class (superclass) establishes a hierarchy of classes : μνΌν΄λμ€λ ν΄λμ€μ κ³μΈ΅ ꡬ쑰 μ€μ
once a class of items is defined, a specific instance of the class can be identified : ν΄λμ€κ° μ μλλ©΄ ν΄λμ€μ νΉμ μΈμ€ν΄μ€ μλ³ κ°λ₯
What is a Class? → occurrences, things, external entities, roles, organizational units, places, structures
(λ°μ, μ¬λ¬Ό, μΈλΆ μν°ν°, μν , μ‘°μ§ λ¨μ, μ₯μ, ꡬ쑰)
< Encapsulation / Information Hiding >
κ°μ²΄λ λ°μ΄ν°μ λ°μ΄ν°λ₯Ό μ‘°μνλ λ° νμν λ Όλ¦¬μ μ μ°¨λ₯Ό λͺ¨λ μΊ‘μνν©λλ€.
< Methods(Operations, Services) >
ν΄λμ€μ μΊ‘μνλκ³ νλ μ΄μμ λ°μ΄ν° μμ±μμ μλνλλ‘ μ€κ³λ μ€ν μ μ°¨.
λ©μλλ λ©μμ§ μ λ¬μ ν΅ν΄ νΈμΆλ¨.
- Entity Class : model / business class, λ¬Έμ μ λ¬Έμ₯μμ μ§μ μΆμΆλ¨(ex: νλ©΄λ, μΌμ)
- Boundary Class : μ¬μ©μκ° SWμ¬μ© μ λ³΄κ³ μνΈμμ©νλ μΈν°νμ΄μ€λ₯Ό λ§λλ λ°μ μ¬μ©(ex: λνν νλ©΄/ μΈμλ¬Ό)
- Controller Class : μ²μλΆν° λκΉμ§μ μμ
λ¨μ κ΄λ¦¬.
- μν°ν° κ°μ²΄μ μμ±/μ λ°μ΄νΈ
- κ°μ²΄λ‘λΆν° μ 보λ₯Ό μ»μ λ κ²½κ³ κ°μ²΄μ μΈμ€ν΄μ€ν
- κ°μ²΄κ°μ 볡μ‘ν ν΅μ
- κ°μ²΄ κ°/ μ¬μ©μμ νλ‘κ·Έλ¨ κ° ν΅μ λλ λ°μ΄ν°μ μ ν¨μ± κ²μ¬ λ±μ κ΄λ¦¬νλλ‘ μ€κ³λλ€.
Responsibilities
- System Intelligenceλ λ¬Έμ μ μꡬλ₯Ό κ°μ₯ μ ν΄κ²°ν μ μλλ‘ ν΄λμ€ μ 체μ λΆμ°λμ΄μΌν¨
- κ° μ± μμ κ°λ₯ν μΌλ°μ μΌλ‘ λͺ μλμ΄μΌ ν¨
- μ 보 λ° μ 보μ κ΄λ ¨λ λμμ λμΌν ν΄λμ€ λ΄μ μμ΄μΌ ν¨
- νκ°μ§μ λν μ 보λ λ¨μΌ ν΄λμ€λ‘ μ§μνλμ΄μΌ νλ©°, μ¬λ¬ ν΄λμ€λ‘ λΆμ°λλ©΄ μλ¨
- κ΄λ ¨ κ³μΈ΅ κ° μ± μμ μ μ ν λμ λΆλ΄ν΄μΌ ν¨
< Collaborations >
ν΄λμ€λ λ€μ λ λ°©λ² μ€ νλλ‘ κ·Έλ€μ μ± μμ λ€νλ€.
- ν΄λμ€λ μ체 μμ μΌλ‘ μ체 μμ±μ μ‘°μν¨
- ν΄λμ€λ λ€λ₯Έ ν΄λμ€μ νλ ₯ν¨.
Collaborationμ ν΄λμ€ κ°μ κ΄κ³λ₯Ό μλ³νλ€.
곡λμμ μλ₯Ό μλ³νλλ°μ λμμ΄ λλλ‘ ν΄λμ€ κ°μ κ΄κ³λ₯Ό μ‘°μ¬.
- is-part-of relationship (aggregate) : ν©κ³
- has-knowledge-of relationship (associate) : μ°κ΄
- depends-upon relationship (dependency) : μμ‘΄
3. Data Modeling
λ°μ΄ν° λͺ¨λΈλ§
- Data Object
- SWκ° μ΄ν΄ν΄μΌ νλ κ±°μ λͺ¨λ 볡ν©μ 보μ νν
- λ€λ₯Έ λ³΅ν© μμ± μ 보 λλ μμ±μ μν΄ λ€μ μμλ₯Ό κ°μ§ κ²λ€μ μλ―Ένλ€.
- Entity, thing, Occurrence, Event, Role, Organizational unit, Place, Structure
- λ°μ΄ν° κ°μ²΄λ λ°μ΄ν°λ§ μΊ‘μννλ€.
λ°μ΄ν° κ°μ²΄ λ° μμ±
: λ°μ΄ν° κ°μ²΄μλ κ°μ²΄μ μΈ‘λ©΄(aspect), νμ§, νΉμ±, μ€λͺ μ μν μ νλ νΉμ μ§ν©μ΄ ν¬ν¨λλ€.
μ΄λ¦ μμ±, μλ³μ, μ€λͺ μμ±, μ°Έμ‘° μμ± λ±
- Data attributes
- λ°μ΄ν° κ°μ²΄μ μμ± μ μ
- λ°μ΄ν° κ°μ²΄μ μΈμ€ν΄μ€ μ΄λ¦
- μΈμ€ν΄μ€ μ€λͺ
- λ€λ₯Έ ν μ΄λΈμ μΈμ€ν΄μ€ μ°Έμ‘°
- μλ³μ : λ°μ΄ν° κ°μ²΄μ μΈμ€ν΄μ€λ₯Ό μ°Ύκ³ μ ν λ “key”κ° λλ€.
- λ°μ΄ν° κ°μ²΄μ μμ± μ μ
- Relationships
- λ°μ΄ν° κ°μ²΄λ μλ‘ λ€λ₯Έ λ°©μμΌλ‘ μ°κ²°λλ€.
- κ°μ²΄/κ΄κ³ μ : μ¬λμ μ°¨λ₯Ό μμ νλ€, μ¬λμ μ΄μ 보νμ κ°μ λμ΄ μλ€.
- Cardinality & Modality
- λλ : λ°μ΄ν° λͺ¨λΈμ μ£Όμ΄μ§ κ΄κ³μμ κ°μ²΄μ νΈμΆ νμλ₯Ό λνλΌ μ μμ΄μΌ νλ€.
- μμ : κ΄κ³κ° λ°μν νμκ° μκ±°λ μ νμ¬νμΌ κ²½μ° κ΄κ³κ° 0μ΄λ€. / κ΄κ³ λ°μμ΄ νμμΈ κ²½μ° κ΄κ³κ° 1μ΄λ€.
-
'π μ 곡 κ³΅λΆ > μννΈμ¨μ΄κ³΅ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μννΈμ¨μ΄κ³΅ν] μμ€ν μκ° : what is system? (0) | 2023.04.23 |
---|---|
[μννΈμ¨μ΄κ³΅ν] 7μ₯. μꡬμ¬ν λΆμ λͺ¨λΈλ§ (0) | 2023.04.23 |
[μννΈμ¨μ΄κ³΅ν] 5μ₯. νλ‘μ νΈ κ΄λ¦¬ (2) (0) | 2022.10.20 |
[μννΈμ¨μ΄κ³΅ν] 5μ₯. νλ‘μ νΈ κ΄λ¦¬ (1) (0) | 2022.10.20 |
[μννΈμ¨μ΄κ³΅ν] 4μ₯. νλ‘μ νΈ κ΄λ¦¬ κ°λ (0) | 2022.10.20 |