배열 

같은 자료형을 가진 자료들을 나열하여 메모리에 연속으로 저장하여 만든 자료들의 그룹

인덱스
배열의 요소를 간단히 구별하기 위해 사용하는 번호

C에서 인덱스는 항상 0부터 시작

 

모든 자료형에 대해서 배열로 구성가능

 

구성 형태에 따라 1차원 배열 2차원 배열 3차원 배열이 있음


1차원 배열 

 

 

 

 

 

자료구조

자료구조의 필요성

  • 데이터를 보다 효율적 저장, 검색, 정렬, 삭제 등을 위해 필요
  • 복잡한 문제를 해결하는 알고리즘을 효율적 설계
  • 메모리 공간을 효울적 활용, 시간 복잡도 축소
  • 프로그램의 성능 개선
  • 여러 개의 자료를 하나의 단위로 처리
  • 프로그래밍 능력 향상  

자료구조의 분류 

 

프로그램에서 사용하기 위한 자료를 기억장치 공간 내에 저장하는 방법과 저장된 그룹 내에 

존재하는 자료 간의 관계, 처리 방법 등을 분석 

 

 

스택 

LIFO : Last In First Out 후입선출 방식으로 자료 처리 
스택은 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 구조 

 
FIFO : First In First Out 한쪽에서는 삽입 작업이 이루어지고 다른 한쪽에서는 삭제 작업이 이루어지도록

구성한 자료구조 시작과 끝이 존재함 

 

 

트리 (Tree)

 

 

'세종사이버대학교 > 정보처리기사' 카테고리의 다른 글

소프트웨어 설계2  (0) 2024.09.14
소프트웨어 설계1 (1주 차)  (1) 2024.09.08

객체지향 소프트웨어의 필요성 

객체 = 하나의 오브젝트

데이터와 데이터를 처리하는 함수를(메소드)를 묶어 놓은 하나의 소프트웨어 모듈

 

객체의 특성

  • 독립적으로 식별이 가능한 이름을 가지고 있다.
  • 객체가 가질 수 있는 조건인 상태는 시간에 따라 변한다.
  • 객체는 반응할 수 있는 메세지의 집합인 행위 특징이 있다.

객체의 메소드는 다른 객체로부터 메세지를 받았을 때 정해진 기능을 수행 

 

 

클래스 

공통된 속성솨 연산(행위)을 갖는 객체의 집합으로, 객체의 일반적인 타입(Type)의미

각가의 객체들이 갖는 속성과 연산을 정의하고 있는 틀

객체지향 프로그램에서 데이터를 추상화하는 단위

클래스에서 속한 각각의 객체를 인스턴스(Instance)라 하며, 클래스로부터 새로운 객체를 생성하는 것을

인스턴스화(Instantiation) 

캡슐화 

데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것 

캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은폐(정보은닉) 되어 외부에서의 접근니 제한적이기 떄문에 외부 
묘듈의 변경으로 인한 파급 효과가 적다.

 

상속 (Ingeritance)

이미 정의된 상위 클래스 (부모 클래스)의 모든 속성과 연산을 하위 클래스 (자식 클래스가) 물려받는 것




다형성 (Polymorphism)

메시지에 의해 객체(클래스)가 연산을 수행하게 될 떄 하나의 메세지에 대해 각가의 객체(클래스가) 가지고 있는

고유한 방법 (특성)으로 응답할 수 있는 능력

 

객체지향 설계

재새용성을 높힘 

객재체향 분석의 방법론 

Rumbaugh : 가장 일반적으로 사용되는 방법으로 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행하는 방법

Booch  : 미시적(Micro) 개발 프로세스와 거시적 ( Macro) 개발 프로세스를 모두 사용 하는 분석 방법으로, 클래스와 객체들을 분석 및 식벽하고 클래스의 속성과 연산을 정의

 

Jacobson : Use Cas를 강조하여 사용하는 분석 방법

Coad와 Yourdon 방법 : E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주제 정의, 속성과

인스턴스 연결 정의, 연산과 메세지 연결 정의 등의 과정으로 구성하는 기법

 

Wirfs-Brock 방법 : 분석과 설계 간의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법


 

객체지향 설계 원칙

단일 책임 원칙             ( SRP, Single Responsibility Rinciple ) 객체는 단 하나의 책임만 가져야 한다는 원칙
개방-폐쇄 원칙            ( OCP, Open-Closed Principle )  기존의 코드를 변경하지 않고 기능을 추가할 수 있도록
설계해야 한다는 원칙
리스코프 치환 원칙     ( LSP, Liskov Substiution Principle ) 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 
수행할 수 있어야 한다는 설계 원칙
인터페이스 분리 원칙 ( ISP, Interface Segregation Principle ) 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나
영향을 받지 않아야 한다는 원칙
의존 역전 원칙           ( DIP, Dependency Inversion Principle ) 각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙

 

디자인 패턴 (Design Pattern) 의 개요 

생성 패턴 : 객체를 어떻게 생성할 것인가
구조 패턴 : 생성된 객체를 어떻게 조합/ 합성 할 것인가
행동 패턴 : 객체들을 어떻게 상호작용하고 어떻게 책임을 가져가는가

 

 



'세종사이버대학교 > 정보처리기사' 카테고리의 다른 글

정보처리기사 3주차  (0) 2024.09.22
소프트웨어 설계1 (1주 차)  (1) 2024.09.08

자료 구조 
컴퓨터가 효율적으로 문제를 처리하기 위해 문제를 정의하고 분석하여

그에 대한 최적의 프로그램을 작성해야하기 때문
자료구조에 대한 개념과 활용 능력 필요

 

자료구조란?

 

자료를 효율적으로 처리할 수 있도록, 표현하고 저장하고 정리하는 것 

자료구조의 형태에 따른 분류

 

  • 단순 구조 
    정수, 실수, 문자, 문자열, 등의 기본 자료형
  • 선형 구조
    자료들 사이의 관계가 1:1 관계
    순차 리스트, 연결 리스트, 스택, 큐, 데크 등
  • 비선형 구조
    자료들 사이의 관계가 1:다, 또는 다:다 관계
    트리, 그래프 등
  • 파일구조
    서로 관련 있는 필드로 구성된 레코드의 집합인 파일에 대한 구조
    순차파일, 색인 파일, 직접 파일 

자료의 표현

컴퓨터에서의 자료 표현과 단위

숫자, 문자, 그림, 소리, 기호 등 모든 형식의 자료를 2진수 코드로 표현하여 저장및 처리

2진수 코드란?

 

1과 0, On과 Off 참(true) 거짓(false)

디지털 시스템에서의 자료 표현 개수 

 

 

자료의 종류

 

수치 자료

문자 자료

논리 자료

포인터 자료

문자열 자료

 

수치 자료의 표현

부호가와 절댓값 형식 가산기와 감산기를 다 사용함

1의 보수 형식 감산기를 사용함

2의 보수형식 간단한 형식 현존하는 컴퓨터는 이것만

 

자료구조란 
자료를 효율적으로 처리할 수 있도록, 표현하고 저장하고 정리하는 것



알고리즘

문제해결 방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 명세서

알고리즘의 조건

  • 입력(Input) : 알고리즘 수행에 필요한 자료 외부에서 입력으로 제공될 수 있어야 함
  • 출력(Output) : 알고리즘 수행 후 하나 이상의 결과를 출력해야 함
  • 명확성(Definiteness) : 수행할 작업의 내용과 순서를 나타내는 알고리즘의 명령어들은 명확하게 명세되어야 함
  • 유한성(Finiteness) : 알고리즘은 수행 뒤에 반드시 종료되어야 함 (무한반복되면 안됨)
  • 효과성(Effectiveness) : 알고리즘의 모든 명령어들은 기본적이며 실행이 가능해야 함

알고리즘의 표현 방법

알고리즘의 표현방법

 

  1. 자연어를 이용한 서술적 표현 방법
    사람이 쓰는 자연어(언어)로 표현하는 방법으로 알고리즘을 표현하는데 한계가 있음
  2. 순서도를 이용한 도식화 표현방법
    명령어의 흐름을 쉽게 파악할 수 있지만 복잡한 알고리즘을 표현하는 데는 한계가 있음
  3. 프로그래밍 언어를 이용한 구체화 방법
    알고리즘 자체가 구체적이므로 추가적인 구체화 작업이 필요 없지만 알고리즘을 작성한 특정프로그램 언어를
    모르면 이해하기 어려움
  4. 가상코드를 이용한 추상화 방법
    특정 프로그래밍 언어는 아니지만 프로그래밍 언어의 형태를 갖춘 가상코드를 사용하여 알고리즘을 표현함
    직접 실행할 수는 없지만 형태가 프로그래밍 언어와 유사하기 때문에 원하는 특정 프로그래밍 언어로 
    변환(구체화) 하기가 쉬움

 

순서도를 이용한 도식화

순서도는 특정기호를 상요하여 알고리즘의 실행단계를 표현함 

 

 

 

 

 


소프트웨어 설계 객체지향 디자인 패턴 UML 


소프트웨어 설계 1 

파트가 5개로 나뉘어 있음 

소프트웨어 설계의 개념 

객체지향 설계 기법 디자인 패턴

UML (Unitied Modeling Language) 을 이용한 시스템 설계

소프트웨어 아키텍처 설계

시스템 품질과 성능에 대한 설계 고려 사항


객체지향 설계 기법 디자인 패턴 복잡한 시스템을 구조화 하고 유지보수 가능한 설계를 수립 할 수 있도록 함

 UML 요구사항을 분석하고 설계 문서를 작성할 수 있도록 함 

소프트웨어 설계 중요 고려사항은? 
 
이용자의 요구사항을 분석 설계관점 투영 


1. 요구사항 분석 및 명세화 (다큐메이션해야함) 그림, 토표 다양한 방법으로 명세화 할 수있음
2. 시스템 아키텍처 설계

3. 묘둘화 및 인터페이스 정의
4. 데이터 구조 및 알고리즘 설계

5. 보안 및 안정성 고려
6. 성능 및 사용성 최적화

요구사항 확인

 

소프트웨어 공학 


개념 
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문 
여러 가지 방법과 도구, 관리 기법들을 통하여 소프트웨어의 품질과 생상성 향상 목적 

기본원칙 
 개발된 소프트웨어의 품질이 유지되도록 지속적 검증
 소프트웨어 개발 관련 사항 및 결과에 대해 명확한 기록 유지

 

라이프 사이클로 개발 

기획 분석 설계 반영 구현  

소프트웨어 생명 주기 

개발 방법론 정의 운용 유지보수 각 과정을 단계별로 나눈 것 단계별로 주요활동 활동의 결과에 대한 
산출물로 표현 

소프트웨어 생명주기 모형에는 폭포수, 프로토타입, 나선형모형, 에자일 모형 등이 있음 

 

폭포수 모형  (Waterfall Model)

 

나선형 모형 (Spiral Model, 점진적 모형)

 

 애자일 모형(Agile Model)

 

매해 시험에 나옴 고객과 소통 초점을 맞춘 방법론 

 


애자일 방식

스크럼 (Scrum)

  • 팀원 스스로가 스크럼팀을 구성해야하며, 개발 작업에 관한 모든 것을 스스로 해결
  • 스크럼 팀은 제품 책임자, 스크럼 마스터,  개발팀으로 구성
  • 개발 프로세스 : 제품 백로그, 스프린트 계획 회의, 스프린트, 일일 스크럼 회의, 스프린터 검토 회의, 스프린터 회고 

보통 5~7명의 스크럼팀으로 이뤄짐 

 

 

XP(eXtreme Programming)

  • 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발과정의 반복을 극대화하여 개발
  • XP 짧고 반복적인 개발 주기 단순한 설계, 고객의 적극적인 참여를 통해 소프트웨어를 빠르개 개발하는 것이 목적
  • 릴리즈의 기간을 짧게 반복하면서 고객의 요구사항 반영에 대한 가시성을 높힌다.
  • XP 5가지 핵심가치 : 의사소통, 단순성, 용기, 존중, 피드백

테스트 소프트웨어를 스파이크라고 함

나선형의 위험분석과 동일한 것 

 

요구사항 

 

개발 대상에 대한 요구사항을 체계적으로 도출하고 이를 분석한 후 분석 결과를 명세서(Specification Document)에

정리한 다음 마지막으로 이를 확인 및  검증하는 일련의 구조화된 활동


 

  1. 요구사항 도출 : 청취와 인터뷰, 설문, 브레인스토밍, 워크샵, 프로토타이핑, 유스케이스 
  2. 요구사항 분석 : 자료 흐름도(DFD), 자료 사전(DD) ,그림 (이해상승)
  3. 요구사항 명세 : 소단위 명세서(Mini-Spec)
  4. 요구사항 확인 : 요구사항 검증

자료흐름도 

  • 요구 사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
  • 자료 흐름 그래프, 버블 차트
  • 자료 흐름도에서는 자료의 흐름과 기능을 프로세스(Process), 자료흐름(Flow), 자료 저장소(Data Store),
    단말(Terminator)의 네 가지 기본 기호로 표시

 

'세종사이버대학교 > 정보처리기사' 카테고리의 다른 글

정보처리기사 3주차  (0) 2024.09.22
소프트웨어 설계2  (0) 2024.09.14

+ Recent posts