30 Day to Launch Phone
It has been quite awhile since I last posted to this blog, but I have completed the discussion about Software Engineering and will be posting more regularly. After the completion of my software engineering entries, I will be demonstrating real software engineering using XNA 2.0 (a toolkit from Microsoft for Game Programming) that works with VSTS and Team Foundation Server. So with that, here is the beginning of completing my Software engineering discussions. Let me know what you are think of it.
Design in Software Engineering is the process of requirements gathering and guiding the hardware and software team to stay within the constraints of the system environments and to insure that infrastructure elements are correctly implemented. Since in the current development process methodology does not close off the design component, the software engineer would be the archivist, reviewer, and connector between personnel. This is not a program manager or project manager job description, the software engineer would go beyond the project’s immediate effort and include the overall considerations of impact on the infrastructure. The following elements are the basic elements included in the design process. These elements are used in the design of the project, the SEI document title “The Architecture Based Design Method”, could lead to confusion about it’s inclusion in a document about Software Engineering. Like the Civil Engineer when building physical infrastructure, the Civil engineer works with architectures for the overall design, the civil engineer then coordinates the architect, who often represents the customer or end user, with the soils engineer, the general contractor and so forth. This is similar to the software engineer.
General design follows these basic topics, the CMMI/SEI document is an excellent source of guidance on these items (see the related endnote):
Tools are important in the design of today’s complex systems.
· Link to: manageability
[ii] http://msdn2.microsoft.com/en-us/library/aa291862(VS.71).aspx, 8/2/2007
Virtual hands-on-lab: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032302653&EventCategory=3&culture=en-US&CountryCode=US
[iii] Securability: http://msdn2.microsoft.com/en-us/library/aa292174(VS.71).aspx
[iv] Reliability: http://msdn2.microsoft.com/en-us/library/aa292174(VS.71).aspx
[v] Scalability: http://msdn2.microsoft.com/en-us/library/aa292480(VS.71).aspx
[vi] Performance: http://msdn2.microsoft.com/en-us/library/aa292152(VS.71).aspx
[vii] Availability: http://msdn2.microsoft.com/en-us/library/aa292462(VS.71).aspx
[viii] Manageability: http://msdn2.microsoft.com/en-us/library/aa292476(VS.71).aspx
[ix] System modeling: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032302653&EventCategory=3&culture=en-US&CountryCode=US
[x] Link to architecture system design: http://msdn2.microsoft.com/en-us/library/57b85fsc(VS.90).aspx
[xi] Webcast on Java interoperability with .NET: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032331986&EventCategory=5&culture=en-US&CountryCode=US
Interesting point at blogs.msdn.com
If you need more info on the products available for designing software, this website Reporting Software is a really useful resource that may help you out in your future.