You're $50 Away from Free Shipping!
Modern Software Engineering Essentials: Free Practices from Method Prisons - ACM Books | Best for Developers, Tech Professionals & Computer Science Students
Modern Software Engineering Essentials: Free Practices from Method Prisons - ACM Books | Best for Developers, Tech Professionals & Computer Science Students

Modern Software Engineering Essentials: Free Practices from Method Prisons - ACM Books | Best for Developers, Tech Professionals & Computer Science Students

$51.98 $94.52 -45% OFF

Free shipping on all orders over $50

7-15 days international

28 people viewing this product right now!

30-day free returns

Secure checkout

93392195

Guranteed safe checkout
amex
paypal
discover
mastercard
visa
apple pay

Description

The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors.This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential elements of all software engineering methods.This kernel, Essence, is a vocabulary for defining methods and practices. Essence was envisioned and originally created by Ivar Jacobson and his colleagues, developed by Software Engineering Method and Theory (SEMAT) and approved by The Object Management Group (OMG) as a standard in 2014. Essence is a practice-independent framework for thinking and reasoning about the practices we have and the practices we need. Essence establishes a shared and standard understanding of what is at the heart of software development. Essence is agnostic to any particular method, lifecycle independent, programming language independent, concise, scalable, extensible, and formally specified. Essence frees the practices from their method prisons.The first part of the book describes Essence, the essential elements to work with, the essential things to do and the essential competencies you need when developing software. The other three parts describe more and more advanced use cases of Essence. Using real but manageable examples, it covers the fundamentals of Essence and the innovative use of serious games to support software engineering. It also explains how current practices such as user stories, use cases, Scrum, and micro-services can be described using Essence, and illustrates how their activities can be represented using the Essence notions of cards and checklists. The fourth part of the book offers a vision how Essence can be scaled to support large, complex systems engineering.Essence is supported by an ecosystem developed and maintained by a community of experienced people worldwide. From this ecosystem, professors and students can select what they need and create their own way of working, thus learning how to create ONE way of working that matches the particular situation and needs.

Reviews

******
- Verified Buyer
At National Research Tomsk State University we gave a one semester (21 week) course for students in their final (fourth) year Bachelor of Computer Science program. The students already had courses including such topics as: object-oriented programming, UML, patterns (GOF, Larman, Fowler), web-development, introduction to system analyst, databases.We split students into teams (5 teams with 7-8 students in each team) and invited a person (who is not a CS professional) to play the role of a customer who wants to develop a system. All teams received initial information about this system (short description and customer contacts) and then started developing the system according to the customer's requirements. Student teams work mostly by themselves independent of professors gathering additional information from the customer as needed and developing the system.During lectures and practice sessions we worked with Essence entities (mostly alphas) and tried to show the students that everything they were doing on their current project has related alphas and other connected Essence entities.We provided the students with a project management system (where alpha cards were included as a plugin) and we measured their progress using task tracking and alpha card states.As a teacher, my observations were the following:1. The Requirements and Software system alphas are very well understood by the students. Most methods and practices of software engineering are focused on the solution area of concern. And the students can easily understand how to work and measure progress at each stage of the project.2. The Opportunity and Stakeholders alphas are harder for the students to understand. They require an additional lecture about business goals, and general Stakeholders (not simple users) to understand this level.3. The students had difficulty with the work products. They found useful artifacts for Stakeholders (e.g. contacts, user profile), but they found it hard to find good work product templates for the Opportunity alpha that could help them formalize project information and allows us to check the progress of this alpha state.4. The Endeavor area of concern was found to be the most difficult to understand and use by the students. These alphas were perceived to measure the team's or company’s performance rather than the project’s progress.We discussed with the students that the team's endeavor is a very important part of any project, but as a rule in many companies you work with mostly same team for more than one project. And this means that the team working on a new project will already have most of the Endeavor alpha states checked for Team and Way of Working. And they will not need to work on them if their team or company already established these parts as company rules.Secondly, as opposed to other alphas, on the Endeavor area of concern the team found difficulty with work products. In other cases, when you execute an activity you create or update a work product and this may result progressing the alpha states.However, in the Endeavor area of concern the team found it difficult to develop work products and practices.Ultimately, what we learned is that the students need better guidance on how to use the Endeavor area of concern.We started to use Essence to demonstrate and explain some topics related to software engineering. The Essence kernel is very helpful to show students that Software Engineering (SE) isn't just writing code, but there are also other parts such as requirements, stakeholders, opportunity, team and way of working. With Essence’s help it's possible to easily demonstrate that Scrum, Kanban, Unified process etc. are just different methods solving the same problems. Using Essence helps us show students why it's so important to know things that teams need to do rather than just choosing a development process by its popularity.We plan to extend our use of Essence as the language and theory of SE and apply it to all related subjects to improve the education of future professionals.