This Course has been replaced by CSE557

Opening Microsoft files (winzip, word, excel, powerpoint) on this page may require you to download a special viewer. Or you can download and save the files and use your preferred office applications to view and edit them.


    Course Review

      Readings plus Questions and Exercises done in class

        Systems Thinking and Fact Finding

        [ a1.html ] [ qa1.html ]


        [ a2.html ] [ qa2.html ]


        [ a3.html ] [ qa3.html ]

        Data Flow Diagrams

        [ a4.html ] [ qa4.html ]

        Envisioning and Selling a Project

        [ c1.html ] [ qc1.html ]

        Development Strategies

        [ c2.html ] [ qc2.html ]

        Managing and Planning Projects

        [ c3.html ] [ qc3.html ]


        [ d1.html ] [ qd1.html ]

        I/O/Storage Options

        [ d2.html ] [ qd2.html ]

        Entity Relation Diagrams -- ERDs

        [ d3.html ] [ qd3.html ]

        Data Design and Normalization

        [ d4.html ] [ qd4.html ]

        Rules and Procedures

        [ r1.html ] [ qr1.html ]


        [ r2.html ] [ qr2.html ]

        Systems Design Specification

        [ r3.html ] [ qr3.html ]

      . . . . . . . . . ( end of section Question and Exercises done in class) <<Contents | End>>

      Question From Past Final Exams

      [ finals.html ]

      Session 19 Questions


        [ questions2010.html ]


        [ questions2011.html ]

        What factors are overlooked most in visions and cost-benefit models

        I have no real evidence of which factoprs are missed.

        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

        Data storageActions
        CommunicationSequence of Control
        Flows divideDecisions make choices
        Implicitly ParallelExplicit Fork/Join Parallelism

        (Close Table)

        How do the deployed artifacts realise the necessary data and processes

        The word realise is pure UML jargon. We say A realizes B when A makes abstract B real. For example, you may need to store information about Students in your system, and this need is realized by a MySQL data base that has a Student table in it deployed on a Linux data base server. Processes become real as executable programs and libraries or scripts.

        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


        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:
        1. Simulate a beer barrel bouncing.
        2. Given a knitting pattern draw the fished garment.

        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:
        1. Base your estimates on the historical data you've collected about your team and its projects.
        2. Break down the project into many small activities and estimate each step separately.
        3. Use CPM to work out the best schedule and the minimum time needed.
        4. Express estimates in terms of the chance of finishing before that time, not as certain completion dates. When will you be 90% certain the job will be done.
        5. Use the PERT formula:
        6. expected = (best + 2*most_likely + worst)/6.
        7. Get your people involved in the process.
        8. Avoid confusing targets with estimates.
        9. All for the mistakes with a safety factor.

        Can you talk about system development environments

        We are a little short of time and the question is ambiguous.

        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.

        1. Data base management systems work when the data is normalized.
        2. Other professionals will expect you to do it.
        3. Because we said so.

        Show the steps in a project and the techniques that can be used in that step

        Bear in mind that each organization has its own scenario for analysis and design. But here is a not untypical project and the possible techniques
        Fact findingsystem thinking, interviews, field trips, deployment, meetings, DFDs, scenarios, data samples,...
        Problem SolvingTHINK! DFDs, brainstorm, walkthrough, physical->logical->ideal->new physical, cybernetics, patterns...
        Data Base DesignDFDs, ERDs, data samples, encoding alternatives, normalization, ...
        Hardware SelectionInput, Output, connection alternatives, DFDs->deployments, systems architecture
        Human-Computer InterfacesHCI, interaction design, activity diagrams, look-and-feel design, metaphors, storyboards, HTML, CSS, ...
        Software DevelopmentDFDs, ERDs, Requirements, RAD, JAD, stories, use cases, rules, SQL, logic, mathematics, patterns
        Installation & TrainingDFDs, scenarios, stories, procedures, workshops, ...
        Operation & Maintenancedocumentation, help desk, monitor for problems...

        (Close Table)

        Do DFDs and ERDs get used in real life or do corporations forget them

        YES! Both. You'll find that the big corporations have a the greatest tendency to overdo DFDs/ERDs/.... paperwork. The small young businesses that go agile -- stressing people, working code, face-to-face communication, and 3><5 cards.

        What are some strategies to reduce response times in a system that

        already exists It is, said Sherlock Holmes, "a capital mistake to theorize without data". In the systems world it is all to easy to spend time and money improving the wrong thing. Therefore it pays to take time to find the real problem ... the bottleneck or clog.
        1. Monitor the system to get a precise diagnosis of the problem:
          • What happens and what does not happen?
          • When, Where, and How does it happen and not happen
        2. One or more of the following should help, in decreasing order of likelihood
          1. Better bandwidth or reduced data flow.
          2. Improve the structure of the data.
          3. Get a better algorithm
          4. Upgrade a CPU or try a set of parallel CPUs

        Can you please discuss the Critical Path Method CPM

        I had planned to but the wind closed the campus... The notes [ c3.html ] are fairly extensive and the method is easy to understand and apply. If we have time in the last class I will demo an example.

        Could you go over UML activity Diagrams

        These are just flow charts with a modern notation. My notes [ r1.html ] are enough for this class. Just make sure you understand how to draw decisions, loops, and parallel branches.

      . . . . . . . . . ( end of section Session 19 Questions) <<Contents | End>>

      Session 20 Questions

        What are high-level business requirements

        These typically short sentences giving a very rough picture of what is needed: the view of the requirments from a great hieght
         		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.

        What is the difference between a fish-eye and a level-1 DFD

        The fish-eye is just the best way to show the process you are expanding as you expand a single level 0 process..

        What is a fish-eye diagram

        It shows a lot of detail in the middle surrounded with the connections to other systems. In a DFD there is a big central process box surrounded by the entities/stores/processes it communicate with plus a lot of internal process and stores inside.

        How detailed should data dictionaries have to be

        Very. If the data doesn't exist already you have to plan and document everything about each element and each record.

        What will the main focus of the final

        Comprehensive and high level.

        What was the toughest system architecture diagram I've had to do

        Those I tried to do before I learned to keep them very very simple.

        Who had the most interesting project

        I'm not sure and if I was sure I wouldn't say to the other groups.

        Can I give the answer to the final

        I could go over the answers to the ones I've published but they are not quite the ones I'll be using.

        How often is the UML used

        It is the dominant graphical notation. I don't have any figures of its usage however.

        Business Rules

        Business rules are rules governing the system that can not be easily expressed in ERDs, use cases, DFDs, etc. For example that you have to complete prerequisites before enrolling in a section, OR you must pay to reserve a DVD, or there is a special discount on Tuesday to seniors who have one of our credit cards.

        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:

        1. tree diagram
        2. decision table
        3. function table
        4. pseudocode
        5. Symbolic logic
        6. mathematics

        Check out [ r1.html ] for more information.

        In the mock final does "Input and Output Options" refer to input and out put devices


        Questions from last time

          Is the real final going to in the same format as the mock final.


          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

        1. Course( **schedule_number, *course, instructor_name, instructor_office, ...)

          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:

        2. Course( **schedule_number, *course, instructor_name, instructor_office, ...) has an attribute (instructor_name) that determines the value of another one (instructor_office). So you should split this out of Course:
        3. Course( **schedule_number, *course, *instructor_name, ...)
        4. Instructor( **instructor_name, instructor_office, ...)

          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

          Data from the Mock GRE

          The facts of interest are like this

        5. Student s answered a to question q.
        6. Student s has a name, ....
        7. Question q has a number, a correct answer, a topic, a text, ...

          Here is a list of entities:

        8. Student, Answer, Question.

          Here are the functional dependencies between entities:

        9. Each Answer is from a single Student, and
        10. Each Answer is to a single Question.

          So, here is the ERD:

          Entities and relations from the mock GRE data

          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:
          1. Review topics taught-1
          2. Write the questions12
          3. Review and mark up21
          4. Edit31
          5. Generate and publish mock21
          6. Print final41

          (Close Table)

          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>>

      2009-12-03 Thu Dec 3 17:26 Questions from class 20

        Where do students make most mistakes on the final

        I have no real data but I think its getting notations and calculations wrong.

        Review all the algorithms/procedures (example CPA, Cost/Benefit, normalization, ...) and all the rules (DFD, ERD, ...) for diagrams.

        ERDs vs DFDs

        DFDs may becoming unfashionable for software design but they remain the only tool that allows you to workout a collection of programs, data, and people...

        WHich area should we focus on

        I have qeuestion on all 14 topics/areas. Choose your best 10 and focus on those... I only require answers to 8 of the 14...

        How to estimate benefits/pricing for a new product

        Get a random sample of people to talk about it under a Non-Disclosure Agreement.

        Government or Industry

        I don't know.

        Next major admin issue -- wireless

        Wireless was a new issue 4 or 5 years ago..... I'm not sure what comes up next.

        Should we worry about the final


        Is there partial credit on the final


        What Kind of questions on the final

        [ finals.html ]

        How many questions on the final

        Find the mock on the cs372 web site [ mock.html ]

        How do you protect your in-house mail server from viruses and malware

        Most set up servers to filter incoming EMail by blocking messages that look like they contain viruses or phishing attempts. Wise administrators don't let their users download and execute messages: .exe, .bat, and even .doc files have this fault.

        How do you select the discount rate for cost-benefit analysis

        Choose a percentage a little bigger than the current bank-rates.

        WHat is the best way to plan for user needs

        First: ask them. Second: think. Third: get priorities -- which first, which later. Fourth: take note of possible future developments.

        What are some difficulties of cost vs security

        They are a trade off. Getting 100% security is very expensive even for a simple system. In practice you need to say that this is secure enough.

        What is the best advice for an aspiring sys admin

        Practice: (1) driving the machine with minimal tools, Just in Case, Practice communicating with users and bosses, (3) practice learning new things.

        Format for executive summary

        Two pages. First who and what. Second: costs and benefits.

        Softcopy format

        EMail a zip file or PDF is probably best. Or bring a flash drive to my office so I can upload it.

        How do you decide on the level of DFD.

        Start with a context diagram. Then expand context to level 0. Then expand some lovel 0 processes to level 1. And so on. Stop before you draw a flow chart.

        What is the most common problem faced by network administrators

        The users:-)



        1. Henry Podeswa
        2. The Business Analyst's Handbook
        3. Course Technology 2008 ISBN1-59863-565-4
        5. Comprehensive summary of the techniques in this course. Includes definitive information on activity diagrams, block diagrams, BPD, Business Process Modeling, Business Use Case, Cause-and-effect diagrams, Class diagrams, comunication diagrams, DFDs, ... etc.

      . . . . . . . . . ( end of section Bibliogrphy) <<Contents | End>>

    . . . . . . . . . ( end of section Course Review) <<Contents | End>>


  1. TBA::="To Be Announced".
  2. TBD::="To Be Done".


    Notes -- Analysis [ a1.html ] [ a2.html ] [ a3.html ] [ a4.html ] [ a5.html ] -- Choices [ c1.html ] [ c2.html ] [ c3.html ] -- Data [ d1.html ] [ d2.html ] [ d3.html ] [ d4.html ] -- Rules [ r1.html ] [ r2.html ] [ r3.html ]

    Projects [ project1.html ] [ project2.html ] [ project3.html ] [ project4.html ] [ project5.html ] [ projects.html ]

    Field Trips [ F1.html ] [ F2.html ] [ F3.html ]

    [ about.html ] [ index.html ] [ schedule.html ] [ syllabus.html ] [ readings.html ] [ review.html ] [ glossary.html ] [ contact.html ] [ grading/ ]