Inżynieria oprogramowania

Pytania i odpowiedzi dla profesjonalistów, nauczycieli akademickich i studentów pracujących w cyklu życia systemów

6
Projekt OO, jak modelować Tonal Harmony?
Zacząłem pisać program w C ++ 11, który analizowałby akordy, skale i harmonię. Największym problemem, jaki mam w fazie projektowania, jest to, że nuta „C” jest nutą, rodzajem akordu (Cmaj, Cmin, C7 itd.) I rodzajem klucza (klawisz Cmajor, Cminor). Ten sam problem pojawia się w przypadku interwałów (trzeci mniejszy, trzeci …



5
Czy przydatne są metody testów jednostkowych, w których jedyną logiką są osłony?
Powiedz, że mam taką metodę: public void OrderNewWidget(Widget widget) { if ((widget.PartNumber > 0) && (widget.PartAvailable)) { WigdetOrderingService.OrderNewWidgetAsync(widget.PartNumber); } } Mam kilka takich metod w moim kodzie (przednia połowa asynchronicznego wywołania usługi sieci Web). Zastanawiam się, czy warto ich objąć testami jednostkowymi. Tak, tutaj jest logika, ale to tylko logika …
12 c#  unit-testing 

5
Menedżer oprogramowania, który zmusza programistów do zarządzania projektami
Jestem programistą pracującym w firmie zajmującej się systemami wbudowanymi. Mamy Project Managera, który zajmuje się ogólnym harmonogramem projektu (w tym elektrycznym, jakościowym, oprogramowania i produkcji), dlatego jego harmonogram oprogramowania jest bardzo krótki. Mamy także Menedżera oprogramowania, który jest moim szefem. Zmusza mnie do pisania i utrzymywania harmonogramu oprogramowania, dokumentów projektowych …


1
Złożoność obliczeniowa korelacji w czasie a mnożenie w przestrzeni częstotliwości
Pracuję z korelacją 2d dla technik przetwarzania obrazu (rozpoznawanie wzorów itp.). Zastanawiałem się, czy istnieje teoretyczne podejście do tego, jak powiedzieć, kiedy stosować mnożenie w przestrzeni częstotliwości zamiast korelacji w przestrzeni czasu. Dla rozmiarów 2 x częstotliwość jest oczywiście szybsza, ale co powiesz na małe, podstawowe rozmiary, takie jak np. …

3
Czy witryny pomocy technicznej, takie jak Przepełnienie stosu, zakłócają model płatnego wsparcia typu open source?
Aby pozostać aktualnym na rynku, badam nowe modele biznesowe dla mojej firmy produkującej oprogramowanie. Model open source z płatnym wsparciem wydaje się być dobrym rozwiązaniem dla naszego produktu, ale mam obawy, czy płatny model wsparcia jest opłacalny w czasach, w których najwyższej jakości pomoc jest łatwo dostępna bezpłatnie w witrynach …

2
Trwałe przetwarzanie przetworzonego języka naturalnego
Niedawno zacząłem eksperymentować z przetwarzaniem języka naturalnego (NLP) przy użyciu CoreNLP Stanforda i zastanawiam się, jakie są standardowe sposoby przechowywania analizowanych danych NLP dla czegoś takiego jak aplikacja do eksploracji tekstu? Jednym ze sposobów, który moim zdaniem może być interesujący, jest przechowywanie dzieci jako listy sąsiedztwa i dobre wykorzystanie zapytań …

3
Jak udokumentować eksperymentalne lub niekompletne interfejsy API, takie jak @deprecated?
Czy istnieje dobry termin, który jest podobny, ale różni się od „przestarzałe”, co oznacza, że ​​metoda lub interfejs API znajduje się w bazie kodu, ale nie należy go stosować, ponieważ jego implementacja nie jest kompletna lub prawdopodobnie ulegnie zmianie? (Tak, wiem, te metody nie powinny być publiczne, yada yada yada. …

2
Szukam porady projektowej OO
Tworzę aplikację, która będzie używana do otwierania i zamykania zaworów w środowisku przemysłowym, i myślałam o czymś prostym: public static void ValveController { public static void OpenValve(string valveName) { // Implementation to open the valve } public static void CloseValve(string valveName) { // Implementation to close the valve } } …

1
Przydatne komunikaty git commit dla połączonych gałęzi
W następstwie tego pytania : Jeśli pracuję sam nad zespołem, mogę zachować przydatne komunikaty zatwierdzania podczas łączenia oddziałów, zgniatając wszystkie zatwierdzenia do pojedynczego pliku różnic, a następnie łącząc ten plik różnic. W ten sposób mogę łatwo zobaczyć, jakie zmiany zostały wprowadzone w gałęzi, i mam jedno podsumowanie opisujące funkcję / …
12 git  branching 

7
Czy funkcja rekurencyjna może mieć iteracje / pętle?
Studiowałem o funkcjach rekurencyjnych i najwyraźniej są to funkcje, które same się nazywają i nie używają iteracji / pętli (w przeciwnym razie nie byłaby to funkcja rekurencyjna). Jednak przeglądając sieć w poszukiwaniu przykładów (problem rekurencyjny 8-królowych), znalazłem tę funkcję: private boolean placeQueen(int rows, int queens, int n) { boolean result …
12 java  recursion 

4
Przełącz lub Słownik podczas przypisywania do nowego obiektu
Ostatnio wolę mapować relacje 1-1 używając Dictionarieszamiast Switchinstrukcji. Uważam, że jest to trochę szybsze pisanie i łatwiejsze do mentalnego przetworzenia. Niestety podczas mapowania na nowe wystąpienie obiektu nie chcę go definiować w następujący sposób: var fooDict = new Dictionary<int, IBigObject>() { { 0, new Foo() }, // Creates an instance …
12 c#  coding-style 

2
Rozdzielanie projektów Java
Mam duży projekt Java i używamy maven do naszego cyklu budowania. Ten jeden projekt jest szeroko stosowany - w innych projektach, w różnych aplikacjach, z których niektóre są w nim zawarte, a niektóre gdzie indziej ... Szczerze mówiąc, jest to trochę bałagan (różne bity dodawane w różnych momentach dla określonych …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.