Wednesday, January 18, 2012

Textbook VS SWEBOK

Our text book, Systems Analysis and Design in a changing world by Satzinger, Jackson and Burd, outlines 6  core processes of systems development while SWEBOK, the Softwae Engineering Body of Knowledge, uses 10 knowledge areas to describe systems development.


SA&DSWEBOK
ID problem/need and obtain approval to proceedSoftware Requirements - A property that must be exhibited in order to solve some real-world problems
Plan and monitor projectSoftware Design -The process of defining the characteristics of system and the result of that process
 
Discover and understand details of the problem/needSoftware construction - Detailed creation of the actual software.
Design the system components that solve the problemSoftware Testing - The dynamic verification of the behavior of a program against its expected behavior.
Build, test and integrate system componentsSoftware Maintenance
Complete tests and deploySoftware Configuration Management
 Software Engineering Process
 Software Engineering Tools and Methods
 Software Quality


SWEBOK appears to be a much more detailed approach to systems development than SA&D.  The areas that SWEBOK add are Software Maintenance, configuration management, engineering process, tools, methods and software quality.

The SA&D method seems to focus a little bit more on planning of design while the SWEBOK method has more focus on maintenance, customization and improvements after the deployment.

SA&D might be assuming the maintenance and further improvements will be part of the design or they hand over that portion to the client or 3rd party.

I think over all both have extremely valuable and important steps and that both process should be kept in mind when designing a system.

Monday, January 16, 2012

Silver Bullet?

According to Frederick Brooks, Jr. from the University of North Carolina at Chapel Hill, "There is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement within a decade in productivity, in reliability, in simplicity."

There is no silver bullet to make the "perfect information system".

I think a combination of the following could definitely contribute to better, more productive, more reliable and simpler software systems:

1.  Using open source software - with the rapid changes in hardware and operating systems, using programming software that is  not hardware or operating system dependant, can be a huge advantage in software usability.
2. Building software with a higher degree of customizability.  I really like the Dr. Brooks' idea of building software from the top down.  Start out with something large scale and simple and then slowly customize it down to the details needed by the customer/client.
3.  Computer programming should be taught at the high school level.  Students at a young age should be taught problem solving, concept mapping and early programming.  These skills at an early age can lead to great programmers and designers post secondary school.