Well, the main thing I’m working on this week is the Assignment 1b Functional Specification Report. I’m glad the things I learned in ENH1260 Introduction to Professional Writing and FIT2043 Technical Documentation for Software Engineers are coming back to me, so I’m pretty happy that I can format my report and make it look business-y. Unfortunately I last took FIT2010 Databases FIT2008 Networks in 2007, so I’m going to need to brush up on the Diagrams for the Assignment and Terminology for the Design lecture! I’m still struggling with converting my event table into a Use Case diagram, so I just have to do the other diagrams and then ask lots of questions in the next tutorial. It just feels bad and wrong every time I attempt it, so I’m a bit discouraged there. Anyway, on with this week’s topic.
Good design involves creativity. While you can just put in tech solutions with the goal of meeting the Acceptance Test document, that isn’t really design. Design is a creative process where the designer (perhaps the Information Architect) makes IT solve problems in really efficient and useful ways, to inspire the business to use IT to add value, not just as a problem solver.
So let’s think “Blue Prints” so the designer can tell the programmer (either another person or their own future-self) how to build the system. Design works at both high-level and low-level. Of course, while Analysis works out what the system should do, Design looks at how the system should do it. There are three big areas that System Design focuses on: Network, Software and Database, which are inter-related.
The main points of the lecture were: Networking (enough to talk to the networking specialist) Application Architecture, User Interface (muck it up and the users will hate your system), System to System Interfaces. Database is a big deal, because a system is basically a Database with a graphical front end.
Security: besides passwords and encryption, also include Audit trail and logs.
Client Server Architecture is important. Having multiple servers lets us separate the different components of the system out.
3 Tier Architecture
- View Layer: user interfaces, etc
- Business logic layer: applies all the business rules, contains programs that do this
- Data Layer: interacts with Database.
Middleware is the glue that holds the layers together and lets the different software objects in the layers talk to each other.
This week I didn’t do well on the quiz: showing there is some specific knowledge to pick up here, rather than apply existing knowledge to new problems.
I managed to guess the answers involving stuff I already knew, such as LAN, distributed architecture, cluster, intranet, extranet, database relating to the Data Layer as well as the questions about the Analysis phase.
However, this is the stuff that I missed:
- Project Schedule: important to co-ordinate activities
- CASE Tool: used to record and track project information (used in a lot of places)
- System boundary: identifies what is in and out of the system (automated and manual processes)
- User Interface: (I think I went general and said system) first thing: think of user dialogue with system, inputs and outputs.
- Network Controls: obviously control the network, protecting communication
- System Interface Controls: make sure other systems don’t harm the system.
- Application Controls: make sure that transactions and other system work is recorded correctly.
These were all Free form answer questions, and I think I could have improved my score by reading the question more carefully, or if I had been asked to define each of these rather than guess the word that matches the definition.
- Design Phase = breaking complex components into smaller, understandable components (ie, top down.)
- When designing prototypes, ask: “Have we specified in detail how we can be sure that:
- the system operates correctly and
- the data maintained by the system are safe and secure?”
The most memorable thing from the Tutorial? “What is the internet?”