My Knowledge
I think it is necessary to create proper software architecture when you want to develop complete software. Say, I want build a house with only one floor then I can easily build the house by some builders as my design and if it is need to change my design then no problem. I Break the some parts of this house and again build it with my new design. But when I want to build a house with five or more floors, then I must call an architect for design a proper house with low cost and maximum beautiful. Why do I call architect?
Because, if I change my ground floor of my house which has five floor, it is not possible to break all floor and rebuild.
Software Architecture: An architect design architecture which never need to break and I can easily expand or break if I want. So if this concept uses in complete software this software must be successful software.
Software Engineering: A software engineer can be built architecture of any software by using software development life cycle (SDLC). I prefer water flow SDLC for my development.
Problem Identification: Firstly I find out the base project name for which problem I want to solve.
Requirement Collection: I visit all kinds of users who will be related of this software and find out their all requirements as can as possible. For requirement collection I use voice recorder for record their requirement and find out their report sheet, business rules which will be related with this software.
Analysis: With voice records and their paper, I study and seek out which will the actual design of this software, which equipments are required for development, Software deadline, Costing etc. I always try to make it highest performance and speed with lowest cost and memory.
Designing: I prefer the Microsoft Visio 2003 for appropriate UML (Unified Modeling Language) designing and for properly support OOF (Object Oriented Feature). In here I usually design Use case, Class, Sequence, State and Activity diagrams sequentially one after another.
Development: For software development I normally use VB.Net 2005, Visual C# 2005, ASP.Net 2005 (Basic knowledge) for web application, and VB 6.0 language as a front end development. I use MS Access, SQL Server 2005 (Basic knowledge), and SQL Server 2000 as back end database maintenance. For report viewing I support to use Crystal Report 10.
Testing: After developing I apply black box and white box testing over this software.
Bug fixing: If there is any kinds of error or problem found after testing, I fixed that and apply testing again and again until the all bugs are fixed.
Deployment: For create setup file I use .Net 2.0 Setup and Deployment Wizard and Install shield 10 (Basic knowledge) for which project is developed by those language which is support in .NET Framework. And use Setup Factory for VB 6.0 programming language.