Hey there,

I'm taking a C++ class and got a two staged assignment to hand in soon. I'mhaving troubles
with it and was wondering if anybody could lend me a hand?
We are to design and implement a web forum in C++. It is supposed to be a stand-alone
application, meaning no CGI, no browser, no client-server... the emphasis is on its functionality.

Now... we first got to hand in a design, as complete as possible. That's the point I'm struggling
with - I just don't have enough experience in object oriented design. My background is more
procedural.

Specs

The user interface will be console driven, data is to be stored in files through serialization. There
are to be different types of users(visitor,member,moderator,administrator); they can send
private messages to each other and create/edit threads and posts.


Components/Classes

Anyway, I identified 4 "components" of the program; each should be implementable by itself:

1) User Interface
2) Functionality
3) Data management
4) Persistence/Serialization

I can't really think of any class names there.. any suggestions?
I also attached a class diagram (far from being complete) ... should I split the classes any
further? The functionality class seems to grow and grow ...

How should I organise the classes? What class is part of what? Is the data management
#included in the functionality and then instantiated as part of it?

Object management

I was thinking that all objects are instantiated in the data management; the functionality
classes and the user interface only work with references to them. Does that make sense?

Further, how should I organise the forum/thread/posts...? Tree like with parent/child pointers?
Composition/Aggregation (cant remember the difference, duh); "a thread is part of a forum"?


HELP guys! I just don't have anybody to ask these things, our professor is an idiot who can't
speak proper english, and my classmates are still struggling with concepts and syntax ... and the assignments themself isquite demanding I find.

Thanks a lot in advance! :)

Flo

Attachments ClassDiagram.jpg 89.79 KB

Hi.
This thread is related to designing/modelling. No two developers can create the same design/model. This issue is related to the ethics of ARCHITECTURE.
If u really want to create a high quality software, refer to design patterns of software architecture. Read about Object oriented design patterns specifically. You will get good ideas on software architecture.
This will clear basic doubts/questions on laying the foundations of your software(like designing classes, communication links, state transitions, packaging/deployment, etc)

Hope this info helps

Cheers

Hey there abhi,

yea, I've been putting a lot more thought into it and it seems like the essential choices are in the architecture. I stumbled upon the MVC (model, controller, view) and layered architectures; applying those gives you quite a good idea about what classes to look out for and how to organize them.

Thanks for the response! Great to hear the exact thing I've been thinking about :).

All the best,
Flo

This article has been dead for over six months. Start a new discussion instead.