2009-02-26 4 views
5

Widziałem siebie w ten sposób, a ja zastanawiałem się, czy inni ludzie działają w ten sposób, a także:Czy kiedykolwiek projektowałeś oprogramowanie, wyobrażając sobie idealne rozwiązanie?

Co zwykle zrobić w obliczu problemu projektowania oprogramowania jest to, że zanotować „idealne” rozwiązanie, bez uwzględnienia wykonalność lub jakąkolwiek inną uwagę. Następnie obieram to od góry do dołu, aż mam rozwiązanie.

Czy jest to popularna metodologia o chwytliwej nazwie? Jeśli tak, chciałbym wiedzieć, aby dowiedzieć się więcej na ten temat.

+0

"Inżynieria wsteczna" oznacza coś zupełnie innego, FYI. Odnosi się do wykorzystania istniejącego artefaktu jako przewodnika do budowy własnej implementacji tego. – chaos

+0

Zamierzam edytować pytanie, aby to odzwierciedlić; edytuj moje zmiany, jeśli źle je polubisz. – chaos

+0

Aby dowiedzieć się więcej na ten temat, sprawdź to pytanie: http://stackoverflow.com/questions/130933/design-coding-top-to-bottom-or-bottom-to-top – chaos

Odpowiedz

2

Budowanie oprogramowania z punktu widzenia jest najlepszą drogą.

Opracuj wizję, ustaw przypadki użycia, zbuduj listę funkcji z tych przypadków, ustal priorytety pod względem wartości, jaką otrzymasz, aby je zbudować, a następnie zbuduj zgodnie z tym priorytetem.

Co pomaga to osiągnąć jest budowanie funkcji, które mają wysoką wartość cały czas podczas ruchu w kierunku idealnego rozwiązania, gdzie niektóre funkcje mogą być używane tylko przez niewielką grupę użytkowników

12

Tak, nazywa się top-down design. :)

+1

Na pewno nie jest to nazywane oderwaniem projekt? –

+0

Cóż, próbowałem nazywać to projektem bez możliwości użycia, ale mój kierownik projektu się zdenerwował. – chaos

+0

Czy lubicie to? czy używasz tego? Czy Ci to pasuje? –

3

W jednym z moich starych książekanalizy/projektu (nie pamiętam, który z miłości a nie Google), że wprowadził pojęcie „tech-NO-Filter”, gdzie uważasz o prawdziwy cel i pomyśl o rozwiązaniu idealnym. Jest bardzo podobny do tego, o czym mówisz. Produkt końcowy może nie mieć dużego podobieństwa do idealnego rozwiązania ze względu na obecną technologię, ale wiedząc, co oznacza idealny, gdy nowe elementy stają się dostępne, można łatwo ocenić, jak można zaktualizować obecny projekt, aby z nich skorzystać. Kontrastuj, że znając tylko problem i rozwiązanie pod względem tego, co możesz dzisiaj zbudować. Rozejrzyj się i znajdź oprogramowanie, które ma trudności z przejściem do nowych technologii i możesz to zobaczyć w akcji. Zastanów się nad ideałem!

+0

Plus, myślę, że przyjęcie podejścia odgórnego jest mniej podatne na błędy. Zanim przejdziesz do drobiazgów, masz bardzo dobry pomysł na to, jak będą współdziałać poszczególne elementy. Jeśli wykonasz projekt oddolny, znalezienie problemu pod koniec gry może być kosztowne pod względem kodu. –

+0

Tak. Jeśli naprawdę oddajesz się oddolności, trafiasz na samą górę i odkrywasz, że zrobiłeś coś, co elegancko wykorzystuje wszystkie twoje komponenty i nikomu nie przydaje się. – chaos

2

Kiedy projektuję programy, najpierw projektuję interfejs użytkownika za pomocą prototypowania papieru. Testuję prototyp interfejsu użytkownika, aby użytkownicy mogli z nim osiągnąć swoje cele. Posiadanie czegoś konkretnego/widocznego do pokazania użytkownikom i klientom ułatwia zbadanie wymagań i sprawdzenie, czego naprawdę potrzebują użytkownicy.

W fazie projektowania interfejsu (analiza wymagań) zawsze staram się zaprojektować idealne rozwiązanie. Nie biorę pod uwagę tego, jak trudno byłoby zaimplementować jakąś funkcję. Następnie, gdy projekt ustabilizuje się na tyle, że można go wdrożyć (zwykle zajmuje to tydzień lub dwa), omawiamy z klientami i programistami, ile zajmie wdrożenie rzeczy i które rzeczy są najważniejsze.

Ponieważ najpierw zaprojektowaliśmy idealne rozwiązanie, widzimy cały obraz tego, co jest potrzebne, i możemy zacząć dostosowywać zakres projektu, tak aby najpierw zostały wdrożone tylko najważniejsze funkcje. Także, jeśli niektóre z idealnych projektów interfejsu użytkownika byłyby zbyt drogie w implementacji, możemy stworzyć skompromitowany projekt, który ma nieco mniejszą użyteczność, ale jest znacznie tańszy w implementacji. Projektant interfejsu użytkownika jest zawsze osobą, która projektuje kompromis (tj. Nie programistami), tak aby spełniała wszystkie wymagania, a jego użyteczność będzie wystarczająco dobra.

1

To mniej więcej to, co robię w programowaniu i życiu. Zazwyczaj myślę o tym, jak użytkownik musiałby korzystać z nowego oprogramowania. Gdzie są ich ręce. Jakie inne rzeczy wykorzystują do wykonania pracy (telefon, inne okno przeglądarki). W jakiej kolejności pojawią się te informacje i w jaki sposób zamówienie wpłynie na narzędzia, których dostarcza moje oprogramowanie, których potrzebują.

1

W naukowa/liczbowa obliczeniowych punktem wyjścia jest niezmiennie jakiś matematyczny ideał, ale wtedy trzeba pójść na kompromis w tym ideale, aby uzyskać praktyczne, praktyczne rozwiązanie.

Powiązane problemy