In the name of Allah the Merciful

Software Engineering: An Agile Unified Methodology 2nd Edition by David C. Kung

ISBNs: 1265242437, 1260721701, 1264558082, 1264560168, 1264628110, 1265660670, 1260792684, 1260792692, 9781265242435, 9781260721706, 9781264558087, 9781260792683, 9781264560165, 9781264628117, 9781265660673, 9781264556953, 978-1265242435, 978-1260721706

10 $

Download this book from BOOK DOWNLOAD SHOP

number
type
  • {{value}}
wait a little

The new edition of Software Engineering presents a step-by-step   methodology that integrates Modeling and Design, UML, Patterns,   Test-Driven Development, Quality Assurance, Configuration Management,   and Agile Principles throughout the life cycle. The overall approach is   casual and easy to follow, with many practical examples that show the   theory at work. The author uses his experiences as well as real-world   stories to help the reader understand software design principles,   patterns, and other software engineering concepts. The book also   provides stimulating exercises that go far beyond the type of question   that can be answered by simply copying portions of the text.

Many   people do not know the scope and usefulness of software engineering,   and the discipline is often misunderstood. Many media outlets deem   software engineering as writing Java programs. Some students think that   software engineering includes everything related to software. Others   think that software engineering is drawing UML diagrams, as the   following story illustrates. Years ago, after the first class of a   software engineering course, a student told me, “professor, you know   that this will be an easy course for me because we’ve drawn lots of UML   diagrams before.” At the end of the semester, the student came to me   again and said, “professor, I want to tell you that we worked very  hard,  but we learned a lot about OO design. It is not just drawing UML   diagrams.” So what is software engineering? As a discipline, it   encompasses research, education, and application of engineering   processes, methodologies, quality assurance, and project management to   significantly increase software productivity and software quality while   reducing software cost and time to market. A software process  describes  the phases and what should be done in each phase. It does not  specify  (in detail) how to perform the activities in each phase. A  modeling  language, such as UML, defines the notations, syntax, and  semantics for  communicating and documenting analysis and design ideas.  UML and the  Unified Process (UP) are good and necessary but not  sufficient. This is  because how to produce the analysis and design  ideas required to draw  meaningful UML diagrams is missing.

To  fill the gap mentioned  above, we need a methodology or a “cook-book.”  Unlike a process, a  methodology is a detailed description of the steps  and procedures or how  to carry out the activities to the extent that a  beginner can follow to  produce and deploy the desired software system.  Without a methodology, a  beginning software engineer would have to  spend years of on-the-job  training to learn design, implementation, and  testing skills.

This  book is also motivated by emerging  interests in Agile processes, design  patterns, and test-driven  development (TDD). Agile processes emphasize  teamwork, design for  change, rapid deployment of small increments of the  software system,  and joint development with the customer and users.  Design patterns are  effective design solutions to common design  problems. They promote  software reuse and improve team communication.  Patterns also empower  less-experienced software engineers to produce  high-quality software  because patterns encode software design  principles. TDD advocates  testable software, and requires test scripts  to be produced before the  implementation so that the latter can be  tested immediately and  frequently.