My personal guess is the human factors are a commonly ignored and the technology over-emphasized.
There is also a tendency to throw a computer at the problem -- without
analysing what software, maintenance, backup, training, etc. is needed.
Can you give an example of a modern thin client
Cell phone (medium cost).
What is the difference between flow charts and DFDs
Table
| DFD | Flowchart |
|---|---|
| Data storage | Actions |
| Communication | Sequence of Control |
| Continuous | START,STOP |
| Flows divide | Decisions make choices |
| Implicitly Parallel | Explicit Fork/Join Parallelism |
So there are many different ways that an artifact can fulfill a
requirement.
this is called 'realizing' it.
Are DFDs the most commonly used in describing a system
Yes.
Does RAD use Frameworks, and if so which ones
The essence of RAD is the technology to describe common types of processes
quickly and easily. A very high level language can achieve this without the
need of a framework. Thus Visual Basic used to give a working prototype
very quickly. However these days, a Windows prototype will need to use
the .Net framework on top of VB.
Sometimes a language has a framework that makes prototyping much easier -- Ruby on Rails is an example. Ruby is an elegant language. Rails is a framework that simplifies web development of simple web sites.
As a rule a framework needs as much time to learn as a programming language. It may be quicker -- since RAD prototypes are throw-away prototypes -- to just use the language without the framework.
What is the worst functional requirement you've encountered
In my programming, all requirements prior to 1978 were associated with a
bad feeling in my stomach, then I started to learn methods that gave me a
place to start. Here are two that
I never even attempted and have occassional nightmares about:
There are also ones that I have attempted, failed to solve, and still wake up in the middle of the night trying to solve them. They are all simple to state and addictive. So I'm keeping them to my self.
Can you go over third normal Form
A data base is in third normal form or
3NF
if in each table the prime key determines the rest of the data in the
table,
and the whole key is needed to determine the data, and if no other
dependencies
are hidden between columns in the table.
How do you figure out how much programming is going to be needed in a
project
This is called "estimation". It is NOT easy. Here are some hints:
First there is the organizational environment -- how things are done, who does them, and how things are paid for....
Then there are the tools that can be used -- especially the integrated Development Environments (IDEs) that combine editor, debugger, compiler, testing, and various libraries and frameworks into a single tool.
With each meaning there are a lot of alternative forms...
How hard is CS375
Have a look at the
[ ../cs375/ ]
website that has grade distributions, book, work schedules, etc.
It is designed to be a 4 unit class covering a method of going from
requirements
to a good object-oriented design. And it seems to take the standard
amount of prep
and homework.
When faced with a design problem what steps should be taken in designing the system architecture
You should have a list of processes/use cases plus all the data formats and
data base design.
Your task is to choose the hardware and its connections that will support the software that meets the requirements.
Doing this is something of a black art.... the best technique is to create a possible system architecture and evaluate it against the non-functional and functional requirements. Look for the non-functional requirements that are most broken and adjust the architecture so it meets them. For example -- you predict that the web server (cost $600) won't be able to provide the speed under expected load because its CPU will be at 100% .... so you recommend a dual core processor, or go to a set of web servers and a load ballancing... front end that distributes the request between them (and the cost goes up to $2,000)...
If you can't find a suitable improvement then you need to think outside the box. My favorite trick is to look for common factors in all my solutions and deliberately change them. Another is to systematically challenge each constraint and assumption...
Why must we normalize data
When I first heard of normalization and relational data bases (1973?) I
thought
they were an academic fad.
Then I discovered that my students were using it in industry and had to
change my opinions... not a fad but a practical necessity.
| Step | Techniques |
|---|---|
| Fact finding | system thinking, interviews, field trips, deployment, meetings, DFDs, scenarios, data samples,... |
| Problem Solving | THINK! DFDs, brainstorm, walkthrough, physical->logical->ideal->new physical, cybernetics, patterns... |
| Data Base Design | DFDs, ERDs, data samples, encoding alternatives, normalization, ... |
| Hardware Selection | Input, Output, connection alternatives, DFDs->deployments, systems architecture |
| Human-Computer Interfaces | HCI, interaction design, activity diagrams, look-and-feel design, metaphors, storyboards, HTML, CSS, ... |
| Software Development | DFDs, ERDs, Requirements, RAD, JAD, stories, use cases, rules, SQL, logic, mathematics, patterns |
| Installation & Training | DFDs, scenarios, stories, procedures, workshops, ... |
| Operation & Maintenance | documentation, help desk, monitor for problems... |
. . . . . . . . . ( end of section Session 19 Questions) <<Contents | End>>
Session 20 Questions
The system helps students register for a class.
The system will be user friendly.Key symptom: you have to work hard to get a detailed specification of what is and is not needed in the system being designed.
There are many ways of writing them. I would suggest always writing
the rule in simple English and then spelling it out in detail using
one of the following:
Is the real final going to in the same format as the mock final.
Yes.
When doing a presentation in the real world how big can the presentation get
In terms of the size of the audience, I've attended a presentation on an OS
upgrade with 60 people in the audience. The typcal presentation to management
is to a group of people in a conference room -- no more than 15 people. It depends
on the number of stakeholders and decision makers. When calling a meeting
you need to select the audience carefully, of course.
In terms of time: Humans loose focus after 20 minutes unless you change the pace or supply caffeine and sugar. Donuts and coffee help! So does involving the audience.
The ideal time depends on the type of presentation. Presentations to management should be shorter than presentations of technical ideas to engineers, for example. As a rule, technical people find meetings a waste of their time and so we have things like "stand up meetings" limitted to 15 minutes to share progress and blockages. I'm surprised that no data has apeared on the use of electronic meetings and presentations on software development.
Whatever: don't prepare a presentation until you know the audience, the
place, and (of course) the content!
What is a deletion anomaly
A deletion anomaly occurs when the deletion of information
about one entity in the data also deletes information about another entity.
For example if there is a data group
Then deleting the last course that contains a particular instructor also wipes out the data about the instructor.
The cure is normalization.
How do you determine which data groups are expanded in 3NF
The steps are: The Key, The Whole Key, and Nothing but the Key.
Given 2NF data then each data group will have a prime key and attributes that are determined by the whole of that key.
Therefor look at data groups that are not in the key in 2NF and that have attributes that act as keys to other attributes. In other words there are non-key functional dependencies.
For example:
Notice that all the attributes in the 2NF Course that depend on
instructor_name move out of Course and into the new group Instructor.
Is Normalization on the final
There will be questions about normalization -- but I don't have the space,
and you don't have the time to normalize any realistic data.
Can you give an example of an ERD
I've just had to input some scores from a mock GRE examination. Each
student answered 48 questions. Each answer is one of the letters
A, B, C, D, or E. There are 2 dozen students. Here is an image
of piece of the data
The facts of interest are like this
Student s answered a to question q.
Student s has a name, ....
Question q has a number, a correct answer, a topic, a text, ...
Here is a list of entities:
Here are the functional dependencies between entities:
So, here is the ERD:
I hope this helps!
Can you give an example of the Critical Path Method -- CPM
Suppose I need to prepare a final examination for a class. I have the
following tasks that I must carry out:
Table
| Activity | Previous | Time(hours) |
|---|---|---|
| 1. Review topics taught | - | 1 |
| 2. Write the questions | 1 | 2 |
| 3. Review and mark up | 2 | 1 |
| 4. Edit | 3 | 1 |
| 5. Generate and publish mock | 2 | 1 |
| 6. Print final | 4 | 1 |
Next step: draw UML activity diagram [ MakeFinal.png ] , then add durations [ MakeFinal2.png ] , then work out the earliest time transitions (arrows) can happen: [ MakeFinal3.png ] , then work out the latest times transitions can happen [ MakeFinal4.png ] , and finally high-light the critical path: [ MakeFinal5.png ] (Note use right click to pop these images into different windows).
. . . . . . . . . ( end of section Session 20 Questions) <<Contents | End>>
. . . . . . . . . ( end of section Review Questions) <<Contents | End>>
Abbreviations
Also see [ glossary.html ] for more special abbreviations and phrases.