chapter 0
1. EA를 정의하라.
Enterprise Architecture is an established process for describing the current state
and defining the target state and trasition strategy for an organization's people,
processes, and technology.[FEAF]
EA는 조직 내부의 사람들, 업무 프로세스 그리고 기술에 대해서 현재와 목표하는 상태를 기술하고 현재에서 목표로 나아갈 수 있는 전략을 기술하는 과정이다.
2. EA의 효과는 무엇인가?
- 기술의 충돌을 없앤다.
- 정보 자원 관리를 체계화 한다.
- 장기적인 전략 계획을 수립한다.
- IT 예산의 우선순위 결정을 지원한다.
Chapter 1.
3. stovepipe 아키텍처의 문제점은 무엇인가?
-don't fit well with the business process
-monolithic design
-not being designed to integrate into a large system
-high total cost of ownership
4. client/server 아키텍처와 thin client 아키텍처를 비교하라.
<Client/Server Architecture>
1. Access to knowledge was the big driver in the rise of client/server.
2. Cost savings was another big factor in the initial popularity of client/server
applications.
3. The rise of fast, cheap network technology also was a factor.
4. Client/server architecture led to the development and marketing of some very
powerful desktop applications.
5. Client/server application development tapped the contributions of a large number
of people who were not programmers.
6. The support costs involved in client/server architecture have turned out to be
considerable.
- a large number of PCs
- distributing new releases or new applications to all the corporate desktops
7. Many of the user-built client/server applications were not well designed.
8. The huge numbers of these applications and the past trend of decentralization
made it extremely difficult for an architect to locate and inventory them.
<Thin Client>
1. Thin-client architecture is one popular approach to decoupling presentation from
business logic and data.
2. With thin-client systems architecture, all work is performed on a server.
3. The client software component is provided by a third party and requires no
expense or effort on the part of the business.
4. All applications run on either the Web server or on dedicated application
servers.
5. All the data are on machines on the business's network.
6. Problems
- A thin-client architecture can produce a lot of network traffic.
- If the application is accessed by outside parties or over the Internet, a wide
spectrum of browsers may have to be supported.
- Users demand rich, interactive applications. HTML is insufficient to build rich,
interactive GUI applications.
- Data must be validated.
Chapter 2.
5. 소프트웨어 아키텍처에서 4+1 view를 설명하라.
Kruchten
- Logical view
The logical view, or logical architecture, is the object model for the design. It
describes the structures of the software that solve the functional requirements for
the system. It is a subset of all the classes of the system. The logical view is
strictly a structural view of the softwrae, including the important classes and
class relationships in the architecture.
- Process view
The process view, or process architecture, describes the view of the architecture
that includes running processes and instantiated objects that exist in the system.
It describes important concurrency and synchronization issues.
- Development view
The development architecture view focuses on the module organization of the
software. It shows how classes are organized into packages, and it outlines the
dependencies between packages of software. This is the view of the design that shows
the layered structures of the software and what the responsibilities of each layer
in the system are.
- Physical view
The physical view describes the machines that run the software and how components,
objects, and processes are deployed onto those machines and their configurations at
run-time.
- +1
The +1 in the 4+1 view model describes the scenarios that the architecture is meant
to satisfy. The scenarios represent the important requirements that the system must
satisfy.
(세로축은 정적/동적의 관점인 듯 하다. 가로축은 비지니스, Code관점인 듯 하다.)
6. MVC, publish-subscribe, pipes and filters, layers를 설명하라.
1) Model-View-Controller(MVC) architecture pattern
2) The publish-subscribe architecture pattern
- a publisher publishes data on a bus
- subscribers subscribe to portions of the data that are published by publishers on
the bus.
3) pipes and filters
filter: small program
a filter has an input and an output
the filters are assembled into a chain in which each filter gets data from the
previous filter in the chain, processes the data, and passes the data to the next
filter in the chain.
4) Layers
In a closed layer system, a layer may only access adjacent layers.
In an open layer system, layers may access any other layer in the system, not just
the ones to which they are adjacent.
Chapter 3.
Service-Oriented architecture(SOA) is an archiecture style that formally separates
services, which are the functionality that a system can provide, form service
consumers, which are systems that need that functionality.
7. SOA에서 contract에 무엇을 명시하는가?
Contracts are what the consumer peruses when searching for a service.
SOA is built on the idea of a consumer and a service being tied by a contract. SOA
contracts considerably extend the idea of interfaces. The SOA contract specifies the
following:
-Functionality provided
-Required inputs and expected outputs
-Preconditions
-Post-conditions
-Error handling
-Quality of service guarantees and SLAs (optional)
8. SOA에서 contract를 적용하는 메커니즘을 설명하라.
Step1: Service provider registers contract and endpoint information
Step2: Service consumer gets list of suitable contracts.
Step3: Internal process to choose best service.
Step4: Service consumer gets a particular
Chapter 4.
9. software product line이란 무엇을 말하는지 간단히 설명하라.
A software product line is a "family of products designed to take advantage of their
common aspects and predicted variabilities.
The three main goals of a software product line are to reduce cost, improve delivery
time, and improve quality.
10. software product line에서 core assets는 무엇인가?
a component
a framework
a library
a tool
a development platform or execution platform
Chapter 5.
11. eXtreme Programming의 장단점을 논하라.
It is a methodology that empowers developers to interact intimately with business
users, thereby increasing communication and effective feedback across the
development teams and the business units.
From the company's perspective, XP projects are generally easier to maintain.
The knowledge capital invested in any individual developer is distributed across a
team and reduces the risk of losing a critical person with unique system knowledge.
XP as a methodology is difficult to integrate into the culture of many large
corporations.
Paired programming (a two-person-to-one-computer paradigm)
budgeting and structuring a project in a corporation (more costly to the company to
evaluate the initial cost and size of a project)
a dedicated customer representative
12. SEI/CMM의 용도는 무엇인가?
CMM has evolved into a series of variations that deal with specific facets of
evaluating the maturity of processes.
13. Zachman framework의 특징을 설명하라.
The ZF summarizes a collection of perspectives based upon an architecture. The rows
represent the views of different types of stakeholders. The columns represent
different aspect or views of your architecture.
The ZF explicitly shows that many views need to be addressed by architecture.
The ZF explicitly communicates that architecture has several stakeholders in
addition to the architects and developers.
The ZF can lead to a documentation-heavy approach.
The ZF can lead to a methodology-biased approach.
The ZF can lead to a process-heavy approach to development.
The ZF is not well accepted within the development community.
The ZF promotes a top-down approach to development.
14. MDA의 기본 개념을 간단히 설명하라.
The MDA is based on the idea that a system or component can be modeled via two
categories of models: Platform Independent Models(PIMs) and Platform Specific
Models(PSMs).
15. RUP의 특징을 간단히 설명하라.
The process definition is based upon a language (UML)
It is in accord with industry standards and
It is widely accepted as the de facto modeling language for object-oriented and
component-based systems.
RUP has matured into a variety of applications
The process can be tailored for the needs of an organization.
Varieties of RUP have been defined that incorporate using RUP in a CMM organization
or to attain CMM certification.
Process-light versions of RUP have been developed to manage smaller, more agile
projects.
This software development methodology is scalable to the full software delivery life
cycle and includes details for managing software across organizations and the
enterprise.
Rational provides the suites of tools, training, and process information that can be
used to roll out RUP effectively across a company.
'잡담' 카테고리의 다른 글
A Model Driven Architecture For The Testability Of An Embedded Software (0) | 2006.10.24 |
---|---|
DM연에서 (0) | 2006.10.24 |
unit test의 testability를 고려한 legacy based software의 refactoring(?) (0) | 2006.10.22 |
마음백과?? (0) | 2006.10.16 |
문자배열과 문자포인터 (0) | 2006.10.15 |