No, that isn't a picture of a sad swebok we will be discussing. This post is dedicated to Software Analysis & Design (SA & D), as outlined in our course textbook and Software Engineering Body of Knowledge (SWEBOK) methods of process design. I'll review the two methods, highlighting the differences between the two.
To start, we'll outline the different approaches. The textbook version has 6 steps:
- Identify the problem and obtain approval to proceed
- Plan and monitor the project
- Discover and understand the details of the problem
- Design the system
- Build and test the system components
- Complete the test and deploy the solution
SWEBOK is a ten step process, and focuses more heavily on the software aspect of design:
- Software requirements
- Software design
- Software construction
- Software testing
- Software maintenance
- Software configuration management
- Software engineering management
- Software engineering process
- Software engineering tools and methods
- Software quality
At the outset, we can expect that several of these to be different just based on numbering. In fact, half of the lists are the same: Identify and understand requirements, design the software, build the software, then test and launch the software. #2 in SA & D can arguably be added into #1 in SWEBOK given the breadth and depth of requirements setup in SWEBOK. And while Understanding the Issue isn't expressly listed in SWEBOK, the depth of planning and designing in SWEBOK cannot be achieved without a thorough understanding of the issue, even that isn't expressly listed as a step.
That brings us to the items in SWEBOK that are not present in SA & D, specifically items #5 - #10. A major difference in the methodologies is the scope; SA & D is broad enough that it could apply to many process designs, not just software, where SWEBOK is much more focused on developing software. Since these are not covered in SA & D, let's briefly cover them:
- Software Maintenance
- This is basically what it sounds like: maintaining software after release. Included are requests for upgrades and corrections, along with the methods of tracking and logging such requests.
- Configuration Management
- Configuration management is the discipline of coordinating software, hardware, firmware, and versions of a program and how they interact at a given point in time, according to the SWEBOK website. When discussing maintenance of software at the level SWEBOK is concerned, this is as important as maintaining the code itself.
- Engineering Management
- #7 in the SWEBOK list is defined as "planning, coordinating, measuring, monitoring, controlling, and reporting—to ensure that the development and maintenance of software is systematic, disciplined, and quantified", according to the SWEBOK website. While this is seventh in the list of SWEBOK, it sounds very similar to #2 in SA & D. The largest difference, as far as I can see, is the placement within the methodologies.
- Engineering Process
- The engineering process is divided into two levels within SWEBOK: the managerial level and the detail level. Level one mirrors #2 in SA & D process, trying to manage the people and span of the project, where the second level focuses on the minutia of a project and measuring the effectiveness of the solution.
- Engineering Tools & Methods
- I'm a little surprised that this is a step, rather than a detail of working with software. Tools and Methods focuses on the development tools used in the design of a solution and the syntax and structure of the coding. This seems more like an overall guideline for a process, rather than an actual step to designing a system.
- Software Quality
- Once again, not really a step in a process, Software Quality is concerned with designing software such that the customer is pleased with the results. Specifically, quality in this area of SWEBOK is the techniques used to achieve and maintain quality as a standard practice across many projects.
There you have it - two different ways to design a software system. They are very similar in topics, and really only differ in the order of planning. SA & D is more focused on planning and control before design, where SWEBOK manages this aspect of design later in process.
No comments:
Post a Comment