IT 분야 기술사인 정보관리기술사와 컴퓨터시스템응용기술사 자격을 취득하기 위해 학습하고 있거나 학습하고자 하는 분들을 위해 만들었습니다.
2. 본 교재는 발전 동향, 배경 그리고 유사 기술과의 비교, 다양한 도식화 등 실무 개발자 경험을 토대로 작성한 내용으로 풍부한 경험적인 요소가 내재하여 있는 장점이 있습니다.
권영식
저자:권영식
PART1.Software공학
1.Software의정의,분류,특성
2.Software의개념,유형
3.Software위기와이를해결하기위한방안
4.Software공학이란무엇이며,SW공학의구성요소와원리
5.IEEE산하SW공학표준위원회에서SW공학의근본지식을규정한SWEBOK(SWEngineeringBodyOfKnowledge)
6.Software산업육성전략
7.Software의설계원리중모듈(Module)화
8.Software설계원리에서분할과정복(Divide&Conquer)
9.Software난독화(Obfuscation)
10.Software재사용(Reuse)의활용,목적,구현방법
11.Software관리를위한기준선(Baseline)
12.Module,Component,Service에대해각각설명하고비교하시오.
13.임베디드(Embedded)Software
14.Software의생산성향상기법인역공학(ReverseEngineering)과재공학(Re-Engineering)
15.Lehman의Software변화원리
16.Software형상관리
17.소프트웨어정의(SDx)
PART2.Software개발모형(모델,모범사례)
18.SDLC(SWDevelopmentLifeCycle)
19.폭포수(Waterfall)모델(Model)
20.프로토타이핑(Prototyping)모델(Model)
21.나선형(Sprial)개발모델(Model)
22.증분형(Incremental)과진화형(Evolutional)모델(Model)
23.RAD(RapidApplicationDevelopment)모델
24.CleanRoom개발모형(모델)에서3가지Box구조
25.SDLC모델선정기준과각모델의상관관계
26.SDLC(SoftwareDevelopmentLifeCycle)과정의구현단계에서의ActionItem(Activity)과일정지연이발생되었을때PM(ProjectManager)입장에서의대처방안
27.SDLC과정에서필요한Review,Inspection,Walkthrough
28.전통적인S/W개발Model과OSS(OpenSourceSoftware)개발Model의차이점
PART3.S/W개발방법론
29.S/W개발방법론(구조적,정보공학,객체지향,CBD개발방법론)
30.폭포수개발방법론과애자일개발방법론의특징및장단점비교
31.AgileProcess
32.S/W개발방법론인AgileMethodology의정의,특성,장단점
33.TDD(TestDrivenDevelopment)
34.SPL(SoftwareProductLine)
35.XP(eXtremeProgramming)
36.RUP(RationalUnifiedProcess)
37.XP(eXtremeProgramming)와RUP비교
38.SCRUM
39.MDD(ModelDrivenDevelopment)
40.모델기반의S/W개발방식,MDA(ModelDrivenArchitecture)
41.DevOps(Development+Operation)
42.KanbanS/W개발방법론에대해설명하고SCRUM방법과비교
43.CASE(ComputerAidedSoftwareEngineering)
44.린(Lean)개발방법론
45.모바일(Mobile)App.개발의특성과이슈에대하여설명하고애자일(Agile)을활용하여모바일개발환경에적합한개발방법을제시하시오.
46.현재의정보화환경은사용자가다양한단말(OPMD:OnePersonMultiDevice)을활용하고,하나의정보가다양한단말에서활용(OSMU;OneSourceMultiUse)된다.S/W개발방법론에서이를반영할수있는방안을서술하시오.
PART4.UML(UnifiedModelingLanguage)
47.Modeling을정의하고목적과Software에서Modeling이필요한이유
48.UML(UnifiedModelingLanguage)에대해정의하고특징과개발방법론과의관계
49.S/W공학에서모델링(Modeling)의개념과모델링언어로UML이필요이유
50.UML(UnifiedModelingLanguage)의구성요소
51.UML의구성요소중사물(Thing)의세부내용
52.모델링(Modeling)과프로그래밍(Programming)을비교하고개발과정에서적용되는UMLDiagram의종류
53.UML의4+1View모형(Model)
54.UML의4+1ViewModel을설명하고SDLC과정적용
55.UML에서관계(Relationship)표시는6가지(연관,의존,일반화,실체화,집합연관,합성연관)관계로표시된다.각각설명하고실생활에서사용되는예를Notation(도식화)
56.다음의ClassDiagram을자바Code로작성하고정보은닉에사용된접근제어자에대해설명하시오.
57.다음ClassDiagram을자바(JAVA)Code로변환하시오.
58.다음UML시퀀스(Sequence)다이어그램(Diagram)을설명하고JAVACode로구현하시오.
59.다음의구성객체를이용하여SequenceDiagram으로표시하시오(내용을상세히).
60.아래와같은전자계산기를객체지향언어를사용하여생성하고자한다.ClassDiagram으로표기하는방법에대해설명하시오.
61.UML2.0(4계층과4가지영역위주로)
62.S/W제품이시장에출시된후사용자로부터예기치않은문제점이있다고ServiceDesk에접수되었다.SLA(ServiceLevelManagement)에는3일이내에개선대응해야한다고명시되어있다.3일이내에Issue를개선(Clear)하는과정을UML의TimingDiagram으로기술하시오(개선은개발담당자,검증은품질담당자가진행하며각각1일씩소요된다고가정한다).
63.아래Code에대해ClassDiagram으로표현하고설명하시오.
64.아래시나리오를기반으로고객과점주가사용하는주문시스템에대한UseCaseDiagram을작성하시오.
가.고객은주문시스템을통해가격을조회하고주문할수있다.
나.고객은주문시스템을통해주문상태를확인하고주문을취소할수있다.
다.점주는주문시스템을통해주문활동을모니터링하고창고를관리할수있다.
라.회계시스템은주문시스템과연동하여주문이나취소처리할수있다.
65.다음주사위게임유스케이스(Usecase)에대하여작성하시오.
-참여자는주사위게임을수행한다.주사위게임은두개의주사위를굴려서결과를보여준다.주사위앞면에나온값의합이8이면이기는것이고,그렇지않으면진다.
가.개념적객체모델(ConceptualObjectModel)
나.시퀀스다이어그램(SequenceDiagram)
다.클래스다이어그램(ClassDiagram)
66.UML의확장메커니즘(ExtensibilityMechanism)
(Stereotype사용에대해예를들어설명하시오.)
67.아래UML의스테레오(Stereotype)를JAVA언어로Coding하고많이사용되는Stereotype3가지이상나열해서설명하시오.
68.UML의StateMachineDiagram에대해설명하고엘리베이터(Elevator)의예를들어StateMachineDiagram으로표시하시오.
69.UML의연관(Association)관계와방향성이있는연관(DirectedAssociation)에대해예를들어설명하고DirectedAssociation에대해서는예제상황을들어Coding하시오.
70.UML의일반화(Generalization)관계에대해예제상황을들어설명하고Coding하시오.
71.UML의실체화(Realization)관계에대해예제상황을들어설명하고Coding하시오.
72.UML의의존(Dependency)관계에대해예제상황을들어설명하고Coding하시오.
PART5.디자인패턴(DesignPattern)
73.디자인패턴(DesignPattern)
74.디자인패턴의종류를기술하고각패턴별간단한설명과활용예
75.Prototype패턴(Pattern)
76.SingletonPattern
77.객체지향개념에서추상화(Abstract)에대해정의하고추상클래스(Class)로Code를구현한후설명하시오.
78.AbstractFactoryPattern에대해설명하고아래Code를ClassDiagram으로표현한후AbstractFactoryPattern을적용하여Coding하시오(Starcraft에나오는TeranUnit임).
79.IteratorPattern에대해설명하고Java언어에적용된예제를기술하시오.
80.IteratorPattern을사용하여FactoryMethodPattern을구현하시오.
81.아래ClassDiagram에서TextViewClass를AdapterPattern을적용하여구현하시오.
PART6.객체지향언어
82.객체지향개념과구성요소,객체(Object),클래스(Class),기능(Method,Message),속성(Attribute)에대해설명하고JAVA언어로실제Code예를보이시오.
83.객체지향개념에서상속(Inheritance)에대해정의하고상속방법과실제Code구현
84.객체지향개념에서추상화(Abstract)에대해정의하고예를들어설명하시오.
85.객체지향방법론에서캡슐화(Encapsulation)와정보은닉(InformationHiding)
86.JAVA언어
87.JAVA의주요구현분야와개발환경
88.JAVA언어의특징과JAVAProgram실행순서
89.JVM(JavaVirtualMachine)구조설명
90.API(ApplicationProgramInterface)와JAPI(JavaAPI)
91.객체지향설계원칙에대해실생활과연계하여설명하시오.
92.객체지향언어의특징과설계원칙을기술하고,구조적기법과차별화되는개념을설명하시오.또한Private,Public접근제어자(AccessModifier)를사용하여외부로부터데이터를보호하기위한정보은닉방법을실제객체지향언어(JAVA)로간단히구현하시오.
93.객체지향언어의특징(Code예를제시하시오.)
94.객체지향언어의오버라이딩(Overriding)과오버로딩(Overloading)
95.아래파일I/O계층구조에서각계층에서추상화하는부분에대해설명하시오.
96.StaticLinking과DynamicLinking
97.AOP(AspectOrientedProgramming)방법
98.페어프로그래밍(PairProgramming)기법과핑퐁프로그래밍(PingPongProgramming)기법
PART7.아키텍처(Architecture)스타일
99.IEEE1471(SW아키텍처명세에관한국제표준)
100.MVC(Model,View,Controller)
101.Repository(저장소)
102.계층형(Layered)
103.파이프필터(PipeFilter)
104.PHP(PersonalHomePage,HypertextPre-processor)의개요와동작원리,특징,유사Program인ASP,JSP와비교
105.P2P(Peer-to-Peer)아키텍처스타일의개념을Network개념을적용하여Client-Server와의차이점,특징및요구사항에대해설명하시오.
106.P2P(Peer-to-Peer)System의운영형태에따라PureP2P,SuperP2P,HybridP2P로분류할수있다.각각에대해설명하고장단점을기술하시오.
107.아래와같은간단한응용에대한SW아키텍처를작성하고자한다.다음질문에답하시오.
영문문자열을입력하여각문자별대?소문자를체크하여대?소문자를바꾸어출력하는프로그램이다.
※입력:ToDayIsHoIiDay출력:tOdAYiShoLIdAY
(1)C&C(Component&Connector:프로세스뷰)를작성할때가장적당한아키텍처스타일을제시하고필요한컴포넌트커넥터를제시하시오.
(2)위에서제시한아키텍처스타일에따라아키텍처를작성하시오.
(3)위응용에대한모듈(논리View)작성을위한컴포넌트를제시하고아키텍처를작성하시오.
108.소프트웨어아키텍처평가기법중ATAM(ArchitectureTrade-offAnalysisMethod)
PART8.OSS(OpenSourceSoftware)와License의종류
109.OSS(OpenSourceSoftware)의장단점
110.OSS개발Process와특징
111.OSS(OpenSourceSoftware)에서HiddenPatent
112.IP(IntellectualProperty)Rights
113.OpenAPI(ApplicationProgrammingInterface)
114.ApacheLicense2.0
115.OSSLicense에서LGPL2.1
116.BSD(BerkleySoftwareDistribution)License
117.FreeSoftware와OpenSoftware에대해설명하고OpenSourceSoftware의지적재산권과License에대해설명하시오.
118.기업에서오픈소스소프트웨어(OSS;OpenSourceSoftware)를활용하여비즈니스를수행하고자한다.다음에대해설명하시오.
가.OpenSource정의와GPL2.0의내용을기술하시오.
나.GPL2.0의의무사항과GPL3.0에서추가된내용을설명하시오.
PART9.Project관리
119.PMBOK의5단계Project관리Process
120.PMBOK에서제시하는10개관리활동영역
121.Project와Program,Portfolio
122.Project생명주기에따른Project관리업무의제약사항
123.PM(ProjectManager)이Project를관리하는Process
124.Project의특징과PM과PMO역할을비교
125.PMO(ProjectManagementOffice)의기능에대해5개이상설명하시오.
126.PMO의Framework
127.PMO의주요Model과R&R(Role&Responsibility)에따른유형비교
128.PMO(ProjectManagementOffice)의기능중범위관리,일정관리,인적자원관리,위험관리,의사소통관리기능에대하여각기능의정의,주요단계,관리상의주의사항
129.정보시스템감리와PMO(ProjectManagementoffice)비교
130.종료단계감리시감리원은구현기능을직접테스트하여과업이행여부를판정하도록정보시스템감리수행가이드에안내되어있다.
가.감리원이직접테스트하는것이현실적으로어려운사례를설명
나.검토및확인,제3자검증점검방법을통한개선방안을설명
131.Project진행시발생될수있는이해관계자간의갈등해결방안
132.IEEE-SRS830(Software요구사항명세서)
133.요구사항을만족하기위해서는요구공학적개념이필요하다.요구공학을위한Process와이를개발하기위한절차
134.Software요구사항분석이어려운이유
135.IT프로젝트를성공적으로수행하기위해요구사항의체계적인관리와문서화가매우중요하다.요구사항에대하여다음을설명하시오.
1)소프트웨어(SW)요구사항품질속성
2)요구사항도출기법
3)요구사항개발프로세스
136.동기부여이론(MotivationTheory)
137.디자인씽킹(DesignThinking)
138.Project10관리영역중(PMBOK기준)위험관리방안
139.Project관리영역중범위관리를위한Process
140.Project일정단축기법중FastTracking과Crashing기법
141.Project진행과정에서이해관계자관리방안(이해관계자분석Model)
142.지연되는Project에인력을더충원해도오히려일정이지연된다는Brook’sLaw
143.WBS(WorkBreakdownStructure)
144.정보화사업에서작업분류체계(WBS;WorkBreakdownStructure)를이용하여범위및일정등을관리한다.WBS작성원칙,장점,일정지연시만회대책및사례에대해설명하시오.
145.WBS(WorkBreakdownStructure)의특징,유형,Activity의선행후행의존관계설정방법
146.Project일정관리에서임계경로(CriticalPath)의의미를설명하고다음의CPM(CriticalPathMethod)Network에서임계경로를찾으시오(방법1).
147.Project일정관리에서임계경로(CriticalPath)의의미를설명하고다음의CPM(CriticalPathMethod)Network에서임계경로를찾으시오(방법2).
148.Software의분리발주와분할발주
PART10.Process와Product검증에대한국제표준
149.Software생명주기모형,SW개발방법론과SWProcess평가및개선모델간의관계
150.Software품질향상을위한국제표준의상호관계도
151.Software의개발과양산,그리고유지보수과정에서사용되는품질향상을위한국제표준에대해설명하시오.
152.ISO/IEC14598-1에정의한Software제품평가(SoftwareProductEvaluation)
153.ISO/IEC9126품질모델(QualityModel)
154.ISO21500
155.ISO12207의구성과구성에따른세부내용
156.SoftwareProduct평가를위한ISO/IEC12119
157.ISO/IEC25000
158.ISO26262(FunctionalSafety)
159.e-SCM(e-SourcingCapabilityModel)품질모델
160.ISO20000에대해서기술하고,eSCM과비교
161.ISO/IEC15504(SPICE)
162.CMM(CapabilityMaturityModel)성숙도단계및평가기준
163.GS(GoodSoftware)인증
PART11.품질관리
164.Software의품질관리(QualityManagement)
165.Software품질향상을위한Test의일반적인원리와유형,S/WTest의문제점과해결방안
166.SoftwareTest의전략과어려움
167.Software의TestCase
168.Software검증에서Verification과Validation방법과절차,그리고비교
169.Refactoring(리펙토링)(실제사례도포함하시오.)
170.아래논리회로를부울(Boolean)대수법칙을적용하여간소화(팩터링-Factoring)
171.Software품질개선을위한Inspection
172.품질보증방안,review
173.Software관리를위한형상통제위원회활동
174.SoftwareTest방법중명세기반과구조기반Test설계기법
175.DailyBuild
176.TestOracle
177.Risk기반Test
178.회귀테스트(RegressionTest)
179.통합테스트(IntegrationTest)에대하여다음을설명하시오.
가.비점진적통합방식과점진적통합방식
나.하향식(TopDown)통합테스트와상향식(BottomUp)통합테스트
다.테스트드라이버(TestDriver)와테스트스텁(TestStub)
180.화이트박스테스트(WhiteBoxTest)와블랙박스테스트(BlackBoxTest)의비교
181.몽키테스트(MonkeyTest)와회귀테스트(RegressionTest)비교설명
182.카오스테스트(ChaosTest)
183.EmbeddedSoftwareTest
184.Software개발프로젝트품질비용항목4가지를제시하고사례를들어설명하시오.
185.BackToBackTest
186.PairwiseTest
187.이벤트(Event)기반의시스템Testing을위한RecordandReplay
188.Software검증을위한테스트자동화(TestAutomation)
189.System의오류(Error),결함(Fault),고장(Failure)을방지하기위한일반적인Test과정
190.아래코드에대한테스트케이스(testcase)를작성하는과정
191.시스템의테스트완전성을확보하기위한소스코드커버리지(sourcecodecoverage)의종류
192.SP(SoftwareProcess)인증
193.PSP(PersonalSoftwareProcess)
194.TSP(TeamSoftwareProcess)
195.소프트웨어안전성분석의필요성과FTA(FaultTreeAnalysis)
196.소프트웨어안전성분석의필요성과HAZOP(HazardandOperabilityAnalysis)
PART12.기성고관리(프로젝트수행시중간점검)및S/W원가산정
197.Project기성고관리(EVM;EarnedValueManagement)기법
198.Project일정계획에대해다음물음에대해설명하시오.
1)EVM(EarnedValueManagement)에대해설명하시오.
2)1월1일부터6월1일까지진행되는Project에관한진행기록이다음과같을때EV(EarnedValue),SPI(SchedulePerformanceIndex),SV(ScheduleVariance),CPI(CostPerformanceIndex),그리고CV(CostVariance)를각각구하시오.단,현재일은3월1일이라고가정한다.
199.사업예산은1,600,000천원,사업기간은16개월인프로젝트가4개월경과되어Project관리는수행업체에게400,000천원을지급하였다.그러나확인결과작업수행률은20%이었다.이문제에대한기성고분석(EVA;EarnedValueAnalysis)을수행하였다.
가.프로젝트비용의계획대비실적의차이(CV),실제예상원가효율(CPI)을각각구하고값의의미를설명하시오.
나.Project일정진척사항파악(SV),일정에대한효율(SPI)을각각구하고값의의미를설명하시오.
다.완료시점원가예상치(EAC)를구해보고,Project관리자입장에서신뢰성있는원가또는일정준수를위해현장에서실현가능한고려사항을제시하시오.
200.새로운IT프로젝트를수행중에있다.각단계의일정은한달씩걸리고,각단계마다10,000천원의예산이할당되었다.각단계는해당단계가끝난후에다음단계를수행하도록되어있다.오늘은3월의마지막날이다.아래프로젝트진척상황표를이용하여EarnedValueAnalysis측면에서다음질문에대하여설명하시오.
가.PV(PlannedValue),EV(EarnedValue),AC(ActualCost),BAC(BudgetAtCompletion),CV(CostVariance),CPI(CostPerformanceIndex),SVS(ScheduleVariance),SPI(SchedulePerformanceIndex)의계산식과답을구하시오.
나.EAC(EstimateAtCompletion),ETC(EstimateToComplete),VAC(VarianceAtCompletion)의계산식과답을구하시오(단,EAC는향후에도CPI의비율로지출됨).
다.상기결과를바탕으로현재진행중인IT프로젝트의상태를진단하시오.
201.소프트웨어(Software)규모산정
가.필요성과산정방식
나.규모산정방식의종류별특징
202.소프트웨어(Software)원가산정방법
203.Software사업영향평가
204.최근대규모공공차세대시스템이오픈이후에많은문제점이발생되어사회적불편을초래하게되었다.이에대하여다음을설명하시오.
가.발생된문제점의원인
나.재발방지를위한대책및법제도보완방안
다.시스템오픈가능여부판단을위한지표관리
책의특징
Part1.Software공학
Software정의,분류,특성,개념,유형등기본적인내용이포함되어있는Part입니다.S/W공학의탄생배경과구성요소,모듈화및분할과정복,역공학,재공학등에대한내용으로작성했습니다.[관련토픽-17개]
Part2.Software개발모형(모델)
S/W개발과정에적용될개발모형으로폭포수,프로토타이핑,나선형,증분형과진화형,RAD모형,그리고각모델간의상관관계와SDLC과정에필요한Review,Inspection,Walkthrough등에대해학습할수있도록하였습니다.[관련토픽-11개]
Part3.S/W개발방법론
S/W개발방법론인구조적,정보공학,객체지향,CBD,그리고Agile,TDD,SPL,XP,RUP,SCRUM,MDD,DevOps,Kanban,Lean등에대한개발방법론에대해쉽게접근할수있도록답안화하였습니다.[관련토픽-18개]
Part4.UML(UnifiedModelingLanguage)
Modeling언어로UML이필요한이유와개발방법론과의관계,UML의4+1View모형,관계표시인일반,의존일반화,실체화에대한예제상황과Coding에대한내용을학습할수있도록하였습니다.[관련토픽-26개]
Part5.디자인패턴(DesignPattern)
추상화에대한정의와추상클래스생성방법,디자인패턴의종류와Prototype,Singleton,AbstractFactory,Iterator,Adapter패턴에대한예제들을학습할수있도록답안화하였습니다.[관련토픽-9개]
Part6.객체지향언어
객체지향언어에대한구성요소,객체,클래스,기능,속성에대한정의와특징,JAVA언어에대한내용과상속,추상화,설계원칙,정보은닉방법에대한실제객체지향언어의예제에대해학습할수있습니다.[관련토픽-17개]
Part7.아키텍처(Architecture)스타일
IEEE1471아키텍처의내용과S/W아키텍처스타일인MVC,Repository,Layered,PipeandFilter,PHP에대한부분을이해위주로학습할수있도록기술하였습니다.[관련토픽-10개]
Part8.OSS(OpenSourceSoftware)와License의종류
OSS사용시의장단점,적용시의Process와특징,HiddenPatent,지적재산권,GPL2.0/3.0,LGPL2.0등에대한내용으로작성했습니다.[관련토픽-10개]
Part9.Project관리
PMBOK의5단계Project관리Process,Project와Program,Portfolio의정의,PM과PMO의역할,Project의10대관리영역,WBS,CPM에대한부분을이해위주로학습할수있도록답안화하였습니다.[관련토픽-30개]
Part10.Process와Product검증에대한국제표준
S/W개발과정에적용될국제표준으로ISO/IEC14598,9126,21500,12207,25000,26262,12119,20000,15504(SPICE),CMM,GS인증등에대한부분을이해위주로학습할수있도록기술하였습니다.[관련토픽-15개]
Part11.품질관리
S/W품질관리방안,전략,TestCase,Verification과Validation,품질보증방안,DailyBuild,Risk기반Test,RegressionTest,TestAutomation등에대한내용을학습할수있도록하였습니다.[관련토픽-33개]
Part12.기성고관리(프로젝트수행시중간점검)및S/W원가산정
프로젝트비용의계획대비실적의차이(CV),실제예상원가효율(CPI),Project일정진척사항파악(SV),일정에대한효율(SPI),현재진행중인IT프로젝트의상태를진단할수있도록하였습니다.[관련토픽-8개]
