by asli
7. September 2009 16:32
Before you build your system, you should have a vision for it. What will it do? This envisioning process kicks off the iterative software development process, with the phase known as strategy. 
Many software development shops have different names for the different phases, and some may add or subtract a phase or two, but for the most part you can think of software development in 5 phases:
| phase | who does it? | what happens? | what are the deliverables or artifacts? |
| Strategy | business analyst | the vision of the system is laid out in plain business terms. | business requirements: what must the system do in order to full its function use cases: breaks out the requirements into a series of discrete steps. activity flow, sequence diagrams : these identify the actors in a system and how activities and data flow through the system. An actor could be a person or another system |
| Design | architect | the relationships between entities (the nouns within the business requirements – for example: item, user, shipment) is laid out as well as the blueprint for the system itself | data / object model: identifies the shape and nature of the components (think LEGO bricks) and their behaviors and attributes entity relationship model: shows have different “nouns” relate to one another. For example, there are many items in a group. |
| Develop | developer | the concepts of the design that were written for humans to understand are translated for machines | source code: the “translation” of the requirements into executable lines of byte code. database: the house that will store all information captured and manipulate by the system. |
| Test | tester | the source code is executed for comparison to the original test cases. Does the system do what it says it was going to do and does it do it well? | test cases: the bookend for use cases, the test cases also go further and also address user acceptance testing (for example, in a web application user acceptance criteria may say that the page needs to load within 4 seconds) |
| Deploy | IT Professional / administrator | the source code is put in a place where the users can access it | setup package: if you have ever installed software you know exactly what this is |
For those of you looking for a career in software development, think about the phase that you would enjoy the most, and when you are applying for a job, look for roles that focus on that page. You definitely don’t have to write code in order to have a career in IT!
Most software development occurs in cycles, and the phases will repeat themselves to produce software in “versions” or “releases”. Let’s use that model to design our system.
First let’s identify of what we’d like this system to do. We can think of the system as having two parts – inventory management and sales management. Let’s focus on the former for the time being.
A few bullets on what an inventory management sub-system should do include:
- add, remove and display items . For example, we’d like to have specifics on each individual charm (color, age, description etc).
- add and remove items so that they can be grouped into collections. For example, we’d like our add our charms to be listed as part of a particular bracelet – such as the Little Mermaid charm on the Scandinavian bracelet you see in the picture.
Think of other items that you’d like this system to do and write them down. Next, we’ll explore how we turn those into business requirements and user cases.