[Skip Navigation] [CSUSB] / [CNS] / [Comp Sci & Eng Dept] / [R J Botting] /[CS372 Course Materials] /a1.html [a1.txt(Text)] [Search ] Tue Sep 29 14:09:31 PDT 2009
[About] [News] [Schedule] [Syllabus] [Glossary] [Contact] [Grades]
Readings Analysis [1] [2] [3] [4] [5] Choices [1] [2] [3] Data [1] [2] [3] [4] Requirements [1] [2] [3]
[Review] Field Trips [1] [2] [3] Project Iterations [1] [2] [3] [4] [5]

Contents


    Organizational Context of Systems Work

      Before you write code you need to know what is wanted and the platform that you will be targeting. The first step to getting this information is to understand the way your enterprise works.

      A competent computer professional needs to understand three different things

      1. The technology.
      2. The organisation.
      3. The part of the organization in which software is developed.

      This course will focus on the two most important of these three: the enterprise and its developers. The rest of computer science focusses on the technology.

      Introduction

      Computerized systems appear in all kinds of organizations. This class is about the best way to develop software solutions inside any organization. Unfortunately


      (Principle 1): One Size Does Not Fit All.

      You must learn enough skills and knowledge so you can fit them to the kind of organization and the kind of work that is needed. You must also learn to look at the organization your are working for and figure out what computers and software are best for it. You need to learn how to find out how the organization works, and how your work can best improve the way it works. Even if your initial job does not let you make these choices, promotion will depend on learning to this "Systems Analysis and Design" well.

      This part of the course reviews the many kinds of organization and provides a kind of map of the possibilities.

      You will find that in many real cases there are two distinct organizations involved: the client or customer system and the development system. You need to understand both because the kind of organization that is good at producing software is not the kind of organization that is good at producing and selling lead pencils. In a large enterprise you will have to learn how the part that develops software works, how the organization invests in new hardware, and how the rest of the organization operates. Then you have a chance of making changes that make you rich and famous -- or at least -- an unsackable employee.

      If you are creating a new organization then you will need to know the different types of organizations so as to pick the best way for it to work. For example: a small enterprise is often very loose and relies on face-to-face communication. But a big enterprise will rely on paperwork and rules. So you need to find a way to move from your initial small company to a larger one.

      Stories about analyzing organizations

        The following provide evidence of the need for computer people to study the organization they are working with. The provide interesting examples. You should enjoy looking at them and can draw some useful conclusion from them. But I don't expect you to memorize them for a future exercise, quiz, or final.

        Unintended consequences of computerization

        "The researchers studied how new electronic patient-status boards were functioning in the emergency departments of two busy, university-affiliated hospitals." and the computer did not do as well as a white board... [ 8992 ]

        If they had analyzed the existing system better the electronic system might be more useful than it's manual predecessor.

        From Dr. Dobbs -- The Election Night Enigma and Other Stories

        Halloween Horror Stories -- [ 184415199 ]

        Stories of the top 10 Disasters from ZDNet.co.uk

        Simple mistakes that "seemed OK at the time" can lead to expensive results. Please look at these and see how they happened. [ 0,1000000169,39290976-39001115c,00.htm ]

        Story -- the case of the standing soldier

        At the start of the second world war(circa 1940) in England the army discovered that whenever an piece of artillery (big gun) was fired the manual instructed one soldier to stand still behind and to the side of the gun. The soldier didn't have anything to do. He just had to stand there.

        Before they could be sure that they could change the procedure and so reduce the manpower involved they had to find out why the soldier had to stand there. So they worked their way through earlier manuals. In the 1914-18 version they found out what the soldier was supposed to do: hold the officer's horse!

        Moral: Analyze the activities to find redundant ones.

        Story -- Letter from Australia

        A letter "Outsourcing Consequences", Letter IEEE Computer Magazine V39n8(Sep 2006)pp5+7 by Walter Hill [ MC.2006.317 ] argues that "legacy" systems contain large amounts of useful information that needs to be preserved -- complex business rules, tested data structures, etc. etc.

        This meta-data (data about the data) should be analyzed and organized for future use.

      . . . . . . . . . ( end of section Stories about analyzing organizations) <<Contents | End>>

      Describe the kinds of Enterprise that we might be working in

        Recent Realistic Software Projects

        Information technology (and so computers) are part of nearly all enterprises now. Here are some developer diaries [ 201804258?cid=RSSfeed_DDJ_All ] courtesy of Dr. Dobb's Journal of Computer Calisthenics and Orthodontia that should interest you.

        I keep a website for the projects done by students at CSUSB: BA, BS, and MS. They were presented in the CSCI Department Seminar [ seminar/ ] series. Here some of the abstracts from a few presentations --

        Web-based book exchange for CSUSB


          The project is a web based system that allows students, faculty, and alumni to post information for the purpose of buying and selling textbooks. This will be used primarily for students, but will also be available to anyone who has a CSUSB email account. The system makes use of MySQL and PHP applications to make a website for students, to give them the option of what to do with their unwanted textbooks. The website uses the same authentication as the CSUSB email system and makes the site available to only those people who have a Cal-State email address.

        Gamma Lambda Web site


          This project develops an easy-to-maintain web site for the Gamma Lambda Chapter of Phi Beta Delta International Honor Society at California State University, San Bernardino, which will manage complete and up-to-date information about the mission, members, officers and all the activities of the honor society.

          This site has many features. It has a password authenticated administrator login feature that enables easy to edit and save member profiles, easy to download word documents, awards and scholarships component, archives component, on-line member nomination capability for faculty, details of the events held by the honor society, executive committee information and access to bulletin board.

          The application is built on a MYSQL database for data storage and uses Java 2 Enterprise Edition (J2EE) technologies. Java Server Pages (JSP) (version 2.0) technology is used to implement the graphical user interface (GUI) and Servlets (version 2.4) handle the controller layer of the core functionalities. The Apache Tomcat application server (version 5.0) is used to host the website. These tools used to implement the Project are Open Source software tools which are free of cost and easy to download and install.


        Radiosurgery


          Radiosurgery is a non-invasive treatment technique applying focused radiation beams. It requires high geometric accuracy as misalignment can cause damage to the surrounding healthy tissues and loss of the therapeutic effect. One promising technique to ensure sub-millimeter alignment accuracy of the radiation beam is to optically monitor the position of the beam axis relative to a frame firmly attached to the patient's skull using an optical alignment system. The optical alignment method requires an Optical Localization System (OLS) and a marker system visible to the OLS in order to derive three-dimensional coordinate transforms needed to align the proton beam axis to its stereotactic target. Once the target and the proton beam are defined in the same coordinate system, an alignment control system can be used to align the beam to the target. In this thesis work, a system for proton beam alignment was studied and optimized in many of its functional areas. The resulting system was named Positioning Alignment Control System (PACS). The PACS system is an integrated and efficient system as a result of the work done on it in the course of this thesis work.

        Large Bank


          A look into the development of an application developed to analyze statistics of employees in a fast paced environment. Customer Service Representatives at the Wells Fargo Home Mortgage call center must worry about every aspect of the call they are on with the customer, from protocol to average handle time. Overlook turns the statistics into data.

        Department of Public Works


          The Department of Public Works was established on March 14, 2000, resulting from the Board approving a restructuring of the county's organization. The newly created department includes divisions for Transportation, Solid Waste, and Surveyor in addition to the Flood Control District.

          The goal of the internship was to redesign Public Works website. This presentation discusses some of the steps taken to redesign the website including the development of a database that displays employment opportunities and the development of online forms for making requests. The website and the online forms were created using HTML, VB, CSS,java_script, Adobe Photoshop CS, and Macromedia Dreamweaver MX 2006. This presentation also discusses the development of the website using ASP technology to interface an MS Access database.


        Department of Airports


          Currently the San Bernardino Department of Airports has an antiquated website. It was created using Front Page and lacks any interaction or relevant information that a user might need when visiting any of the airports that the County operates.

          The new website will incorporate all needed information for all six airports. This will include technical and weather information for the airports, services for each airport, administration contacts, and any current events that may be occurring at the airports. The website will be more user friendly and more interactive.


        County Superintendent of Schools


          Currently San Bernardino County Superintendent of Schools Information Technology Department does not have a way to monitor network configurations and performance testing other than manual tests. The time it takes to run theses manual test can be time-consuming and the data is not collected so these test are done in a case-by-case basis.

          Building and implementing a Network Diagnostic Tool server can solve this problem. The NDT is designed to quickly and easily identify a specific set of conditions that are known to impact network performance. An NDT server can determine: duplex mismatch conditions on Ethernet/FastEthernet links, incorrectly set TCP buffers in the user's computer, or problems with the local network infrastructure. Lastly, the test results may be easily emailed to the appropriate administrator to assist in the problem resolution phase. Implementing this server will allow the department to continuously monitor the computers on the network and diagnose the problems easily.


        Game


          I will be presenting the methods, code and software used to develop the game "Dirt Jockey" for the Nintendo Wii. I will show how the game was developed on the PC and Wii simultaneously and how the Wii Remote was implemented in both to increase productivity. I will discuss the programming environment, and the Torque Scripting language, and demonstrate some of the design process behind the game.

    Organization

      Classification of Enterprises

      Computers and other IT (Information Technology) appears inside all types of enterprise.
      1. Government
      2. Farming
      3. Manufacturing
        1. Computer companies
        2. Other... (Many devices now contain an embedded computer that needs programming.)

      4. Service

      Some enterprises also make a business out of developing software. Here are some types of software companies:
      1. Web Consultancy
      2. GIS (Geographic Information Systems) -- ESRI
      3. Health
      4. Education -- Blackboard, Peoplesoft, Houghton Mifflin Harcourt, ...
      5. Games -- Surado
      6. Mass marketed software -- OSs, Office Applications, Graphics, ...
      7. Research and/or Teaching Computer Science.
      8. Consultancy: a gun for hire
      9. Other...

      How is a typical organization structured?

      A typical business or other enterprise is divided into levels. A small enterprise can operate with upro a dozen people doing the work, but with more some one usually has to take charge. However, it is difficult to keep track of all the interactions between a group of subordinates as the team grows. With n subordinates, there are n*(n-1)/2 pairs, and n*(n-1)*(n-2)/6 triples.... Typically a manager can only manage no more than 7 subordinates. So in a larger organization a tree structure forms. At the top are the executives and at the bottom the people who do the work. There are often two intermediate levels. So we have:

      The four levels in an enterprise


      1. Top Managers and CEO -- long term planning, strategic goals, resources, ...
      2. Middle Managers and Knowledge workers -- implementing policies.
      3. Supervisors and team leaders
      4. Workers

      Typical businesses employ people and machines to take in raw materials and produce finished products (and waste) that is output to the environment. Meanwhile the money flows in the opposite direction -- being paid into the enterprise to buy products, and then out to pay workers, buy raw materials, and make a profit for the company.

      Flow Diagram of Manufacturing

      Plotting the flow of materials is an excellent way to get an idea of what a business is about. Money flows come next. Information/data flows tend to run parallel material and money flow either in the same direction or the opposite direction. They can electronic, paper, speech, post it notes, memos, gestures, phone calls, email, .... Here is a rough diagram of how the parts are connected in a typical manufacturing company.

      [Picture of flows in Manufacturing]

      The 6 business functions in the non-service sector

      In a typical (larger) non-service sector enterprise you will find the business organized not just by level but also by function. You need to know the 6 classic functions:
      1. Production
      2. Sales
      3. Accounting
      4. Human Resources
      5. Marketing
      6. Information Technology -- -- --(IT)

      You are likely to be working in IT but supporting the needs of the other five functions. So the next step is to look inside a typical IT department.

      Structure of a typical IT Department circa 2006

      In medium to large enterprises there will be a special IT department that is in charge of the data and computers. Here is a list of the parts in a typical IT department:
      1. Application Development
        1. Analysis
        2. Design
        3. Programming
        4. Testing
        5. ...

      2. Systems support and Security
      3. User Support
      4. Database Administration
      5. Network Administration
      6. Web support

      In a small enterprise you find that you have to fulfill all the above roles. In a large enterprise a team of people are dedicated to the above areas.

      Job Titles in IT

      You will find many specialist jobs within an IT department. Here is list of typical titles, top-down.
      1. CIO -- Chief Information Officer
      2. CSO -- Chief Security Officer
      3. CISO -- Chief Information Security Officer
      4. DBM -- Data Base Manager.
      5. Systems Analyst -- determines risks, threats, problems, opportunities, .... Proposes and selects improvements.
      6. Architect -- What hardware? how is it networked?
      7. Software Architect -- What platforms and structure?
      8. Programmer/analyst -- Does both analysis, design, and coding.
      9. Lead Programmer/ Chief Programmer -- leads a team of programmers in a project.
      10. Software Engineer -- "An engineer can do what any clod can do... but cheaper and more reliably"
      11. Programmer -- converts specifications and designs into running code.
      12. Network Engineer -- monitor, fix, and develop the communications network.
      13. ...
      14. Network Administrator -- monitor and fix communications.
      15. Systems Administrator -- take CSCI360!
      16. Technical Support / Help Desk

      Computer Professionals in Organizations

        What does a System analyst do

        A typical systems analyst:
        1. Leads a Team of developers.
        2. Discovers the current situation: problems, opportunities, ...
        3. Clarifies goals for a project.
        4. Proposes alternate options to meet goals.
        5. Helps management evaluate options and alternatives
        6. Helps management select the best option.
        7. Manages development: strategy, planning, organizing, ...
        8. Spots and mitigates risks early (and often).

        What does a programmer do

        A programmer takes the designs provided by analysts and expresses them in computer languages. Computer science degrees focus on programming.

        Can you have people that do analysis and programming

        Yes. In a small enterprise you will find yourself doing both programming and analysis. In fact, if you are a people person who can handle the technical details and debugging then this is the best organization.

        What training must employees need to work in security

        I don't have a quick list. You definitely need training in the tools of the trade. You need to know the kinds of holes that have opened up in the past and have knowledge to keep up with the upcoming problems. You also need to know the underlying theory -- in particular network protocols, cryptography, etc. etc.

    Types of Enterprise

      Enterprises differ in the following key factors:

      Size of Organization

      Large organizations are really made up of small organizations.

      Classical Organizational Patterns/Cultures

      The same patterns appear in all parts -- including any specialized software development department. People are the critical components in systems and the naturally seem to organize themselves in four patterns: From "The Gods of Management", Charles Handy, Pan Books (Pbk), 1978.

      Charles Handy (Op. Cit.) also distinguishes three kinds of work that are needed in an enterprise:

      1. Regular -- Repeated.
      2. Development -- Planned Changes.
      3. Fire fighting (My term...)

      Each needs a different culture: Spider web, Cloth, cloud, or temple. Computer people can involved in all of these three types of work.

    Communication Patterns


    Table
    FlowFace to FacePaperElectronic
    one-to-oneInterviews, Informalmemo, letterPhone, EMail, IM, SMS,...
    one-to-manyLectures/talksmemo, lettermailing list, blog, ...
    many-to-manyMeetings-Wikis,Google Docs, ...

    (Close Table)

    Meetings

      There are many types of meetings that you will have to take part in: Committees, Brainstorming sessions, Walkthoughs, Inspections, ...

      When you set up a meeting follow these guidelines (distilled from half-a-dozen books on management):

      1. The meeting must have a purpose. Describe what the final results of the meeting will be. Finish this phrase: "The meeting is finished when....".
      2. Invite people who fit the purpose.
      3. Make sure that the people who are invited know how to prepare and what they need to bring to the meeting.
      4. Plan the agenda, handouts, food, drink,...
      5. Check the room and arrive early.
      6. Start by stating the purpose of the meeting.
      7. Finish when purpose is achieved. Thank people!
      8. Don't forget to schedule the next meeting at the end (if any).
      9. Finish by making sure people know the "deliverables" -- what they must bring to the next meeting.

      When you attend meetings

      1. Prepare well in advance.
      2. Take the deliverables with you.
      3. Don't forget to look the role you are playing.
      4. Listen and take part.
      5. Take notes (it will keep you awake).
      6. After the meeting: Debrief and review notes. File materials.

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

Questions

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

Review Questions

  1. How is a typical IT department organized?
  2. What are the four levels in a typical enterprise?
  3. What are the 6 functions in the manufacturing/non-service sector?
  4. How important are people to the correct functioning of a system.
  5. Name some steps for attending a meeting.
  6. List some things you must do to set up a meeting.

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

. . . . . . . . . ( end of section Organizational Context of Systems Work) <<Contents | End>>

Abbreviations

  • TBA::="To Be Announced".
  • TBD::="To Be Done".

    Also see [ glossary.html ] for more special abbreviations and phrases.

    End