This is the most important material when I joined bussiness trip for education as Software Engineer. I learned about Software Engineering for a month in Korea. I have some trainers there, but the most important trainer is Mr Joseph Cho. I wanna share some of materials that I’ve got there.
Software engineering process is a very important thing in software development. Many programmers do not realize about how important the documentations are. Maybe, if you only make a simple program for your own sake, it will not be really important. But, if you work a huge project in a company, you should know and implement software engineering.
Software engineering is not only about documentation, but also build the infrastructures, control the whole process of development, and ensure the software quality by doing testing. Infrastructure means, some tools that we need to support the development. The kind of infrastructures are optional related to the company bussiness. Software process means, we control the schedule, and keep the team work in track. Auditing is also important in software process. Quality assurance means, the have to check the development product, wheter is already good or they still have some defects.
Software development process is starts from planning. In planning, we extract the requirement or requirement analysis. Customers typically have an abstract idea of what they want as an end result, but not what software should do. Incomplete, ambiguous, or even contradictory requirements are recognized by skilled and experienced software engineers at this point. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect.
After planning, we must do implementation, testing, and documenting. Implementation is the part of the process where developers actually build the code for the project. Software testing is an integral and important part of the software development process. This part of the process ensures that defects are recognized as early as possible. Documenting the internal design of software for the purpose of future maintenance and enhancement is done throughout development. It is very important to document everything in the project. All of the process we’ve did, we must make the documentation. It also include as development product, besides the source code. A good documentation will make the team works easier, and it will be very useful when we need to reuse some products in the next project.
After implementation, testing, and documenting. The last but not least is review. Review has purpose to find defects during development, so we can add them to the “to do list”. All defects found must be solved and closed in the end of project! Review consist of two different methods, walkthrough and inspection. Walkthrough is an informal review, in other hand, inspection is a formal type of review. Besides the two reviews, we also need auditing. A software audit review, or software audit, is a type of software review in which one or more auditors who are not members of the organization conduct “An independent examination of a software product, software process, or set of software processes to assess compliance with specifications, standards, contractual agreements, or other criteria”.
In software development, we know some models. Waterfall, spiral, iterative, agile, and many more. The model we should choose is depends on what project we will do? Is it already well planned? Do you have the experienced team member or unexperienced ones? And any other condition. Next time I will tell you more about the software development model separately. 😉
- Software Engineering based on CMMI