How can you explain the switch app to a programmer?

switch's essense

i can say step 1!
display a switch with on and off

step 2 : wait for the user to choose either "on" or "off"

Step3 : if the user chooses "on", then the switch becomes bright. If he choose "off" then the switch becomes dark.

This description seems OK but there is a serious problem.

What is the correct way to describe the switch app?
스위치의 본질과, 무엇을 수행할지를 알려줘야한다.

<O, T> where O is the essence of and object
and T is the specific task. in mind

쓸데 없는 말이 많다. 그냥 개체의 Specification을 정의하면 그 개체의 본질과 행동(Task)이렇게 두가지다.
위의 스위치의 예제는 essense는 없고 task만 있는 상태.

What is O of the switch in this classroom?

switch : on c-and off

the final answer

(on c-and off, on c-and off)

(on c-and off, on)

(on c-and off, off)


claim: Given an obejct, we describe the essence of O by describing what  can do.


외부적으로 드러나는 Task(사용자와의 인터페이스)
앱이 내부적으로 하는 모든 행동(본질) Essence.



Specification of chinese restaurant.

Object :

Task :

이런 조카 18색 크레파스 설명을 못하네.

'Courses' 카테고리의 다른 글

[임베디드] 명령어 실습  (0) 2011.09.15
[소공] 실습 3주차  (0) 2011.09.14
[소공] 11.09.06  (0) 2011.09.10
[소공] 실습 1주차  (0) 2011.08.31
[소공] 수업 계획  (0) 2011.08.30
소프트웨어 공학을 위한 언어. 요고 두개만 알면 끝나는 얘기입니다.
1. Specification 언어(명세 언어)
- 대상 : 사람(Programmer)

2. programming 언어
- 대상 : 컴퓨터(컴퓨터가 이해하는 언어)

               Specification
                     --->
Customer                   Programmer
                    <---
               Programming


(S.L  ⊂ P.L)

둘 다 재미없죠. 그래도 명세언어가 프로그래밍언어보다 좀 더 쉽다.(개인차가 있을거 같음)


claim
1. Specification Language = CL(Compatibitliy Language)
2. Programming Language = CL

한마디로 Compatibity Language은 만병통치약이라 이거죠.
※ Compatibility : 양립, (컴퓨터의) 호환성


Specification의 Example
ex1)  앱을 실행시키면 사과가 나오는데 아무것도 안하고 사과만 디스플레이한다 이거죠.
app : display an apple

ex2) switch(on <-> off)

위의 두 예제 처럼 간단한 경우는 큰 문제가 없죠. 좀 더 복잡한 예를 들어봅시다.

ex3) Alarm App
app <-> 사용자 interactive 해야함.

Specification 언어 : 어떤 객체를 가장 세련되게 설명하는 것이 중요.

ex4) chinese restaurant
메뉴는 간단하게 하기 위해서 자장면과 짬뽕만 있다고 가정
표현할 수 있는 언어 : korean, english, java, c, ...
- korean
    Step1. emplyee offers a menu
    Step2. 적절한 메뉴를 고르지 못하고 우유부단하게 방황하고 있음
    Step3. 무한 반복. 아무거나. 너랑 같은거, 맛잇능거
    Step4. customer choose betwenn black noodle and mix noodle
    Step5. pay \5,000

- java
   Step1. Execute chinese restaurant application.
   Step2. Display a menu
   Step3. user select item.
   Step4. restaurant object get user's choice.
   Step5. cook.
   Step6. offers cooked items



Intro to CL :
ex) apple => apple

ex) coin => coin

ex) switch
상태가 있고, 사람이 동작시키길 기다리고 있음
switch => on choice-and off
※ 사람이 고를 수 있는게 choice-and?

ex) chinese restaurant
     => 5000 -> (짜 c-and 짬)
5000원을 주면 선택한 두가지 중에 한가지를 주겠다는 뜻으로 -> 를 사용.?
?? 막 만들어냄
오늘부터 새로운 언어의 창조를 보게 될것이다. 자빠리치 창세기 제 1장 1절.


def) A ->(implies) B : A 이면 B이다.

쉬운걸 개 어렵게 만드는 능력
하드하드 열매 섭취하심.

'Courses' 카테고리의 다른 글

[임베디드] 명령어 실습  (0) 2011.09.15
[소공] 실습 3주차  (0) 2011.09.14
[소공] 11.09.06  (0) 2011.09.10
[소공] 실습 1주차  (0) 2011.08.31
[소공] 수업 계획  (0) 2011.08.30
topics:
1. computability logic: Japaridze:
in the beginning was game semantics

2. traditonal software engineering: (textbook, ppt자료)

3. book:
title1: 21 c 형 programming title
     2: 그들이 프로그래밍에 대해 말하지 않은 10가지
report: 5 page Java 비판, CL 찬양 그들은 말한다
        : 객체는 method를 수행하고 method는 함수나 procedure이다.
         그들은 말하지 않는다: 부연설명:

5. term project:
구현전단계까지:
- idea brain storming:

grade: - class participation: 20%

----------------------------------------------
problem: coffee vending machine: how can we explain a coffee vending machine?
유: 외모: 성격: capability: 론: sw = capability를 어떻게 표현하느냐를 연구하는 학문
=> CL is the first approach to express capability:

'Courses' 카테고리의 다른 글

[임베디드] 명령어 실습  (0) 2011.09.15
[소공] 실습 3주차  (0) 2011.09.14
[소공] 11.09.06  (0) 2011.09.10
[소공] 실습 1주차  (0) 2011.08.31
[소공] 수업 계획  (0) 2011.08.30

+ Recent posts