-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: szyk <s...@o...pl>
Newsgroups: pl.comp.programming
Subject: procedura tworzenia programów
Date: Fri, 17 Feb 2012 13:58:07 +0100
Organization: Netia S.A.
Lines: 53
Message-ID: <jhliut$3he$1@mx1.internetia.pl>
NNTP-Posting-Host: 213.195.153.101
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: mx1.internetia.pl 1329483549 3630 213.195.153.101 (17 Feb 2012 12:59:09 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Fri, 17 Feb 2012 12:59:09 +0000 (UTC)
X-Tech-Contact: u...@i...pl
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0.1) Gecko/20120208 Thunderbird/10.0.1
X-Server-Info: http://www.internetia.pl/
Xref: news-archive.icm.edu.pl pl.comp.programming:195402
[ ukryj nagłówki ]Witam
Zapraszam do dyskusji na temat procedury tworzenia programów
komputerowych jaką można zastosować indywidualnie oraz w niewielkich
zespołach. Interesujące też by były wypowiedzi osób które mają
doświadczenie z dużymi projektami (jak wtedy zmieniają się procedury
wytwarzania programów).
Ja głęboko wierzę w sens takiej dyskusji, gdyż z moich doświadczeń
zawodowych wynika, że uprawianie partyzantki przy programowaniu jest na
porządku dziennym w polskich firmach. Co jakiś czas wracam do poszukiwań
skutecznych a przy tym indywidualnie wykonalnych metod tworzenia
oprogramowania. Dlatego by zacząć dyskusję przedstawię obecny kształt
procedury tworzenia programów nad którą pracuję. Proszę o sugestie wraz
z uzasadnieniem (czyli apeluję żeby była to konstruktywna dyskusja).
Podstawowym założeniem niniejszej procedury wytwarzania oprogramowania
są 2 fundamentalne zasady inżynierskie: "metoda pojedynczych kroków"
(rozwiązywanie jednego problemu na raz) oraz "modularyzacja" (czyli
zamykanie problemów i funkcji w odrębnych blokach).
Procedura tworzenia programów komputerowych:
1. Określenie co ma robić program (zebranie wymagań, przypadki użycia,
zwrotny opis systemu (do weryfikacji przez klienta), identyfikacja i
redukcja ryzyka)
2. Zdefiniowanie elementów składowych programu (biblioteki zewnętrzne,
moduły wewnętrzne (ogólnie), zastosowanie wzorców projektowych do modułów)
3. Określenie funkcji elementów składowych (bibliotek, modułów
(szczegółowo), diagram klas (zastosowanie zasad OOP* i wzorców
projektowych))
4. Analiza przewidywanego działania i współdziałania elementów
składowych (diagramy stanów i sekwencji, oraz testy bibliotek,
prototypowanie, identyfikacja i redukcja ryzyka)
5. Ocena łatwości rozbudowy programu i ocena spójności elementów
składowych (spr. spełnienia zasad OOP*, identyfikacja i redukcja ryzyka)
6. Zdefiniowanie parametrów funkcji realizowanych przez elementy
składowe (wartości prawidłowe i nieprawidłowe parametrów)
7. Wykonanie programu (projekt UI, projekt relacyjnej bazy (lub plików),
kodowanie)
8. Analiza pracy programu (stopień realizacji zadań, testy funkcjonalne,
optymalizacja (UI i profilowanie), wycieki pamięci)
9. Zrobić instalatory, stronkę domową z płatnościami i kasować kapuchę!
Na podstawie:
a) procedury budowy prototypu piramidy z tomu 9 "Monografii 1/5" prof
Jana Pająka
b) "Head First - Object Oriented Analysys and Design"
* zasady OOP (Obiektowo Orientowane Projektowanie) - ściąga z tych
zasad: brak duplikacji kodu, enkapsulacja, operowanie na interfejsach
zamiast na implementacji, preferowanie kompozycji zamiast dziedziczenia,
atomowa odpowiedzialność klas, klasy otwarte na rozbudowę ale zamknięte
na modyfikacje, sensowne dziedziczenie
Następne wpisy z tego wątku
- 17.02.12 15:14 Roman W
- 17.02.12 15:24 M.M.
- 17.02.12 15:15 A.L.
- 17.02.12 15:42 bartekltg
- 17.02.12 15:48 A.L.
- 17.02.12 16:01 bartekltg
- 17.02.12 16:36 A.L.
- 17.02.12 16:47 Roman W
- 17.02.12 17:40 Bronek Kozicki
- 17.02.12 19:14
- 17.02.12 19:15 A.L.
- 17.02.12 20:33 szyk
- 17.02.12 20:52 Marcin Biegan
- 17.02.12 21:55 A.L.
- 18.02.12 03:06 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-18 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-18 Warszawa => Software .Net Developer <=
- 2024-05-18 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-18 Ulm => Solution Architect (sichere Kommunikation und IoT-Loesungen <=
- 2024-05-18 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-05-18 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-18 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-18 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-05-18 Warszawa => Account Manager (Recruitment Services) <=
- 2024-05-18 Łódź => Salesperson - CRM Systems <=
- 2024-05-18 Łódź => Handlowiec - Systemy CRM <=
- 2024-05-17 ZŁOMNIK o pracy w TVN TURBO, nowych przepisach i współczesnej motoryzacji. Turbo Taryfa!
- 2024-05-17 Białystok => DevOps Engineer Conexa First (Contractor) <=
- 2024-05-17 Warszawa => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-17 Zabrze => Junior HelpDesk <=