Group Project

Monday, November 27, 2006

Project Management

Per Denis's request i have set up an account with Basecamp. (i gave up with google project far too complicated for it's own good)

You should all have e-mails and links to it. if not then here is the link Group Project BaseCamp

It is a free account so you can not upload files to it, but i have created a general FTP logon for you to use. Details are on basecamp.

I have also set some milestones and to do lists so people have plenty of work to carry on with.

Thank you
Daniel Clarke

New Work

Sorry people, as new information has been brought to my attention. stop the presses, i have new work for everybody to do.

I think we all need to decide what methodolgy we are going to be using, what people are familar with etc... There are two choices at the moment the SSADM method, or the Spiral method.

I have included various documents detailing the various steps and deliverables of each stage of the project for the SSADM method. Personally i feel using the SSADM for the first few stages would be better, and maybe using a prototyping model for the building stage would be better.

http://www.demonhunter.co.uk/uni/group/task1_AS2.doc
http://www.demonhunter.co.uk/uni/group/pie.pub
http://www.demonhunter.co.uk/uni/group/task3_AS2.doc
http://www.demonhunter.co.uk/uni/group/DFD_LDS.ppt

Ok apart from the DFD and LDS diagrams the requirements phase is complete. I also feel that the analysis phase under the SSADM method is complete, as Darius has analysised other systems and has come up with comphrensive results for it. And as there is no previous systems i feel that this will be satisfactory.

So new work.
  • Me and Adam will work on doing DFD diagrams and LDS diagrams for the chosen business option. Then we will write a comphrensive specification for this.
  • Denis: Can you please complete an E-R diagram for the database please
  • Darius: Carry on with site design, can you design a page layout using whatever methods for the main page. Please justify it with your analysis as well.

Ok then people need to choose which methodolgy to use, and also carry out the work i have specified. Adam i need the full study reports, so i can see what the chosen business and technical options were please. I am trying to create a Google Project but i can't see how at the moment so hopefully by the end of the day it will be up.

I also hope to have the project plan done as well, to the best of my ability. It will not include specific tasks. Just milestones and deliverables as tasks will need to be assigned weekly and will very depending on progress and circumstances.

Thank you.

Daniel Clarke

P.S. could people please comment so i can tell who has visited the blog and they are okay with the work i have assigned.


Sunday, November 26, 2006

List of requirements



Note: MoSCoW framework helps to set priority for each requirement.
M - must have
S - should have
C - could have
W - won't have


Also there is a requirement definition form proposed by Tony Wakefield last week:

Comments

Google group would be sufficient,at least, we will have a central repository of files.
Well as you correctly mentioned I proposed spiral metodology, nobody said we MUST use it. The information I posted is an overview of existing methodologies so that everyone can understand the difference and choose the appropriate one. If it is not enough - find an information about it, we all have Internet and library access.
If you feel confident with SSAD method, go on, but remember about drawbacks, this is one of the waterfall types. Besides DFD is an essential part of SSAD intended for conceptual modelling, i.e. for systems that don't exist yet.
Why are you talking about page design, if you don't have conceptual model(DFD,ERD)? Design (layout) is a last thing to worry about. The first step is to create conceptual model, logical design, produce DB design.

Denis

Project Progress

Hello,

Well i said that nobody needed to go to the meeting last week, My PC was down, so i e-mailed adam and Darius as i had there e-mail addresses and asked them to forward them to you. Which they didn't it seems anyway in regard to your questions.

I don't know anything about BaseCamp, do you need anything? is it free and could you please provide me with a link to it if you think it would be suitable.

We can use google groups if you would prefer. I will set up an account for it tomorrow and e-mail everybody the details for it.

I have never used UML, and it is a bit hard to create a DFD on a system that doesn't even exist yet.

Thank you for listing the requirements but i had already assigned me and Adam to do it. Hence why it is posted in the work list for adam.

I know my specification is a bit bland and brief, but most of, if not all has already been stated in Adam's Feasability and full study report. Including, technical, system, and business options. With justification. I will attempt to collerbrate that information in a conclusion tomorrow, to show it as a type of specification. So Adam can you please e-mail me copies of your work.

Regarding the E-R diagrams i had set you to do it, in the e-mail you never recieved, so you can do it this week and forget the other work i set you.

The reason i have been asking you to post information on the spiral model, is because you suggested using that methodolgy. Also you said you had information on it that you could post on the blog. The information you have posted is far too brief, i need to know the deliverables otherwise i can not lead this project properly. Personally i would prefer to use the SSADM method as i know it.

Ok well in the project process. I believe you have finished the requirements stage, to a satisfactory level. We have a feasability, full study, list of requirements, and a specification (admittely needs some work done to it).

For the analysis stage we probably need to do a little more work but without knowing about the sprial model i can not set tasks for it. We have a competitive site analysis, but not much else. Therefore i decided until this was completed, that we should move on to the design phase. Espically as i want the design phase finished before christmas break.

I can be more descriptive in my posts if you are having trouble understanding the meaning. I did list what pages needed to be designed. Basically i need page layouts for the main pages, Home Pages, Item Page, Update Page and user account page. As Darius has already designed the navigation of the site and effectively the site map this is all that really needs to be done for the design phase.

Anyway anymore problems or questions please e-mail me.

P.S. The reason i asked Darius to do psuedo code is i need some from of design for the programming side of it. Also i thought it might help you when you actually come to programming the database and website. However if both you and Darius think it is pointless it doesn't need to be completed and Darius can help with the site design page.

Questions to Daniel as a project manager

Hi, everybody

Nobody did show up at last week meeting. Daniel, my post "Online shop - main features" IS a list of requirements, on which spec must be based. Me and Tony went through this list checking priority of each requirements(MoSCoW framework). What you wrote is not really a spec, cause specification is an abstract and formal description of an application's requirements and functionality. In web development often the UML use cases and state diagrams are used for specification,alternatively, DFD.
We are too far from design phase as well, cause we haven't finished the requirements definition stage yet. Why do you expect E-R diagrams from me? I have never heard you ask me to produce them.
As far as I remember Daniel and Adam are responsible for system analysis. Why am I researching spiral model for you? I also had a chat with Tony about our development methodology. He said,if we decided to use spiral, we must employ enhanced spiral showing stages in more details.
Daniel, can you make provisional structure of the final project report, please, cause for me it is really hard to understand in what direction we are moving. Organize communication and collaboration somehow. If you don't want to use BaseCamp or ActiveCollab, at least, create Google group for our project, assign tasks and upload files there,I believe 100Mb quota will be enough.
There's another thing to mention. When assigning tasks, could you make it in more descriptive way, please, rather than just saying "Finish off the site design". What exactly do you expect, what issues have to be solved, docs to be produced, questions raised, etc.
Final point: Daniel - no offence, my heart just aches with the burden:-)) We have made little or no progress so far and that worries me a lot.

P.S. Don't make Darius waste his time. Why do you need pseudo code???

Work For next week

Hello,
Well i have finished the specification (although it is brief as everything was stated in the full study and feasability report) I have also finished a list of the functional requirements of the system. I will have the project plan finished and uploaded by tomorrow


http://www.demonhunter.co.uk/Uni/Group/specification.doc

I have also uploaded Darius's work, he has done a very good competitive analysis of two e-commerce sites. And also a site flow diagram for the navigation system of the site.

http://http://www.demonhunter.co.uk/Uni/Group/navigation.pdf
http://www.demonhunter.co.uk/Uni/Group/ECommerceAnalysis.pdf

I am still waiting for Adam's list of non-functional requirements, and Denis's E-R design pages. And also i need point for the spiral model e.g. Requirements Stage - deliverables are Feasiability, Full Study, Specification, requirements, and interview notes etc.

Ok, there will be no meeting tomorrow as i don't think it is necessary yet. If anyone needs to discuss anything with me, either post it on this blog or e-mail me and i will get back to you ASAP.

Work for Next Week

Ok we have now finished the Requirements and Analysis stage. Which means we are on design, so the work is as follows.

Adam - Finish off the site design with Denis, and the remaining work
Denis - Finish off the site design with Adam, and the remaining work
Darius - Programming design (how ever you want to do it psudeo code, top down design)
Daniel - Remaining work, some site design as well
Adam as the systems analysist you will be in charge of who does whcih design. The main ones that need to be designed are the homepage, User updating, User accounts screen, and product screen by next week.
The next meeting on the 4/12/06 will be taking place. As it will be the end of the design phase and we will check or work with tony and that will be all before christmas so people can finish coursework.
Thank you
Daniel Clarke

Sunday, November 19, 2006

Online shop - main features

General requirements:
  • compatibility with PHP versions starting from 4
  • admin backend
  • flexible frontend
  • final version is a complete solution for selling any products online
Design/Layout:
  • template structure implementation
  • fully XHTML/CSS compliant
  • advanced look with AJAX technology (scriptaculous will be used)
  • dynamic sections and images
Backend engine:
  • ability to create/add/remove any number of products, product attributes, categories, etc.
  • secure password protected administration area
  • user review and user voting support 
  • stock monitoring, stock comtrol
  • order monitoring and control
  • customer accounts management
  • product listing reorganization
  • secure and encrypted storage of customer personal data (MySQL server, MD5 encryption)
  • simple sales reports showing top selling products in each category
Frontend:
  • customizable customer accounts support
  • order history and order status support for each customer
  • guest account support
  • temporary storage of shopping cart for guest accounts
  • ability to create product review, leave feedback
  • low quantity in stock warning
Additional features:
  • system state monitoring
  • promotions targeting individual customers(one to one marketing), i.e. let's say customer have bought an audio system recently and a nice idea would be to acknowledge him about new audio products, for example, CDs, HiFi, etc.

Possible problems:
caching, inventory upload, apache configuration, system state
 monitoring (e.g. if an error occurs system sends an acknowledgment to administrator,sounds cool, but I don't know how to make it). 

Project Planning. Documentation to be produced by project manager.

The project activities must be planned in a logical manner in order that key activities and interfaces are identified.
The project plan will be developed having identified the following:
- key dates
- projects phases
- milestones per phase
- resources required

The most convinient way to display sequencing and status of each milestone is to develop a gantt chart in spreadsheet format. Something like this:


If we choose spiral model deliverables are likely to be the following:

Alternatively UML notation can be used, e.g. DFD and STD can be replaced with UML use cases showing all possible interactions and the main functionalities of the application.

Monday, November 06, 2006

Attendance

Can people try to make it too the meetings. If you can not make it then please e-mail me the day prior, or post it on this group blog so people know that you will not be attending.

There will be a group meeting every week unless during the meeting it is agreed otherwise, or i e-mail you all saying that the meeting is cancelled due to various reasons.

Also once you have finished a peice of work, it needs to be posted on the blog. If you do not have your own hosting then e-mail me the files. I will then try to host them on my website and send you the link.

Well next week, everybody must attend as we need to show Tony some deliverables. The feasiability study needs finishing off, as well as the full study report. I have almost finished the specification, and will do a general overview of the project plan for the time being. Denis you need to finish posting the information about the Sprial model, for me to finish the project plan.

Darius, you need to do a technical feasability study. You need to write down several technical alternative ways to create the site (e.g. user updates through web browser, user updates through application) Of course it needs to be a bit more detailed then that. This will go along the full study report and feasiability study. This all needs to be completed by next monday at 12.30. Could you print out copies of your work as well please.

Thank You
Daniel Clarke

Sunday, November 05, 2006

Validating the choice of technology

PHP is a programming language presenting high level of integration with web server and database. It is specifically designed to work in web-server-database environment (Apache + MySQL). This proved to be a very powerful combination suitable for solving wide range of tasks in web environment. Initially PHP was an open source server-side HTML-embedded scripting language. Now it is developing very actively, the latest fifth version of PHP supports full range of OOP (object oriented programming) features such as encapsulation, polymorphism, inheritance, overloading allowing to deploy complex web applications. For example, Yahoo! search engine and web services are based on PHP engine. Even though, PHP still remains very flexible language that permits developers to mix OOP and procedural programming successfully.
ASP (Active Server Pages), JSP (Java Server Pages), ColdFusion could be an alternative approaches to website development, but ASP ties developer up to Microsoft platform, JSP is cross-platform but can be more a part of the problem than part of solution due to complexity of Java language. ColdFusion is relatively new technology and I don’t have enough knowledge to make any assumptions about it. Unlike all these scripting languages PHP is flexible enough, doesn’t tie the user to particular platform, has relatively simple syntax.
MySQL is a powerful database management system offering excellence performance and reliability at little cost. MySQL is a compact database server ideal for web application. In addition to support of SQL (structured query language) standard, MySQL compiles on a number of platforms and has multithreading abilities on Linux/Unix servers which increase performance. Also MySQL can be run as a service on Windows servers. General license for MySQL server is available at no cost, commercial license is significantly cheaper in comparison with rival product from Microsoft (MS SQL server). By implementing a database into web applications some of the data generated by PHP can be retrieved from MySQL. This moves the site’s content from a static to a flexible, dynamic basis.
In conclusion, Apache, PHP and MySQL are each open source, cross platform applications available at little or no cost. Therefore it would be useful for organizations with limited budget including educational institutions and universities as well as SMEs.

Wednesday, November 01, 2006

System Development Methodology


Software development methodology or software development lifecycle (SDLC) is common methodology for deploying information systems in many organizations. Proper approach to software development results in fewer defects, reduced steps in the development, shorter delivery times and better quality of the final product.
There is a wide range of established development methodologies available from which to choose for this web development. I will discuss briefly the main attributes of each development methodology and conclude the section with an examination of which best suits the particular development.

1. Waterfall model


The waterfall model is the oldest software development model and consists of 5 consecutive stages. First the application requirements are gathered and a detailed requirement definition document is drawn up which is then used as input into next stage, Then a detailed system and software design document is drawn up to implement the requirements definition document. At this stage no changes can be made to the requirements definition. The next stage is code generation, followed by running against the test procedure, generated during the requirements definition stage. The testing may involve the development and testing of each unit of software separately and then, more testing integrating all units together. It is much easier to find an error in a single unit of software than in the complete system. The final stage is operation and maintenance as the system goes alive. No changes to the requirements or the design can be made until all these stages are complete and this then feeds back into earlier stages of the model. This method does not take account of the fact that, what a customer specifies is often not what is required, until the system is complete. The act of seeing the application helps the user specify and refine exactly what application functionality is required. The customer requirements initially specified are often not what customer requires when the application is completed.

2. Spiral model

This method is where the development is viewed as an iterative spiral development, where the application is under continual development. Each development cycle is divided into 4 stages:
1) Determine objectives
2) Evaluate alternative, identify and resolve risks involved in this cycle
3) Develop and identify next level of product
4) Plan next phase of process
This is repeated for each iteration of the cycle as the application is developed further. This allows for much more flexibility than in the waterfall model since the software application under development is seen as series of prototypes. The customer can see the final product and more easily refine the prototype as the development continues. The risk of failure due to complexity or misunderstanding if the customer’s requirements for development can be reassessed at each iteration of the spiral, saving time and money if the customer requirements are misunderstood at an early stage. The prototypes are used for gathering customer requirements and assessing risk which is the major feature of the spiral model and do not form part of the final application. A drawback with this method is that the customer may well see the final prototype as doing what is required and be tempted to accept that as a final application, and be reluctant to spend extra time on finishing the product.

3. Evolutionary development
This is more iterative process of specification, design and development, generating an initial version for demonstration only, on which the customer then comments and this then enables a new more accurate specification to be made. More intermediate versions are generated before a final version is delivered. There are essentially two types of evolutionary development, first exploratory development where development starts with parts of the system. The customer then specifies further extensions to be added to the initial system. The second is throw-away prototyping where initial prototypes of the system are developed to refine the application requirements, which are less understood.
The specification, development and validation are performed concurrently for each revision of software, resulting in rapid customer feedback, but there are several drawbacks to evolutionary development. Because earlier revisions of the software may be incorrect, building on these may lead to code that is poorly structured and difficult to maintain. The process is not visible to managers since there are not clear deliverables. Special software development tools may be required to develop the software, which are very application specific and few people may have skills to use these tools. Software tools are also often specific to a particular software problem such as process control applications and therefore the tool might not be suitable to assist with every type of application development, this may affect the choice of this methodology.
The waterfall model forces the customer to sign up for requirements at the start, which tends to lead to better, well structured and therefore maintainable code as opposed to the evolutionary method which may lead to less structured code, however the application may not do what is required by the customer.
  3.1 Rapid Application Development
RAD is a software development process that allows usable systems to be built in a very short timescale, but this involves compromises in the total application functionality.
  3.2 Extreme Programming
Extreme Programming or XP is one of agile development methodologies that can be described as a daily practices for developers and managers based on 4 core values aimed at reducing the cost of changes during project development:
1) Communication
The goal is to give all developers a shared view of the system which matches the view held by the users of the system.
2) Simplicity
Project starts with the simplest solution that can be easily understood by all members of the programming team. 
Design and coding for today's needs rather than for future requirements.
3) Feedback
Feedbcak relates to different system development dimensions: feedbcak from system by writing unit test, feedback from customers by performing acceptance 
tests, feedback from the team by giving the estimation of time needed for further implementation.
4) Courage
Courage enables developers to feel comfortable with refactoring their code when necessary. This means reviewing the existing system and modifying it so that future changes can be implemented more easily.

Main activities are likely to be the following: coding, testing, listening (to business side or/and customer needs), designing. If those activities are performed well, the result should always be a system that works. But in practice, this will not always work.

References
Kendall,J. and Kendall,K. (2004) System Analysis and Design, Prentice Hall, London.
Hoffer,J., George,J., Valacich,J. (2001) Modern System Analysis and Design, Prentice Hall, London.
Wikipedia: Extreme Programming



Initial stage - Questionnaire

Here is a list of questions we have to answer in order to identifiy project requirements. Some of them we already answered during last group sessions.

General Questions


What is website functionality? The purpose of the system?
Does the client have any special requirements to website development?
Website hosting (in-house or third party)?
Web site authentication?
Who is going to perform website administration, computer literate person or an employee with limited computer knowledge?
How does the client see the process of updating the website? How often updates will be performed?

Website design

Content: style, layout, textual informations, use of graphics. 
Does the client have any company attributes, e.g. brand book, logo, company style docs, OVP?

Database design

Amount of information
Frequency of updates
Number of potential users
Concurrent sessions handling

Project Management

SDLC and methodology
Modelling tools
Collaboration and communication tools


Tuesday, October 31, 2006

Week 2 Tasks

Well after last weeks meeting, we have ascertained what each persons role will be. So for next week we need to have completed the Requirements Engineering stage. We have chosen to use the Spiral Methodology

Daniel - Complete a General Project plan, Brief Specification, and write up the interview notes
Adam - Complete the Feasability Study and Full Study Report (or it's Spiral equivalent)
Darius - Help Adam with the Full Study Report (or it's Spiral equivalent)
Denis - Send documentation about the Spiral Diagram to everyone, either by hosting or via e-mail by the end of 01/11

With the exception of Denis, all this work needs to be finished by the 06/11 in order to put us on track.

Thank You
Daniel Clarke