Csharpjava's Posts
Nairaland Forum › Csharpjava's Profile › Csharpjava's Posts
1 2 3 4 5 6 7 8 9 10 11 (of 12 pages)
candylips:Thank you for joining in this discussion. XP which comes under Agile is good for small releases of an application, which makes it not suitable for a complex application like a core banking application. If an Agile methodology like XP is used for a core banking application, that will mean customers of the bank can deposit money into their account but they will have to wait another few months until the functionality to withdraw their money is released. Business critical applications like a core banking application will require a waterfall methodology which will require that all the functionalities that are needed to run a bank are complete before the application is release. |
@delomos Its true that Agile Methodology is an umbrella for other methodologies, but they must all comply with the four Agile Manifesto which is made up of four core values and 12 principles. Agile attempts to develop a system incrementally and one of the methodologies under Agile is Extreme Programming (XP). XP practices and processes are the ones that has dominated this thread so far. The reason I have being using the word Agile methodology is because all the methodologies under Agile must follow the four Agile Manifesto, which means that these methodologies are all similar to each other. Just to mention that there are some other methodologies which do come under the Agile methodology like RUP, SSADM, Soft System AD and other I have not heard of. @Ghenghis and delomos I feel I should not have use an internet banking website as my example above, because in reality this can be developed incrementally to intergrate with the banks existing software system. But if a bank is starting for the first then an Iterative Waterfall Methodology is the best method to be used for developing its main banking application. |
delomos:If you want us to only discuss about processes here then you should change the topic of this thread to "The software development processes of an Agile Methodology", because all the processes you have mentioned on the thread are that of an Agile Methodology. An Agile Methodology is made up "Specific tools and techniques, such as continuous integration, automated or xUnit test, pair programming, test-driven development, design patterns, domain-driven design, code refactoring and other techniques are often used to improve quality and enhance project agility." Source: Agile software development. Software Methodologies are there to help you decided the best method for developing a software application depending on the domain the software is required for. |
Ghenghis:You have avoided the word user stories, Agile is about user stories as an when they arise which allows for putting a simple system into production quickly - A release implements a couple of stories. A fully completed system has to be in place before an online banking application is put into production for the first time, then later you can use Agile for small releases that are based on use stories, which are then integrated into the main internet banking application. Developing an Internet banking application for the first time is not a simple system, so I will recommend a waterfall methodology which will ensure that the all the functionalities needed are in place before it is put into production. |
Ghenghis:TDD is a technique used in an agile methodology, it is one of "Specific tools and techniques, such as continuous integration, automated or xUnit test, pair programming, test-driven development, design patterns, domain-driven design, code refactoring and other techniques are often used to improve quality and enhance project agility." Source: Agile software development. You should note that techniques are not methodologies. Ghenghis:If your are developing an internet banking application for the first time then you cannot be delivering small releases, based on user stories. I will not want to wait for my customers to tell me that when they make a transfer, the money gets debited from their account but the recipient's account is not credited, then I will bring this new story to you and you will develop another small release for this new story. these are the kinds of factors you have to consider before selecting a methodology. |
delomos:You should not have started a thread titled "In Search Of "that" Software Development Methodology" which you have no clue about and you are not ready to learn. All your comments about software development here so far are techniques used in an Agile methodology. There are different Software Development Methodologies for different domains. So it is important you understand when and why you choose one methodology over the other. You cannot understand this unless you have a solid background in Software Engineering and this is the reason you have done nothing so far but disagree with me and cannot understand all my valuable contributions on this topic. |
@Ghenghis and delomos This thread is titled "In Search Of "that" Software Development Methodology" and I was expecting the discussions here to be based on solid software Engineering principles, but so far I have noticed that this has not been the case. "A software development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system". Source: Wikipedia |
delomos:No that is how it should work for an internet banking application that is being developed for the first time. This is because you cannot be developing small releases based on user stories. I will not want to wait for my customers to tell me that when they make a transfer, the money gets debited from their account but the recipient's account is not credited, then I will bring this new story to you and you will develop another small release for this new story. these are the kinds of factors to consider before selecting a methodology. |
delomos:TDD is an important agile requirements and agile design technique. "In other words, it’s one way to think through your requirements or design before your write your functional code (implying that TDD is both an important agile requirements and agile design technique)." Source:Agile Data @Ghenghis and delomos Going by the answers you've given above I will not allow you to develop an internet banking application for me. The reason being that such an application would required that it is complete before being released for my customers to use. A Waterfall or an Iterative Watefall methodology is what will be required for an internet banking Application. The techniques you have mentioned are used for small releases so it is not suitable for an internet banking application that is being developed for the first time. |
Ghenghis:Sorry I should have asked you the same question I asked delomos which was, say I have a bank and I come to you to write me a software to allow my customers to carry out internet banking, what software methodology will you use and why? |
Ghenghis:I want you to look at a situation where you have to develop the banks main system from scratch, which other components like the one you worked on can intergrate with? |
delomos:From our knowledge of how transactions are carried by banks, I'm surprised that you would go for a behavioral/test-driven development, I take it that you mean Agile. |
@ delomos Going by the name you gave this thread "In Search Of "that" Software Development Methodology" I have this question for you. Say I have a bank and I come to you to write me a software to allow my customers to carry out internet banking , what software methodology will you use and why? |
Ghenghis:I never said Design Patterns were class diagrams, UML or code, what I said above was that you make use of Design Patterns when you design your class diagrams. [quote author= csharpjava]When you design your class diagrams you are making use of design patterns as you do not create all the classes from scratch, that is why you use inheritance and interfaces.[/quote] |
Ghenghis:To get a better understanding of design patterns I would advice you to also visit this link Head First Design patterns - By Oreilly It appears people have different meaning of design patterns. Design Patterns support reuse of software architecture and design. If you don't implement a software design then what do you do with the design? Here is an Abstract of a paper on the IEEE website Abstract For more than a decade, patterns have influenced how software architects and developers create computing systems. Design-focused patterns provide a vocabulary for expressing architectural visions and clear, concise representative designs and detailed implementations. Presenting software pieces in terms of their constituent patterns also lets developers communicate more effectively, with greater conciseness and less ambiguity. Software patterns influence how developers design and implement computing systems. This paper examine the software patterns' past, present, and future trends, which can help developers improve their projects. Source: Software, IEEE |
Ghenghis:I don't agree with you also. Design patterns are used in class diagrams. I have listed some of the benefits of design patterns. Benefits of Design Patterns • Design patterns enable large-scale reuse of software architectures and also help document systems • Patterns explicitly capture expert knowledge and design tradeoffs and make it more widely available • Patterns help improve developer communication • Pattern names form a common vocabulary |
delomos:The fact the an organisation develops software for its clients is no guarantee that they are following the proper practices and processes of the software methodologies that are available, the only way they can show their clients and themselves that they are doing the right thing is through PCMM or CMMI certification. You cannot compare people who take IT certifications to this one, the people who take IT certifications are meant to have had 2 or more years experience in that area of certification, but because some people just take these IT certifications without experience in IT is the reason why you feel they are irrelevant. I also mentioned Vienna Development Methodology because if you write high integrity software for banks, life support machines, aeroplanes, rockets, cars and so on, then it is a must you must use one of the Formal Methods in software engineering of which the Vienna Development Methodology is one. Since this thread is about "Software Development Methodology", I find it impossible not to bring in those terminologies I have been using, as they are essential in order for an organisation to develop high quality software on time, without bugs and within bugget. Also in order for organisations to develop usable software they have to use one of the Non-Functional Usability Methodologies, one of which is Usage Centered Design. Design Patterns are a way to avoid developing software from scratch, developing application from scratch can be very expensive. Design patterns enable large-scale reuse of software architectures and also help to document systems. It is similar to a recipe, you will find it quicker to make a special meal from a recipe than for you to come up with a new way of making that meal from scratch. When you design your class diagrams you are making use of design patterns as you do not create all the classes from scratch, that is why you use inheritance and interfaces. Design parterns are not archaic, they are now being used in: Project management, Organisation structures, Requirements analysis, System design, General modelling approaches and Programming. If your client can afford it and you have all the skills and resources then you can follow the software tradition that the best way to serve the user/customer is by building each new system from scratch. |
Ghenghis:Making sure there are no bugs in life, mission and business critical software like the one you've mentioned above requires yet another Software Development Methodology called the Vienna Development Methodology. You can follow this link to find out more about it: Vienna Development Method What I have learnt so far about VDM has made me to realise that the kind of software you want to develop will detemine the practices and processes you have to follow before you begin to write any code. |
delomos:I disagree. PCMM or CMMI certification are not for the US only, Companies outside of the US have obtained different levels of certification, there are some software organisations in India that are PCMM Level 5 certified. When it comes to bidding for top software contracts at home and worldwide then a company's level of certification matters as it shows that the software organisation are following the proper processes and practises of the different software methodologies that are available. Just out of interest, which of the software organisations in Nigeria are PCMM or CMMI certified? |
logica:I was just about to post it here that you must have worked in companies that are PCMM level 3 to level 5 certified. I came to know about this PCMM or CMMI in my final year of SE at Uni. The advice my lecturer gave us was to look for company's that are level 3 and above certified when starting our careers in software development. He went further to tell us that level 3 companies are the ones that have properly implemented the processes and practises of agile methodology and that companies with level 4 - 5 are at a more advanced level in the way they implement the processes and practises of agile and other software methodologies. |
delomos:People Capability Maturity Model (People CMM) was developed by the Software Engineering Institute. PCCM is a method by which organisations are graded based on the way they manage, develop and use their people for developing and maintaining software.You can find out more about People CMM from the Software Engineering Institute. The best way for an organisation to find out if they are following the correct processes and practices of developing their software without cutting corners, will be for them to sign up for an assessment with the Software Engineering Institute. |
delomos:No it does not work that way, the way it works is that today one developer sits and watch the other do the coding, then tomorrow the developer coding today sits and watch the developed that was watching yesterday, do the coding today. The level to which an organisation can properly implement a Software Development Methodology and its continuous improvements, will help to determine the level it gets for People Capability Maturity Model (PCMM) The levels ranges from 1 - 5, 5 being the top level. Organisations at level 1 are one man businesses, these cannot fully implement all the processes of an agile methodology or any of the other methodologies, 3 are those that implement proper agile processes and practices, level 4 and 5 will require a lot of resources in order to come up with improvements and new innovations to which ever methodology is being used. So the level to which an organisation can properly implement a Software Development Methodology will depend on its size and resources. |
Facebook and this forum are good candidates for an agile methodology , they can go live at anytime and new functionality can be added all the time base on new user stories. But an application like Ebay and Amazon which this thread is about will definitely require a waterfall model at the beginning as all the functionality it needs to be successful has to be in place before it is made available to the general public. Agile requires a representative of the customer to be on site at all times during the sdlc, though this may not be possible in real life, but it is recommended. This thread is still very much on track as you cannot develop a successful site like Ebay and Amazon without first selecting the right methodology which I believe in this case will be waterfall and maybe a mixture of agile and waterfall to allow room for flexibility. If a methodology is not used it will be like a builder building a skyscrapper without a plan. The skyscrapper will not be safe and when the time comes for renovation and maintenance you will find that it will be very difficult to carry out. |
delomos:Waterfall is still the king when it comes to life, business and mission critical applications. You cannot use agile for a banking application, a space rocket, an auto pilot or a life support machine. Agile is good only for less complex applications. Agile is also very expensive as you have to have the client on site at all times and programmers must work in pairs. |
Fayimora:Agile will not be suitable for a project like Ebay and Amazon, waterfall will be the ideal methodology, as Ebay and Amazon will not want their customers to place their orders but find out that the payment gateway is not yet ready or the delivery functionality has not yet been developed. Agile is suitable for less complex projects and might cost more due to pair programming and all the other processes involved. @delomos this is your area do you agree with me? |
Fayimora:At first I felt why can't it just be all coding but after I got into the core areas software engineering, I now find that I cannot write on single line of code with out thinking of requirement gathering, cost estimation, selecting the best AD Methodology, usecases, complex class diagram, sequence diagram, deployment diagram, if waterfall methodology then FDD and DFD, VDM-Specification Language, usability and a requirement specification document (Contract). The work is a lot but don't worry before you know it, you'll find out that it has become your favourite area. |
Fayimora:I know how you feel, but from what my lecturers tell us, the software engineering modules are very rewarding today. |
Fayimora:Ok I see what you mean. A good Software Engineer has received all the trainning he needs to can carry out all the stages including project management. |
Fayimora:The first 4 are very neccessary as this is where you decide whether or not the technology and the skills are available to develope the application and also it will allow you to estimate the cost of developing the application and for you to have a contract ready for the client to sign. If the first four are left out then that cartoon becomes true, the programmer will have no life and will end up with no money ![]() |
You will need a good Software Engineer that will carry out the folllowing: 1. A Good Feasibility Study 2. Select the best Analysis and Design (AD) Methodology 3. Carry out Analysis and Design of the new System - Analysis gathers the requirements for the system. - Design will include Usecases, Complex Class Diagram, Sequence Diagram and a Deployment Diagram, if using one of the new AD Methodologies 4. Usability Testing - Making paper prototypes or quick UI designs for the users to test the system to make sure it will be user friendly 5. Implementation - This is where the programming and unit testing will take place. The programming must strickly follow to the design above. 6. Deployment - The system is made available to the users to allow testing 7. Testing - The system is tested as a whole 8. Maintenance - Fixings errors and other issues that may occur |
Ok leave your database file on drive C and then try this code below, it should work for Access 2007 .accdb extention. Dim dbProvider As String Dim dbSource As String dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ dbSource = "Data Source= C:\\db1.accdb; User Id=admin;Password=;" con.ConnectionString = dbProvider & dbSource |
First move the db1.mdb file to the root directory of your application, then use one of the connections below that applies to your application. ' Use this for a windows application Dim dbProvider As String Dim dbSource As String dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" dbSource = "Data Source=" & System.Environment.CurrentDirectory & "./db1.mdb; User Id=admin;Password=;" con.ConnectionString = dbProvider & dbSource ' Use this for a web application Dim dbProvider As String Dim dbSource As String dbProvider = "PROVIDER=Microsoft.Jet.OLEDB.4.0;" dbSource = "Data Source=" & Server.MapPath("db1.mdb" ![]() con.ConnectionString = dbProvider & dbSource |


.