Designed for advanced courses in Software Engineering and Object-Oriented Design, this text serves both junior/senior and graduate students. It is also suitable for short technical or intensive management courses, making it versatile for various educational settings.
Projektowanie systemów informatycznych to zadanie bardzo skomplikowane.
Ogromna liczba zależności, zasad i wyjątków od nich sprawia, że nie jest
możliwe podejście do tego zadania ot tak, z marszu. Zbieranie i analiza
wymagań, przygotowanie diagramów klas, aktywności, stanów czy interakcji to
tylko część etapów, z którymi musi poradzić sobie projektant. Jeżeli nałożyć
na to wszystko wzorce projektowe, stajemy przed prawie nierozwiązywalnym
zadaniem. Na szczęście — prawie! Dzięki tej książce dowiesz się, jak sprostać
temu karkołomnemu zadaniu! W trakcie lektury poznasz język UML, który
wprowadził porządek w tym skomplikowanym procesie, oraz podstawowe koncepcje
inżynierii oprogramowania. Nauczysz się zarządzać procesem tworzenia
oprogramowania, zbierać oraz analizować wymagania, identyfikować podsystemy,
specyfikować interfejsy oraz testować. Znajdziesz tu wszystko na temat
zarządzania zmianami. W trakcie lektury sprawdzisz, jak wygląda cykl życia
oprogramowania oraz jak zarządzać konfiguracją. Dodatkowo poznasz metodologię
działań, które doprowadzą Cię do wyznaczonego celu. Książka ta stanowi
obowiązkową pozycję dla każdego projektanta oraz analityka. Jednak programiści
również znajdą tu wiele cennych wskazówek! Niepowodzenia w inżynierii
oprogramowania Podstawowe koncepcje inżynierii oprogramowania Modelowanie przy
użyciu języka UML Organizacja projektu Narzędzie do komunikacji grupowej
Proces zbierania wymagań Identyfikacja aktorów, scenariuszy oraz przypadków
użycia Określanie obiektów modelu analitycznego Analiza wymagań Dekompozycja
systemu na podsystemy Identyfikacja celów projektowych Projektowanie obiektów
Wzorce projektowe Specyfikowanie interfejsów Odwzorowywanie modelu na kod
Testowanie Zarządzanie zmianami i konfiguracją Cykl życia oprogramowania
Metodologie
Thirty years ago, I first entered the dark realm of software engineering, through a prior interest in documentation. In those days, documentation pretty much meant functional specifications. The idea that stakeholders in a system (its implementers, its end-users, its maintainers, and so forth) might want something other than an alphabetic list of function definitions was just taking hold. There was an exciting (to me) vision of stakeholders accessing and contributing to explanations of how and why aspects of a system work as they do, tradeoff analysis of concomitant downsides, and perhaps even accounts of why other possible approaches were not followed. There were many challenges to overcome in achieving this vision. The most formidable is the belief that people do not like to create or use do- mentation. This negative image of documentation is (unfortunately) more than just the bias of a few incorrigible system developers. It is more like a deep truth about human information behavior, about how human beings construe and act towards information. Humans are, by default, active users of information; they want to try things out, and get things done. When documentation is interposed as a prerequisite between people and a desired activity, they try to skip through it, circumvent it, or undermine it. Desi- ing information to suit the needs and interests of its users is an abiding challenge, but we have come a long way from functional specifications as the only answer.
This thoroughly updated text teaches students or industry R & D practitioners to successfully negotiate the terrain for building and maintaining large, complex software systems. The authors introduce the basic skills needed for a developer to apply software engineering techniques. Next, they focus on methods and technologies that enable developers to specify, design, and implement complex systems. Finally, the authors show how to support the system changes throughout the software life cycle.