Wednesday, January 7, 2015

Deliverable Date Estimation and a Note On Concern Partitioning

Team. We estimate that the prototype will be completed by 02.15.2015. We will reason from it and evolve it to create our final product. This first cycle of evolution will take between nine and twelve weeks including testing. We have created a relatively small and simple project for a reason. As a well-known software engineer whose name escapes me has stated, one can create software systems which are so simple that any error would be apparent or so complex that there apparently are not any errors. Building small simple components is a good practice for software development. When developing large systems, one should develop smaller manage-able pieces which are assembled during integration testing. We have chosen a small system hoping that any error would be glaringly obvious.

A short note on discrete multidimensional concern separation:

Software is a collection of concerns. A concern is a characteristic of the system which we must consider when constructing it. This might be the nature and type of its modularity, architecture, intercommunication methods, or etc. When considering a system, one will find that during the phase of requirements engineering the software will be described as a set of features, requirements, and specification objects. Each feature produces one or more requirements. Each requirement produces one or more specification object. During the architectural and detailed design phase, implementation, and testing, the system takes the form of design objects and implementation objects which we verify with test cases. Each specification object becomes one or more architectural design objects which each becomes one or more detail design objects. Each detailed design object is an algorithm or data structure. These design objects in natural language can be directly transliterated producing implementation objects. These implementation objects are verified with test cases derived from the requirements. Each requirement produces one or more test cases. After successfully verifying our product, we must validate it. Validation is the process of receiving approval from our base of clients when they test it.

The above is a single iteration of a life-cycle using discrete multidimensional concern separation. Each set of concerns: features, requirements, and etc., represents a dimension. This approach works well for producing trace-able documents and is a wonderful strategy for a personal software process (PSP).

Remember always use the Bird Foraging Method (Hunt-Peck-Think) when coding. It makes for better software. Happy Coding, Team. La-La.

No comments:

Post a Comment