Project-Based Software Engineering, project hints

PSWE, home page

Project home page


Project Hints

Programming and Software Engineering

So far the most of your programming tasks have been fairly straightforward programming – clearly stated inputs and outputs and the algorithm for processing the data. All that has been required is basically coding the thing and testing it. That’s why that kind of things are called programming, not software engineering.

Software engineering deals with solutions to problems or tasks. This means that the customer wants some operation to be done by computer. The customer usually has few requirements on the solutions (maybe functionality, costs, schedule,etc) but generally the customer wants "a quick solution to this simple task." The software engineering includes figuring out the actual requirements and needs, proposing and developing the solution, and taking it in use at the customer’s premises.

In this project you are presented with time management problem that needs a solution. You will not be told explicitly how the program looks like and what it actually does and how it does it; you will be presented with some functional requirements (stores time data, creates reports, etc.) and some constraints (MS-Excel solution, for example). Basically you can propose almost anything within these limits and if you can convince both the customer and yourself that the solution if worth the effort and cost (i.e. time needed) you can do what you want to do. You might remember, though, that normally the customer requirements and constraints may change during the development time; in this project this will happen too. Namely, the more we talk and think about the solution the clearer it comes what it should be and what it shouldn’t be.

The point is that you should envision your own ultimate solution to the problem and then find a solution that makes the customer happy. This means that you should respect the customer wants, complete the project within schedule and budget, and not do too much work yourself. The last point is very important too, since there is another project (course) waiting for you when you get this done and you also, probably, have some other courses to do with this one.

Application domain and SWE domain

Creating the time accounting software requires both knowledge from the application domain (= time accounting) and software engineering domain (= developing software, project management, etc.). You need to understand both the domains and know how to work in both the domains.

In practice this means that you should know how the time accounting is performed manually, why it is done, what are the main problems with it, why and how should it be automated etc. So you should develop some kind of understanding about the application domain and happens there before you start implementing your system.

The SWE domain is being taught and studied in this course. However, understanding these two domains and their coexistence is vital for a good software engineer.


General notes, what is needed

Excel macros or VBA programming

You will need to do some programming and the basic options are either the macros or VBA. You might use some time learning these tools before you need to implement the solution.

Data storage

You can hardly avoid creating some kind of data storage in your system. Think possible ways to implement it and how they can satisfy the requirements for the software.

Graphics

Your software must produce reports and also show the results in various graphical presentations. Think which formats (line, bar, pie, …) would be useful for which purposes, how you can create them and how to automate the graph creation.

ASCII-file generation (final report)

One of the main requirements is the final report generation in ASCII-file format. Check how an ASCII file is created with VBA or macros and whether that phase will cause your any problems.


 Last updated on 04.10.2002